用Visual
SoftIce进行双机调试
版本:1.1
最后更新时间:
作者: xIkUg/RCT
xikug.xp [at] gmail [dot] com
我常去的网站:
http://debugman.wintoolspro.com
http://www.fcgchina.com
http://bbs.pediy.com
http://www.unpack.cn
使用Visual SoftIce进行双机调试很爽,可以一边调试一边听上网,一边听音乐了:)
我这里主要介绍一下双机调试的设置,因为没有两台物理机器,所以这里我使用VMWare5.0虚拟机系统进行讲解。
VMWare系统软件环境:WinXP SP2 + Driver Studio 3.2
首先VMWare的网络连接选择Bridged模式,双击VMWare右下角的网卡图标就出来了,如下图:
在虚拟机上安装DS3.2,安装的时候选择Target安装模式,安装完毕后,打开DS的Settings:
进入Control Panel->Startup页,把SoftICE设为Disabled,把Visual SoftICE Remote Debugging Core设为“Automatic”,你也可以设为“Boot”,Boot模式是在可调试系统的启动过程。我这里用不着,所以设置了Automatic,在系统启动完成之后再自动启动远程调试核心。
然后进入Remote Access->Settings页,把里面的钩全打上:
我这里是全选了,你可视情况而定。下面进行Visual SoftICE的设置:
选择Visual SoftICE->Connections,点Change…按钮,进入SoftIce传输设置向导:
选择Network,单击下一步,然后选择VMware Accelerated AMD PCNet Adapter,完成。
退出向导后,再点Connections界面上的Properties…按钮,进行网络属性设置:
这里把Keep Alive默认是60秒,我设置得比较大,设了6000,不然一会调试的时候隔60秒就要重新连接远程机器。如果你不需要远程调试密码的话可把Password设为空。
接着设置IP地址:我的主机是
设置完成后,点确定,SoftIce会提示你重启系统。点确定后,系统自动重启。
虚拟机重启后,Ping一下
注意:如果你的虚拟机也是WinXP SP2,那你应该把Windows自带的防火墙关掉。刚开始用时我也不知道,在外面用Visual SoftICE连接上后,调试不了几分钟就断了,后来发现原来就是Windows的防火墙在作怪,把防火墙关掉就没事了。我猜测Windows的防火墙应该不是系统一启动时就生效,会延时几分钟,防火墙才起作用。。。真是奇怪。。。
下面我们在外面主系统中用Visual SoftICE试一下吧。。。小练一下手,首先启动Visual SoftICE:
在左下方的CMD窗口中输入Connect
,就这个,一个地球加放大镜,对网络上的目标机进行选择,如下图:
连接成功后,会在CMD窗口进行提示:
Connected to:
Name
: A-FAF330D38DE64
Processor : IA32(x86)-Pentium
4
Stepping : 8
Processor
Count: 1
Operating Sys. : Windows XP Ver.
5.1 Build 2600 Service Pack 2 (FRE)
Target
Service : Connected (Active)
在主窗口的最左边的ToolBar是各窗口的快捷按钮,用于打开各项窗口,和IDA差不多,有什么断点窗口,反汇编窗口,内存窗口等等。。。自己试一下就知道了,样子如下:
下面我们来小试一下牛刀,在虚拟机中启动一个程序,AntiInject.exe:
然后我们在外面的Visual SoftICE的进程列表窗口中选择AntiInject.exe这个进程,使SoftICE切换到这个进程的程序领空去:
双击一下就可以了,接着,我们输入命令:bpx user32!MessageBoxA
系统在消息窗口中提示:
SI>bpx user32!MessageBoxA
Breakpoint [0x1 (1)] set.
打开断点窗口可以看到我们的一个断点设置成功了:
然后我们在虚拟机中按下我们AntiInject的Show按钮,响应这个按钮的程序中有调用MessageBoxA,因此我们断下来了:
因为我没有载入符号文件,所以Visual SoftICE提示:
没有找到源代码,呵呵。。。如果你要进行源码进调试应该先先载入SoftICE的符号文件,我们这里不管它,点Close就行了,于是程序中断在下面的地方:
注意:如果我们只进行反汇编级的调试应该把Visual SoftICE中的AutoFocusOpen设置为“Disassembly Only”或“Source or Disassembly – No Focus”,不然你每单步一次这个框框就会跳出来,设置如下:
怎么样?跟以前我们使用黑呼呼的SoftICE在Crack程序比如何?是不是爽多了,现在你可以一边上网,一边听音乐,一边调试程序了。
Visual SoftICE好像是DS3.0以上开始提供的,以前的DS 2.7没有。
其他关于Visual SoftICE的命令使用跟SoftICE一样,如果你不太清楚可查看Command Help。
好,暂时到这里,以后有机会再讲讲其他的。
感谢:Forever, fly, heXer, jwh51, kanxue, shoooo,南蛮妈妈,堀北真希,sucsor, cnbragon,
DarkNeesOut and RCT & FCG all Members and you.
为了不影响目标机(或虚拟机)的正常网络通讯,最好在目标机上装2张网卡(或在虚拟机中设置两个虚拟网卡),其中一张专门用于VSI,关于双网卡的设置见下图所示:
计算机重启后如果你看见下图就代表设置成功了: