首页
社区
课程
招聘
[原创]内核驱动编程环境搭建WDK+VC6.0+Windbg总结(1)
发表于: 2013-5-28 19:59 2597

[原创]内核驱动编程环境搭建WDK+VC6.0+Windbg总结(1)

2013-5-28 19:59
2597
1、        环境搭建过程WDK7600.16385.1+VC6.0所遇到的问题和编译环境设置总结
最近在学习Windows内核编程,借用了圣经《Professional Rootkit》和《寒江独钓+Windows内核编程》教程。在环境搭建的过程,我碰到了好多的问题。所幸,最后,终于一一成功解决。现在总结一下,以便为后来学习的孩子们节省些时间。
        环境搭建过程:
网上关于这方面的教程非常多,我就说一下我自己在搭建环境过程所进行的步骤吧。
环境设置:
                VM9.0.1
                镜像xp3
                WDK7600.16385.1
                VC6.0中文版
                Dbg_x86_6.7.05.1
注释:其中内核编程过程需要的调试工具windbg在WDK中存在,但是本人在调试过程,使用了虚拟机本机内核调试windbg和主机通过通道调试虚拟机内核的两种方式。所以在本机另外安装了windbg内核调试工具。
虚拟机以及xp3镜像的安装这里直接略去。
        主机host安装Windbg后于虚拟机通道建立和连通性测试:
主机host安装好windbg后,建立一个快捷方式,右键点击快捷方式->【属性】->【目标(T)】,如下所示:


输入参数-b -k com:port=\\.\pipe\com_1,baud=115200,pipe
这个表示windbg通过上述参数与虚拟机中xp机器进行通信。其中port=\\.\pipe\com_1表示的是通道的名称,baud=115200参数表示的是通信的波特率。
        虚拟机添加一个串口通道
选择相应的虚拟机【microsoft professional xp】,不需要打开。然后在虚拟机的工具栏中依次进行【VM】->【Setting】->【Hardware】->【Adding】->【Serial】->【Using name pipe】,接下来,需要注意两点一是输入管道名称\\.\pipe\com_1,二是the other end is an application,结果如下所示:

注意这里虽然自动建立的通道名称是com1,但是建成之后HardWare窗口的SerialPort变成了2。这两个是有区别的哦,特别是对后续的boot.ini文件的设置影响。
        进入sp3虚拟机中,打开C盘下的boot.ini文件
设置开机启动项,添加一个开启时的调试选项。如下图所示:



其中红色部分内容为:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200。特别需要注意的是一点,上述的通信端口com1需要结合虚拟机工具提供的serial端口号变化,如果在虚拟机建立端口的时候,虚拟机串口端口编号自动变成了com2,那么这里需要变成com2,否则,就是com1。(我在这里就曾经碰到过障碍)
添加后,虚拟机就会在开启的时候多了一一项调试模式选项的启动项。如下图所示:



如果在开启了调试模式后,按下【Ctrl】+【ALT】返回到主机,开启windbg后,windbg能够正常的连接,就表示windbg和虚拟机能够正常的进行调试通信了。
        WDK和VC6.0安装
尽量先安装VC6.0,因为VC6.0版本比较低,不能识别后续的程序,所以,推荐安装程序时,先安装较低版本的程序。
安装好WDK之后,打开Building Check的DOS界面,这个在安装好的WDK里面,通过【开始程序】->【WDK】->……->【Building Check】,就会出现一个Building check界面。另外还有一个Free Check选项,好像是发布版本需要编译用到的工具,我们现在只是研究调试版本【Building Check】。
等一会儿,输入命令【Build】进行编译,大约需要几十分钟——几分钟,具体要看机器性能了。
我在编译之后出现了如下错误:

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//