-
Win7系统中使用WinDbg与虚拟机调试驱动程序的操作方法和要点(5)
- 作者:宋惜瑶 分类:win7 发布时间:2017-10-12 21:37:56
0012fbf0 77e1279c USER32!UserCallWinProc+0x18 0012fc5c 77e0b981 USER32!DefDlgProcWorker+0xbf 0012fd14 77e140bb USER32!InternalCreateDialog+0x695 0012fd44 77e1410f USER32!InternalDialogBox+0xaa...
0012fbf0 77e1279c USER32!UserCallWinProc+0x18
0012fc5c 77e0b981 USER32!DefDlgProcWorker+0xbf
0012fd14 77e140bb USER32!InternalCreateDialog+0x695
0012fd44 77e1410f USER32!InternalDialogBox+0xaa
0012fd64 77df41ec USER32!DialogBoxIndirectParamAorW+0x34
0012fd90 00401cdc USER32!DialogBoxParamA+0x4a
0012fe88 00408684 DGGuarder!WinMain(
struct HINSTANCE__ * hInstance = 0x00400000,
struct HINSTANCE__ * hPrevInstance = 0x00000000,
char * lpCmdLine = 0x00132902 “”,
int nCmdShow = 10)+0x5c [j:/mydriver/dgguarder2/dgguarder.c @ 469]
0012ffc0 77e88989 DGGuarder!WinMainCRTStartup(void)+0x194 [f:/vs70builds/3077/vc/crtbld/crt/src/crt0.c @ 251]
0012fff0 00000000 KERNEL32!BaseProcessStart+0x3d
数据修改指令e{b|d|D|f|p|q|w}
反汇编指令u,uf
u @$exentry L10
0:001》 u @$exentry L10
notepad!WinMainCRTStartup:
01006420 55 push ebp
01006421 8bec mov ebp,esp
01006423 6aff push 0xff
01006425 6888180001 push 0x1001888
0100642a 68d0650001 push 0x10065d0
0100642f 64a100000000 mov eax,fs:[00000000]
01006435 50 push eax
01006436 64892500000000 mov fs:[00000000],esp
0100643d 83c498 add esp,0xffffff98
01006440 53 push ebx
01006441 56 push esi
01006442 57 push edi
01006443 8965e8 mov [ebp-0x18],esp
01006446 c745fc00000000 mov dword ptr [ebp-0x4],0x0
0100644d 6a02 push 0x2
0100644f ff1560110001 call dword ptr [notepad!_imp____set_app_type (01001160)]
uf (Unassemble Function)指令对整个函数进行反汇编
uf GetLanguageCount
0:000》 uf GetLanguageCount
DGGuarder!GetLanguageCount [j:/mydriver/dgguarder2/language.c @ 54]:
54 00403c00 55 push ebp
54 00403c01 8bec mov ebp,esp
54 00403c03 81ecc0000000 sub esp,0xc0
54 00403c09 53 push ebx
54 00403c0a 56 push esi
54 00403c0b 57 push edi
54 00403c0c 8dbd40ffffff lea edi,[ebp-0xc0]
54 00403c12 b930000000 mov ecx,0x30
54 00403c17 b8cccccccc mov eax,0xcccccccc
54 00403c1c f3ab rep stosd
56 00403c1e 6a00 push 0x0
56 00403c20 6828b44100 push 0x41b428
56 00403c25 6820b44100 push 0x41b420
56 00403c2a e8b1edffff call DGGuarder!ReadInt (004029e0)
56 00403c2f 83c40c add esp,0xc
58 00403c32 5f pop edi
58 00403c33 5e pop esi
58 00403c34 5b pop ebx
58 00403c35 81c4c0000000 add esp,0xc0
58 00403c3b 3bec cmp ebp,esp
58 00403c3d e85e0f0000 call DGGuarder!_RTC_CheckEsp (00404ba0)
58 00403c42 8be5 mov esp,ebp
58 00403c44 5d pop ebp
58 00403c45 c3 ret
跟踪指令T,TA,TB,TC,WT,P,PA,PC
T指令单步执行,在源码调试状态下,可指源码的一行,根据不同的选项也可以为一行ASM指令;
TA单步跟踪到指定地址,如果没有参数将运行到断点处。
TB执行到分支指令,分支指令包括calls, returns, jumps, counted loops, and while loops
TC执行到Call指令
WT Trace and Watch Data,一条强大指令,对执行流程做Profile,执行一下看看结果吧
P,PA,PC相信不用多做解释,大家也都明白了
源代码操作指令 。,lsf,lsc,ls,l,lsp
。指令打一个源文件,可以打开一个全路径的文件,也可以通过函数地址来打开并定位到源文件中函数的位置,如。 –a myapp!main,。 j:/mydriver/mydriver.c
lsf指定一个源文件为当前源文件,使用lsc可显示当前指定的源文件ls可显示源文件的代码。Lsf可以使用全路径,如果源路径已经设置,也可以直接指定源文件名称。如lsf mydriver.c,lsf j:/mydriver/mydriver.c
lsc显示当前源文件
ls显示当前源文件的代码,如ls 200显示第200行
l 用于设置源文件选项
lsp 设置源文件行在调试时显示范围比如,显示当前行的前50,后50,lsp 100
猜您喜欢
- Win7笔记本小技巧:如何关闭触摸板,..2024-04-30
- win7安全证书过期,如何轻松解决?快..2024-04-30
- Win7本本无线网络不显示?这5招轻松解..2024-04-29
- windows7开机密码遗忘?别急,教你轻松..2024-04-29
- Win7电脑锁屏壁纸轻松换,让你的Wind..2024-04-29
- win7电脑开机无法进入桌面?看这里,..2024-04-29
相关推荐
- Win7 64位旗舰版系统任务栏无法添加和..2023-04-09
- win7系统如何卸载百度安全组件服务程..2022-07-03
- win7开启远程桌面无法全屏的如何恢复..2022-09-07
- win7官方旗舰版系统下怎么查询和删除..2023-04-13
- 修复Win7丢失libcurl.dll没有找到libcurl...2017-10-12
- Win7旗舰版图标重影怎么处理呢?Win7旗..2020-12-20