windbg是调试驱动的工具,其实原来已经配置过他了,可以通过vm进行远程调试,但是那个过程忘记了,好像当初也是乱搞,然后突然发现好了,可是原来系统重装了,结果又要重新配置过了,结果现在,连symbol都出现问题,找了一些资料,终于搞定了。把这个过程写下来,以免忘记。
我在“symbol File Path”中设置“reload”,出现下面的问题:
lkd> .reload Unable to read head of debugger data list Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrnlpa.exe - Loading Kernel Symbols .................................................................................................................................................. Loading User Symbols ............................................................................................................ Loading unloaded module list .........................
|
还以为真是的操作系统是AMD64位的,而虚拟机是单核CPU的,symbol文件是不一样的,但是我的虚拟机系统是windows xp+sp2 32bit的,而symbol文件也是对应版本,应该不会错的。
使用一些命令,比如:u KeAttachProcess,则没有问题,应为这些函数是导出的,但是我用:u PspTerminateProcess,则显示错误,unresovle,好像又是symbol的问题,后面就这样设置了“symbol file path”:
C:\WINDOWS\Symbols; SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
我的symbol文件放在C:\WINDOWS\Symbols目录下,然后添加了环境变量:
在我的电脑属性->高级->系统变量那里设置
变量名:_NT_SYMBOL_PATH
变量值:C:\WINDOWS\Symbols
然后reload,出现如下提示:
lkd> .reload Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE Loading Kernel Symbols ................................................................................................................ Loading User Symbols ................................................................... Loading unloaded module list ..........
|
然后输入命令:u PspTerminateProcess,终于有结果了:
805c863e 8bff mov edi,edi 805c8640 55 push ebp 805c8641 8bec mov ebp,esp 805c8643 56 push esi 805c8644 64a124010000 mov eax,dword ptr fs:[00000124h] 805c864a 8b7508 mov esi,dword ptr [ebp+8] 805c864d 3b7044 cmp esi,dword ptr [eax+44h] 805c8650 7507 jne nt!PspTerminateProcess+0x1b (805c8659)
|