2024年4月17日发(作者:)

WRK的编译与debug的调试

在这里,我们分布介绍一下基本的WRK的编译与debug的调试。

1.虚拟机环境搭建。

这里我们使用软件Virtual PC 2007。双击该软件的安装程序,会弹出该软件的安装界面。

根据提示,选择合适的目录进行安装。

2.

基于Virtual PC的Windows Server 2003sp1安装。

Virtual PC 2007安装完毕后,在安装目录下会有名为“Virtual ”的应用程序。

双击该应用程序即可弹出“Virtual PC Console”的对话框。单击对话框右边的“new”选

项,便可开始虚拟机的新建工作。

选择“Create a virtual machine”,选好安装目录,在Operating System对话框中选择

“Windows Server 2003”,在“Virtual Hard Disk”对话框中,可以选择一个已存在的虚

拟硬盘,也可以新建一个虚拟硬盘。最后单击“finish”完成。此时,在Virtual PC Console

中方框内会出现一个新建的虚拟机,选中它,单击右侧的“Start”按钮,此时,虚拟机便

可以运行了。

现在,我们要在虚拟机上安装Windows Server 2003。点击左上部菜单中的“CD”,

选择“Capture ISO Image”,手动载入以准备好的Windows Server 2003镜像文件,选择

图中的第三项“全自动安装”即可。

安装完毕后,进入虚拟机系统,点击左上部菜单Action中的“Install or Update Virtual

Machine Additions”,然后按提示重新启动虚拟机。

重启完成后,可以点击左上部菜单中的“Edit”,选择里面的“Settings”,在这里可

以映射主机操作系统的目录为虚拟机中操作系统的一个磁盘,即完成主机与虚拟机的文件共

享。选择你要共享的目录,以便在虚拟机中使用主机中的某些文件,然后单击完成即可。

3. WRK v1.2源代码编译。

首先在虚拟机的C盘中建立一个名为working的文件夹(其他盘里也可),将WRK v1.2

压缩包解压到WRK v1.2文件夹后放入working文件夹。然后可以用命令提示行逐行输入如下

代码段。也可以将该代码段写入记事本,修改格式为bat文件后直接双击运行。

set wrkbasedir=C:working

set path=%wrkbasedir%WRK-v1.2toolsx86;C:WINDOWSsystem32;%path%

set arch=x86

cd %wrkbasedir%WRK-v1.2basentos

nmake -nologo %arch%=

dir %wrkbasedir%WRK-v1.2basentosBUILDEXE

内核安装与配置。

将以下文件拷贝到C:windowssystem32中:

(在Virtual PC中使用该文件)

修改C:文件如下:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows

Server 20 03, Enterprise" /noexecute=optout /fastdetect

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="WRK1.2"/kernel=/hal=hal

添加完毕后保存文件,然后重新启动虚拟机。如果操作无误,屏幕上将会显示如下所示的选

单:

5.主机操作系统中Windbg的安装。

下面我们进行调试软件Windbg的安装。选择准备好的dbg_x86_安装程

序将其装在主机中即可。

6Virtual PC虚拟机硬件环境的配置。

虚拟机关机状态下,在Virtual PC Console对话框中选择左上角菜单“Action”中的

“Settings”,在其中的“COM1”做如图所示修改:

7.虚拟机操作系统上启动菜单的配置:

打开虚拟机,进入系统后,在C:文件中添加如下代码段即可:

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="WRK1.2Debug"/kernel=/hal=h

/debug /debugport=com1 /baudrate=115200

重启后会看到如下界面:

8.安装Windows Server 2003 SP1的符号表。

在主机中双击已准备好的“Windows2003_”安装程序,

将符号表装在主机中,安装完毕后,将C:workingWRK-v1.2basentosBUILDEXE中的

文件拷贝到符号表文件夹中。

9.建立一个执行Windbg的脚本文件wrk_。

拷贝WRK1.2源代码(即WRK-v1.2文件夹)到特定目录下,这里假设为E盘。bat文件内容

如下:

"C:Program FilesDebugging Tools for Windows (x86)" -b -k

com:pipe,port=.pipedebug,baud=115200,reconnect -y C:WindowsSymbolsWin2003

-srcpath "E:WRK-v1.2base"

远程调试虚拟机中的基于WRK的新内核操作系统。

在主机中运行含Windbg命令的脚本文件wrk_,会弹出debug界面。启动虚拟

机的“WRK1.2Debug(启动调试程序)”,debug界面会出现如下内容:

此时虚拟机处于黑屏状态。在WinDebug中输入命令“g”,虚拟机便会启动。虚拟机

启动后,便可通过WinDebug进行调试。点击WinDebug中的“Break”选项,虚拟机变化停

止运行。在WinDebug中输入“!process 0 0”命令,则可看到有关的一些信息。输入“dt

eprocess”命令,则可看到某些参数的ID号等等。例如在WRK-v1.2basentosinc的ps.h文

件中添加一个handle命令“Handle ZhangHy”如下:

将该WRK-v1.2文件夹替换working中的WRK-v1.2。重新编译完毕后,重新启动虚拟

机的WRK1.2Debug,通过主机的WinDebug使其启动,启动完毕后,使用WinDebug使

其暂停,然后在WinDebug中输入“dt eprocess”命令,输出文字如下:

如图所示,命令打印出了我们自己设置的信息。以上就是基本的WRK编译和WinDebug

的调试。