-
-
[原创]Immunity Debugger内存搜素python脚本
-
发表于:
2013-3-2 15:39
10250
-
[原创]Immunity Debugger内存搜素python脚本

近日使用Immunity Debugger工具调试程序,发现它的内存搜索方面不太好,不知道是不是我找错地方了。于是自己写了个用于内存搜索的脚本。核心功能是search_code_string函数,它在内存中搜索一段内存数据,实现了简单的模糊查询。
比如搜索:
FF00*0104EEAAeeaa
其中*号表示 后面的02 和04是个范围的上下限,表示不确定数据的范围为[1,4]。于是FF 00 ** EE AA EE AA和FF 00 ** ** EE AA EE AA 、FF 00 ** ** ** ** EE AA EE AA 均能被搜索。
FF00-03AA
其中的-表示这个范围固定后面的03是个值,只能搜索 FF 00 -- -- -- AA
注意这个范围上下限和固定值必须是两位数,个位数就凑成两位数吧。而且数值是16机制的。也就是*1a2b 是可以的,表示范围[26, 43]

自己随便定义的。 * 和 -是可以自定义的。。通过RD_CHAR = "*" FD_CHAR ="-" 两个变量定义。
search_code_Long、search_code_short、search_code_byte、search_data_str等函数都是转换一下,然后调用search_code_string函数 来搜索的
search_asmcode函数也支持简单的替换 R32表示32位的寄存器,R16表示16为寄存器,R8表示8为寄存器。注意搜索的汇编语句中,只能有两个 寄存器未知,比如mov R8, byte ptr ds:[R32+0x10]可以被搜索,但是mov R8, byte ptr ds:[R32+R32+10]就有错误了,不想搞那么复杂。
如果两未知寄存器均为32位,则分别以R32和R_32表示。(R8 R_8 和 R16 R_16 同理)
[注意]看雪招聘,专注安全领域的专业人才平台!