从今天开始正式开始学习开发驱动,很多的东西可能都需要慢慢开始把。现在的感觉依旧是学艺不精。东西学的太多太杂。
记录下这些东西怕用的时候会忘了。也不知道该怎么办了。
1.驱动程序安装
工具:srvinstw.exe
猛击此处下载!
工具使用简单明了,也就没不要记录了。需要注意的是在file path这里只能手工输入,如果浏览的话只能看到exe文件。
驱动类型为设备驱动,启动类型手动,便于自己启动或者暂停服务。安装服务后就可以用net命令启动了
2.单机调试工具DebugView
运行DebugView,选中选项中的Capture Kernel
现在可以直接net start first了,first为服务名称。
效果图如下
3.双机调试WinDbg
环境: VMware+Windbg
1).首先设置虚拟机中的调试模式:修改boot.ini修改原文件加入下面的调试信息,修改后如下:
[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="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
2).下载安装WinDbg,猛击此处下载Windbg!
修改Windbg启动参数,这里直接创建一个bat文件,将下面的内容写入就可以了。
windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
3).虚拟机管道设置
修改虚拟机的Setting选项,不要启动虚拟机Edit virtual machine settings>>hardware>>add>>Add
Add Hardware Wizard>>HardWare types>>Serial Port(串口)>>Output to named pipe.
最后一部需要修改第三个框内为The other end is an application。如下图
到此位置设置就算完成了,在启动虚拟机后选择调试模式,然后运行建立的批处理来启动WinDbg。
程序中断在了驱动中的int3 断点。F5继续运行就可以启动系统了。
符号表路径设置
srv*c:\symbols*http://msdl.microsoft.com/download/symbols;C:\DDK\objchk_wxp_x86\i386
分号后面为自己写的驱动的对应路径。
原源码路径设置为自己驱动的路径就可以了。左侧的代码为书中的源代码。