IDAPYTHON从内存中获取错误的数据

时间:2017-06-19 03:25:30

标签: reverse-engineering disassembly ida

我编写了一个脚本来显示NtQueryInformationProcess的第二个参数。然而,我总是得到错误的数据,看起来内存并没有刷新,我得到的是旧数据。这是我的代码:

from idaapi import *
NtQueryInformationProcess=0x7798E740
class HookNQIP(DBG_Hooks):
    def dbg_bpt(self,tid,ea):
        if ea==NtQueryInformationProcess:
            print 'ProcessInformationClass:',hex(Dword(GetRegValue('ESP')+8))
AddBpt(NtQueryInformationProcess)
func=HookNQIP()
func.hook()

Win10-64上的IDA 6.9,thx

1 个答案:

答案 0 :(得分:2)

问我这个问题,这是一个答案: IDA Python - Why My code return incorrect ESP Value?

因此解决方案是将代码RefreshDebuggerMemory()添加到新内存

事实上,我一直在搜索“新鲜”字样。在idapython的文档中,但是该页面上的内容太多,所以我没有任何结果,因为在所有内容都被加载之前我关闭了该页面,这真的是一个错误。