:>wmic 进程获取 Name,ThreadCount,ProcessId | 火
firefox.exe 3944 49
:>cat dtregs.py
from pydbg import *
from pydbg.defines import *
def handler_breakpoint (pydbg):
if pydbg.first_breakpoint:
print "hello did i dump tid and eax for each thread ?"
return DBG_CONTINUE
dbg = pydbg()
dbg.set_callback(EXCEPTION_BREAKPOINT, handler_breakpoint)
dbg.attach(3944)
i = 0;
for thread_id in dbg.enumerate_threads():
thread_handle = dbg.open_thread(thread_id)
context = dbg.get_thread_context(thread_handle)
print "%03d TID: %08x EAX: %08x" % (i,thread_handle,context.Eax)
i = i+1
pydbg.debug_event_loop(dbg)
dbg.detach()
:>python dtregs.py
000 TID: 00000690 EAX: 00000000
001 TID: 0000068c EAX: 0158c385
002 TID: 00000688 EAX: 001b4008
003 TID: 00000684 EAX: 000000e5
004 TID: 00000680 EAX: 00000000
005 TID: 0000067c EAX: 001800a3
006 TID: 00000678 EAX: 00000000
007 TID: 00000674 EAX: 000000e5
...............................
048 TID: 000005d0 EAX: 77e76c7d
049 TID: 000005cc EAX: 00000000
hello did i dump tid and eax for each thread ?
只是为了确认它在一定程度上是否正确让我们将windbg附加到pid
:>cdb -p 3944
0:049> ~* er eax
eax=09b6a201
eax=0158c385
eax=001b4008
eax=000000e5
eax=0036ee80
eax=00000171
eax=00000000
--------------
eax=098f3ec0
eax=000000e5
eax=150ff530
eax=11d5ff00
eax=111fff00
eax=77e76c7d
eax=7ffdd000
0:049> .detach
Detached
NoTarget> q