之前ida+windbg調(diào)內(nèi)核發(fā)現(xiàn)內(nèi)核的地址和ida中不匹配....搞了半天,終于發(fā)現(xiàn)是這個(gè)原因:
我ida是ntoskrnl.exe .... 而windows中加載的版本是
ntkrpamp.exe
忘了操作系統(tǒng)會(huì)根據(jù)處理器型號(hào)加載不同版本內(nèi)核了....
正好看到高端調(diào)試上有關(guān)于這個(gè)的討論:
http://advdbg.org/forums/2142/ShowPost.aspx
但是我的分析是基于ntoskrnl的,沒辦法,只好強(qiáng)制指定系統(tǒng)加載ntosknrl了,得做以下幾個(gè)工作
1 把vm的processor調(diào)成單核單處理器
2 開windows虛擬機(jī), 為了告訴系統(tǒng)現(xiàn)在是單核單處理器模式,得跑一下這個(gè)命令 rundll32.exe setupapi,InstallHinfSection ACPIAPIC_UP_HAL 131 %windir%\inf\hal.inf
參考: 如何修改Windows XP系統(tǒng)的內(nèi)核類型 http://blog.sina.com.cn/s/blog_5918846401000bik.html
3 當(dāng)然,這里還沒結(jié)束,如果處理器支持PAE 那么系統(tǒng)會(huì)加載ntoskrnla 所以還得禁用PAE. 到
BOOT.INI里面, 啟動(dòng)設(shè)置中如果有/noexecute=optin就替換改成/execute,沒有的話就加上/execute
完了后就會(huì)加載ntoskrnl了,效果圖:

指定其它系統(tǒng)方法類似,在此僅拋磚引玉