使用 IDA Pro 跟踪函数调用参数

逆向工程 艾达 蟒蛇 职能
2021-07-07 15:21:06

现在我正在尝试放置一个跟踪点,并使用从堆栈中提取所有相关内容的 Python 代码来挂钩它。不幸的是,它一直给我带来垃圾,因为在执行此代码cpu.esp 中的值正在更新,而我需要它之前发生。

class TraceRegisters(DBG_Hooks):
    def dbg_bpt(self, tid, ea):
        fn = GetFunctionName(ea)
        if fn.startswith("Read"):
            print "%s(0x%x)" % (fn, Dword(cpu.esp+4))
        elif fn.startswith("Write"):
            print "%s(0x%x, 0x%x)" % (fn, Dword(cpu.esp+4), Dword(cpu.esp+8))
        return 0

我很抱歉在用于决定调试器是否应该停止的回调中执行此操作,但我找不到更好的方法。

有没有办法只用 IDAPython 和/或普通 IDA 的功能来做我想做的事?

0个回答
没有发现任何回复~