刚开始用的vs各种不正确,最后使用先安装windows server 2003,然后在里面编译wrk,成功。
将WRK源码拷贝到windows虚拟机中,方法很多,我这边是通过【文件夹共享】的方式把源码放到C盘根目录【C:\】
在虚拟机中,将【C:\WRK-v1.2\toos\x86】的路径加到Path系统环境变量中。
打开CMD命令行窗口模式,cd C:\WRK-v1.2\base\ntos文件夹,输入
nmake -nologo x86= 开始编译。
编译完后,会在C:\WRK-v1.2\base\ntos\BUILD\EXE目录下产生内核文件wrkx86.exe
这里报错缺什么dll去下什么dll,dll下载连接推荐https://cn.dll-files.com/
编译完成。
将编译好的wrkx86.exe拷贝到C:\WINDOWS\system32目录下。
在CMD命令模式下,执行以下命令:
link -dump -all \WINDOWS\system32\hal.dll | findstr pdb
在WRK中,根据以下关系选择相应的HAL库:
halacpi.dll -> halacpim.dll
halaacpi.dll->halmacpi.dll
halapic.dll->halmps.dll
所以我这里就是把halmacpi.dll放到C:\WINDOWS\system32目录下
然后把隐藏文件C:\boot.ini,最后一行添加以下内容:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WRK V1.2" /kernel=wrkx86.exe /hal=halmacpi.dll
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WRK V1.2" /kernel=wrkx86.exe /hal=halmacpi.dll /debug /debugport=com1 /baudrate=115200
然后关闭虚拟机,设置串口,
然后重启虚拟机
如果要windbg调试,选择第三个,然后打开windbg,windbg属性的目标记得加"C:\Program Files\Debugging Tools for Windows (x64)\windbg.exe" -k com:port=\\.\pipe\com_1,baud=115200,pipe。
然后
发现已经连接上了,然后就可以开始你的看源码,动态调试的学习了。