今天搭建了一个“VMWare+Windbg的虚拟机双机内核调试环境”,第一次感受到了“符号和源码调试”的强大之处和其魅力所在。不过感觉就是操作有些麻烦,双机调试时速度不够快,而且老是出问题(可能与VMware有关系)。Windbg的一个显著不足之处在于,一旦没有了符号或者源码,那它的功能就显得捉襟见肘了,因此个人感觉不太适合做逆向工程,做项目调试和驱动级调试还是蛮不错的。目前我还不能很好地驾驭它,慢慢求索中……
符号表下载地址: http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe
WinDbg下载地址:http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe
安装完上述两个程序后,设置一下环境变量:右击“我的电脑”打开“系统属性”,在“高级”页面中打开“环境变量(N)”,在下面的“系统变量(S)”里新建一项:
变量名:_NT_SYMBOL_PATH
变量值:SRV*c:\windows\symbols*http://msdl.microsoft.com/download/symbols
设置这个环境变量的好处是,以后WinDbg就会使用这个路径作为符号表路径了。
安装VMWare虚拟机,并在虚拟机里安装操作系统,如WinXP SP2。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行,
另外建议将[boot loader]节下的timeout修改为一个较大的值,这样倒计时会比较长我们能有足够的时间来选择系统加载菜单。
随后关闭系统配置虚拟机的硬件,点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步;
第一框里保持默认的 "\\.\pipe\com_1"
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll",保存退出。
在真实系统中查看"设备管理器",在端口里找到Com1,然后再属性页中的“端口设置”修改速率为115200。
为使方便,在WinDbg的快捷方式属性中的“目标(T)”栏里输入:
"C:\Program Files\Debugging Tools for Windows\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe