主机与虚拟机都安装上windug、
配置虚拟机、、
1 将C盘下边的BOOT.INI文件改写、
(文件夹选项不隐藏文件夹不隐藏受保护的文件夹、去掉可读属性)
在像multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect这样的启动项目后增加参数/debug /debugport=com1 /baudrate=115200
保存并设回可读、
2 关闭虚拟机为虚拟机添加一个com1命令管道模拟一个串口、、、进行通讯、
选择编辑虚拟机、、
选择Usb Control --添加 -- serial control 使用默认设置、、
添加好后对serial port进行设置、使用命名管道、
这里注意
对于客户端来说,命名管道可以是\\[host_name]\pipe\[pipe_name]形式,也可以是\\.\pipe\[pipe_name]形式,其中的"."表示本机。
而服务器端由于只能指定本机作为主机名,故只能使用\\.\pipe\[pipe_name]的形式。
\\.\pipe\com_1
This end is then server
the other and is an application
配置主机
打开windug安装目录、新建快捷方式、
右击快捷方式的属性 在目标编辑框后边添加、参数如下、、
-b -k com:pipe,port=\\.\pipe\com_1,baud=115200,reconnect –y
运行windug 出现 等待连接的字样、、
Waiting for pipe \\.\pipe\com_1
Waiting to reconnect...
此时打开虚拟机、、
看windug的反应是已经连接到
aiting for pipe \\.\pipe\com_1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Sat Aug 6 13:19:39.750 2011 (GMT+8)), ptr64 FALSE
Kernel Debugger connection established. (Initial Breakpoint requested)
Symbol search path is: *** Invalid ***
不过符号文件没有找到、、(以后说)
此时虚拟机已经暂停了 看windug显示是下了一个int 3断点、、
此时下命令 g让它跑起来、、、
看到输入g的编辑框显示 Debuggee is running...
同时虚拟机也开始运行了、、、
很简单的windug调试的技巧、、(以后再补、)
G :运行
U :汇编 改写内核代码windug很强大咯、、
F10 :步过 OD F8
F8,F11:步入 OD F7
shift+F11:跳出,返回到上层CALL执行 OD ctrl+f9
F5:运行 OD f9
bp:下断点int 3,CC断点
bl显示断点列表
bc清除指定断点
bd禁用指定断点
be启用指定断点
转载于:https://blog.51cto.com/xzv587/1363187