2017-06-19 3 views
2

J'ai écrit un script pour montrer le deuxième paramètre de NtQueryInformationProcess .however, j'ai toujours eu des données erronées, il semble que la mémoire n'a pas été rafraîchie et ce que j'ai eu était des données anciennes.Voici mon code :IDAPYTHON obtenu des données erronées de la mémoire

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() 

IDA 6.9 sur Win10-64, thx

Répondre

2

C'est ma faute de poser cette question alors voici une réponse: IDA Python - Why My code return incorrect ESP Value?

donc, la solution est l'ajout de code RefreshDebuggerMemory() à la mémoire fraîche

En fait j'ai cherché le mot 'frais' dans docs d'idapython, mais il y a trop de choses sur cette page ainsi je n'ai rien parce que j'ai fermé cette page avant que toutes les choses soient chargées, c'est vraiment une erreur.