我尝试在 Immunity 中的不同内存分配函数上使用一个简单的钩子。但是钩子根本没有反应(没有记录)。
首先我的钩子类:
class AllocHook(LogBpHook):
def __init__(self):
LogBpHook.__init__(self)
def run(self, regs):
imm = immlib.Debugger()
imm.log(" ++++++++++++++++++ HOOOKED")
imm.log(str(regs))
imm.log(" ++++++++++++++++++ HOOOKED")
用于初始化和添加钩子的函数。
def hookAlloc(imm):
global vAllocHo
# Retrieve address of Allocs
# Create hook object and add hook
va1 = imm.getAddress("kernel32.LocalAlloc")
vAllocHo = AllocHook()
vAllocHo.add("va alloc",va1)
vAllocHo.enable()
所以log出现在断点窗口中,但该run()函数实际上从未被调用。
Breakpoints, item 26
Address=76C91668 kernel32.LocalAlloc
Module=kernel32
Active=Log
Disassembly=MOV EDI,EDI
当钩子被激活时,断点的日志消息至少会消失。例如,激活挂钩后,不再显示以下日志消息:
Log data, item 40
Address=76C91668
Message=[19:12:51] Breakpoint at kernel32.LocalAlloc
剩下的选项中是否有特殊设置,我必须首先考虑?