首页
社区
课程
招聘
[分享][原创]WRK编译报错解决方案
2022-9-21 19:38 3899

[分享][原创]WRK编译报错解决方案

2022-9-21 19:38
3899

WRK(Windows Research Kernel)

WRK是微软为高校操作系统课程提供的可使用或修改的操作系统内核。

(1)编译WRK-方式一

  1. 管理员方式打开命令行
  2. 设置临时环境变量
  3. cd切换到xxx\WRK-v1.2\base\ntos目录
  4. 使用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-方式二

1
运行C:\WRK-v1.2\Build.bat

(3)编译失败

以上步骤有些WRK可以直接编译,很遗憾github下载的编译会报错。
WRK下载-github
因为文件夹少了很多东西,目前已知缺少编译工具、lib文件、硬件抽象层DLL

在此楼主网上搜寻一番,掌握了可以编译通过的文件和方法。

(4)正确的编译姿势

  1. 使用WRK-1.2文件夹目录下的WRKCopy.bat会自动拷贝WRK-1.2到C盘根目录
  2. 使用vs2019打开C:\WRK-v1.2\WRK.sln
    活动解决方案配置改为X86
  3. 生成解决方案

    生成的文件在C:\WRK-v1.2\base\ntos\BUILD\EXE

(5)windows server 2003使用生成的内核程序

文件:
wrkx86.exe
halmacpi.dll

  1. 拷贝wrkx86.exe和halmacpi.dll到windows server2003的C:\WINDOWS\SYSTEM32目录
  2. 修改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
  1. 重启进入双击调试配置好后的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


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2023-8-24 12:35 被fishod编辑 ,原因: 遗漏附件
收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回