如何使用 python pydbg 或任何其他可以做到这一点的模块在特定地址找到另一个进程的寄存器值?
让我们说:
Address opcode
006122CB mov eax, [ecx+08]
所以,我想在这个地址找到ecx寄存器的值。
Windows 7 x64 位
程序 x32 位
如何使用 python pydbg 或任何其他可以做到这一点的模块在特定地址找到另一个进程的寄存器值?
让我们说:
Address opcode
006122CB mov eax, [ecx+08]
所以,我想在这个地址找到ecx寄存器的值。
Windows 7 x64 位
程序 x32 位
:\>cat memaccess.py
from pydbg import *
from pydbg.defines import *
def handler_breakpoint (pydbg):
if pydbg.first_breakpoint:
return DBG_CONTINUE
context = dbg.get_thread_context(dbg.h_thread)
print "eip = %08x" % context.Eip
print "edi = %08x" % context.Edi
return DBG_CONTINUE
dbg = pydbg()
dbg.set_callback(EXCEPTION_BREAKPOINT, handler_breakpoint)
dbg.load("c:\\windows\\system32\\calc.exe")
dbg.bp_set(0x101248a)
dbg.resume_all_threads()
pydbg.debug_event_loop(dbg)
:\>python memaccess.py
eip = 0101248a
edi = 7c80b741
用windbg确认
:>cdb -c "bp 0x101248a;g;r Edi;q" 计算
0:000> cdb: Reading initial command 'bp 0x101248a;g;r Edi;q'
Breakpoint 0 hit
edi=7c80b741
quit:
:\>