vs2019 编译 WRK 踩坑记录
一、回顧
上一篇博客介紹了命令行編譯 WRK 到調試的所有步驟,理論上我們已經可以開始學習了。
但是 IDE 可以方便的查找和修改函數,好處多多,所以這篇博客介紹如何使用 visual studio 編譯 WRK。
這篇博客會沿用上一篇博客的部分配置,建議讀者先跟著上一篇博客配置一下。
/s/1x-vmB0TRY27CZErIvZS8UA
提取碼:u4j3
二、Windows-Research-Kernel-WRK-
https://github.com/HighSchoolSoftwareClub/Windows-Research-Kernel-WRK-
里面有詳細的用法介紹,大家完全可以自己看 readme,我這篇博客也是參考它的教程。
這是一個開源項目,為我們配置好了vs解決方案,下下來,解壓:
雙擊 WRKCopy.bat ,把 WRK 源碼復制到 C盤根目錄:
根據你的環境修改 WRKEnv.bat :
在我的機器上修改后是這樣的:
然后雙擊運行bat腳本,如果想看看輸出信息,可以在cmd里打開:
然后用 vs2019 打開 WRK.sln,按照提示升級解決方案:
修改生成選項為 x86
F7 編譯,報錯:
1>NMAKE : fatal error U1077: ��"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86\cl.exe"��: ���?��?0x2��
1>Stop.
1>NMAKE : fatal error U1077: ��"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x86\nmake.exe"��: ���?��?0x2��
1>Stop.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: 命令“C:\WINDOWS\System32\chcp.com 65001 >NUL
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: “C:\WRK-v1.2\build.bat” x86 C:\WRK-v1.2\”已退出,代碼為 -1。
1>已完成生成項目“WRK.vcxproj”的操作 - 失敗。
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
出現這個錯誤,是因為 tools\x86 下面沒有所需的工具,這時,把我們在上一篇博客里用的那個 wrk 項目里的文件復制過去:
復制后:
再次編譯,出現新的錯誤:
1> lib.exe -nologo -LIBPATH:C:\WRK-v1.2\base\ntos\BUILD\obji386 -LIBPATH:PREBUILT\i386 -IGNORE:4010,4037,4039,4065,4070,4078,4087,4089,4221,4198 -WX -nodefaultlib -machine:x86 -IGNORE:4001 obji386\*.lib ntoswrk.lib -def:EXE\wrkx86.def -out:EXE\wrkx86.lib 1>LIB : fatal error LNK1181: cannot open input file 'ntoswrk.lib' 1>NMAKE : fatal error U1077: 'lib.exe' : return code '0x49d' 1>Stop. 1>NMAKE : fatal error U1077: 'C:\WRK-v1.2\tools\x86\nmake.exe' : return code '0x2' 1>Stop. 1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: 命令“C:\WINDOWS\System32\chcp.com 65001 >NUL 1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(54,5): error MSB3073: "C:\WRK-v1.2\rebuild.bat" x86 C:\WRK-v1.2\”已退出,代碼為 -1。 1>已完成生成項目“WRK.vcxproj”的操作 - 失敗。 ========== 全部重新生成: 成功 0 個,失敗 1 個,跳過 0 個 ==========因為沒有搜到解決辦法,最后我嘗試性的把4個文件夾替換掉了,我用之前命令行編譯好使的那個項目的 base public tools 和 ws03sp1hals 覆蓋掉了當前的文件夾,注意是先刪除后復制。
再次打開 SLN ,編譯,成功了!
為了驗證這個項目是好使的,我修改了 NTQuerySystemInformation 的源碼,并且修改了 windbg 里的符號文件路徑,然后啟動虛擬機,這幾步大家應該挺熟悉了,我就不啰嗦了,上幾張圖。
觀察 windbg 輸出:
可以看到,我們修改成功了,至此,vs2019 編譯 wrk 的環境已經弄好了。
總結
以上是生活随笔為你收集整理的vs2019 编译 WRK 踩坑记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令行编译 WRK ,windbg 调试
- 下一篇: KPROCESS 结构体属性介绍