-
-
[分享][原创]WRK编译报错解决方案
-
发表于:
2022-9-21 19:38
5790
-
WRK(Windows Research Kernel)
WRK是微软为高校操作系统课程提供的可使用或修改的操作系统内核。
(1)编译WRK-方式一
- 管理员方式打开命令行
- 设置临时环境变量
- cd切换到xxx\WRK-v1.2\base\ntos目录
- 使用WRK自带的编译工具nmake一次性编译
1 2 3 4 | path G:\XXX\XXX\WRK - v1. 2 \tools\x86\x86; % path %
cd G:\XXX\XXX\WRK - v1. 2 \base\ntos
G:
nmake - nologo x86 =
|
G:\XXX\XXX\WRK-v1.2\base\ntos\BUILD\EXE\目录下会生成wrkx86.exe文件,其地位等价于ntkrnlxx.exe
(2)编译WRK-方式二
(3)编译失败
以上步骤有些WRK可以直接编译,很遗憾github下载的编译会报错。
WRK下载-github
因为文件夹少了很多东西,目前已知缺少编译工具、lib文件、硬件抽象层DLL
在此楼主网上搜寻一番,掌握了可以编译通过的文件和方法。
(4)正确的编译姿势
- 使用WRK-1.2文件夹目录下的WRKCopy.bat会自动拷贝WRK-1.2到C盘根目录
- 使用vs2019打开C:\WRK-v1.2\WRK.sln
活动解决方案配置改为X86
- 生成解决方案
生成的文件在C:\WRK-v1.2\base\ntos\BUILD\EXE
(5)windows server 2003使用生成的内核程序
文件:
wrkx86.exe
halmacpi.dll
- 拷贝wrkx86.exe和halmacpi.dll到windows server2003的C:\WINDOWS\SYSTEM32目录
- 修改boot.ini添加一行
1 | multi( 0 )disk( 0 )rdisk( 0 )partition( 1 )\WINDOWS = "WRK Mode" / noexecute = optout / fastdetect / kernel = wrkx86.exe / hal = halmacpi.dll / debugport = com / baudrate = 115200
|
- 重启进入双击调试配置好后的windows server2003 选择进入编译的内核
等待windbg成功连接
使用lm命令确定符号加载
若没有加载则手动添加符号目录,然后使用.reload加载符号
(6)测试windbg加载源文件
bp nt!NtCreateProcess
使用g命令启动系统,等待创建进程时被断下。
当windbg成功断下后,通过windbg - File - OpenSource
加载拷贝到C盘的WRK-base-ntos-ps目录中的Create.c文件
此时发现windbg帮我们显示到了文件位置,接下来可以通过源文件舒服的学习内核了。
相关资源
附件包含三种方式
第一种:楼主提供网上搜集的WRK资源,经过整合后可以使用
第二种:楼主已整理好的WRK资源,可以根据此教程食用。
第三种:直接使用已编译的工具,再把WRK文件夹放入C盘即可
链接:https://pan.baidu.com/s/14_f_-FA8kWxgla7et2SbPw?pwd=krvc
提取码:krvc
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2023-8-24 12:35
被fishod编辑
,原因: 遗漏附件