逆向warmup1——idapython的初步使用

Python010

逆向warmup1——idapython的初步使用,第1张

warmup1:

分析逻辑,可以知道judge是关键函数,但是加密了,所以要先解密judge函数:

在下方的python那里,可以进行python工具去破解,步骤如下:

s = get_bytes(0x600b00,182)

buf = ' '

for i in s:

Python> buf += chr (int(i)^0xc)

from idaapi import *

patch_bytes(0x600b00,buf)

这是python的脚本,用到get_type()和patch_type()的函数,很好用,来个完整版本的:

接着去judge的地址那里看看,发现反编译出来的东西挺奇怪的,于是进行u和p操作(有些混淆别人的感觉)进行undefine(u),再create(p),就可以破解那个judge函数了,judge里面是个异或函数,14位长度的string,脚本跑一下即可。

因为 IDA 会使用一些 python 相关的系统环境变量,所以当你 python 环境比较复杂时(例如跟我一样环境变量中是 py3,py2 在 Anaconda 中),就会导致 IDA 没法正常使用 python,各种乱七八糟的错误这里就不举例了,以下是我解决该问题的方法:

新建一个 bat 批处理文件,填入以下内容来设置临时环境变量:

启动 bat 即可。