剛開始用的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
編譯完成。
將編譯好的wrkx86.exe拷貝到c:\windows\system32目錄下。
在cmd命令模式下,執行以下命令:
在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。
然後
發現已經連線上了,然後就可以開始你的看原始碼,動態除錯的學習了。
wrk 編譯 設定雙機除錯
wrk版本 wrk v1.2 直接在除錯的目標虛擬機器裡編譯windows server 2003 service pack 1,複製wrk到虛擬機器中 1 將msvcp71.dll,msvcr71.dl放至wrk v1.2 tools x86路徑下 2 環境變數path設定為 set path j...
wrk核心除錯總結
2 虛擬機器選擇序列介面的時候 要注意選擇序列介面2 3 主機是64位作業系統下,安裝32位的windubg和64位的windug都可以 4 一定要先開虛擬機器 選擇除錯模式 然後再開啟windbug 5 在windbug快捷方式屬性裡面 目標的裡面空格後接 b k com pipe,port pi...
編譯和閱讀WRK原始碼
一 什麼是wrk wrk的全稱是 windows research kernel 它是微軟為高校作業系統課程提供的可修改和跟蹤的作業系統教學平台。它給出了windows這個成功的商業作業系統的核心大部分 可以對其進行修改 編譯,並且可以用這個核心啟動windows作業系統。可讓學生將作業系統基本原理...