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

问题描述 投票:0回答:2

我写了一个脚本来显示

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,谢谢

reverse-engineering disassembly ida
2个回答
2
投票

问这个问题是我的错,而这里有一个答案: IDA Python - 为什么我的代码返回不正确的 ESP 值?

所以解决方案是添加代码

RefreshDebuggerMemory()
到新内存中

事实上,我在idapython的文档中搜索了“fresh”这个词,但是该页面上的东西太多了,所以我一无所获,因为我在加载所有东西之前关闭了该页面,这确实是一个错误。


0
投票

与以下相比,这会相当慢:

 idc.read_dbg_dword(address)
© www.soinside.com 2019 - 2024. All rights reserved.