wrk源码分析之WinDbg+Bochs调试.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
nwindows内核(WRK)编译过程 1.用虚拟机VMware安装一个windows server 2003系统 (以下所指系统如未加说明均为该windows server 2003虚拟机) 2.将WRK源码拷贝到系统下C盘,将文件夹取名wrk(可以任意命名) 3.将系统中的环境变量Path设置为 C:\wrk\tools\x86;%path% 4.(在命令提示符中输入)cd wrk\base\ntos 5.(在命令提示符中输入)nmake -nologo x86= ? ? ? ? ? ? ? (内核正在编译...编译完后在wrk\base\ntos\BUILD\EXE下生成内核文件) 6.将wrk\base\ntos\BUILD\EXE下的内核文件拷贝到C:\windows\system32下 7.(在命令提示符中输入)在C:\windows\system32路径下输入link -dump -all hal.dll | findstr pdb命令,查看你的hal按照下面对照: ? ? halacpi.dll - halacpim.dll ? ; ACPI PIC-based PC [used by VirtualPC] ? ? halaacpi.dll - halmacpi.dll ? ; ACPI APIC-based PC ? ? halapic.dll - halmps.dll ? ? ; MPS 8.进入C:\wrk\WS03SP1HALS\x86目录下,将相应的hal文件夹下的文件(2个)拷贝到C:\windows\system32下 9.进入C盘,将隐藏的文件boot.ini打开,在最后一行加入: multi(0)disk(0)rdisk(0)partition( 2 )\WINDOWS=test /kernel=wrkx86.exe /hal=halmacpi.dll 10.重新启动,进入新编译好的内核. PS:1.注意第9步中,发光的数字2,该数值应与原来最后一句中的一致(否则进入系统时会出现没有找到引导盘) ? 2.如果还是进入不了系统,则下载win2003sp1ch进行系统升级. wrk源码分析之WinDbg+Bochs调试 wrk源码分析之WinDbg+Bochs调试 我是因调试wrk源代码的需要而开始使用WinDbg的。现在感觉调试windows内核源代码,WinDbg是当之无愧的最佳选择了。它不仅有丰富的命令可供内核的调试,而且还可以自己写代码来扩展命令。唯一让人觉得美中不足的是它的脚本实在是弄得太复杂,不过这可以用WinDbg的扩展功能来弥补不足,即写一个脚本扩展DLL来执行卓如python之类的脚本。我自己也写过支持python脚本的WinDbg扩展,还是挺有用的。在sourceforge也有一个叫PyDbgExt的开源软件,可以试试看。在《wrk源代码分析之实验环境》中我已经讲了如何来做用于wrk源代码调试的WinPE的光盘镜像,但都是在Vmware或者powerPC中调试的。有了WinPE,我们不仅可以在Bochs下运行它,还可以调试它,并且如果与WinDbg相连,就可以实现像其它虚拟机一样的源码极的调试!没想到吧?下面我就来介绍介绍我实现WinDbg+Bochs来调试wrk源代码的的过程。 Bochs,不用说了吧,大名鼎鼎的开源虚拟机软件,可以用于x86和amd64软件的调试,是一款很好的操作系统调试软件,功能很强大,缺点是比其它虚拟机慢。与其它调试软件合作,如insight,ddd等可达到源码级的调试效果。但这些软件都是linux下的,虽然有windows的移植版本,但感觉不太好用,这也是我要介绍WinDbg+Bochs调试的原因之一了。 好,进行正题,如果你用Vmware之类的虚拟机调试过系统软件,那么你知道调试的通信一般是通过串口来进行的。有些软件,像Vmware还支持命名管道的通信方式。这样就可以很方便的用Windbg+Vmware来调试了。但是怎样用WinDbg+Bochs实现调试呢?我最先想到的是用虚拟串口软件,如VSPM,虚拟出两个串口,利用Bochs和WinDbg的串口调试功能,来进行这两者之间的通信,只可惜试了老半天也没有试出来,WinDbg在显示connecting…之后就再也没的反应了。而在Bochs中运行的WinPE在启动到时多停了一段时间以后又继续执行了。难道真的就没有办法了吗?实在是不甘心啊,这明明是可以实现的功能啊!WinDbg不是也支持命名管道的调试方式吗,但是Bochs不支持,所以想用管道的方式来进行WinDbg和Bochs之间的通信是行不通的了。但Bochs是开源的,在看了Bochs的相关串口通信部分的源代码之后,决定自己给Bochs加上命名

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档