系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
-->
当前位置:主页 > win7 >

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

xp 更多>>
win7 更多>>
win8 更多>>
win10 更多>>
U盘 更多>>
电脑技术 更多>>
网站地图 | 豫ICP备2021035069号-4 | 友情链接qq:191064436
系统吧

版权所有 © 2012-2023 系统吧 免责声明:本站资源均收集于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时删除相应资源。