這幾天除錯系統pte區域,在獲取nt!mmfirstfreesystempte指向的元素時,總無法獲得正確的空閒pte值。反彙編nt!miinitializesystemptes函式時發現這樣的**:
80544e35 8d3cf5c0975580 lea edi,nt!mmfirstfreesystempte (805597c0)[esi*8]
80544e3c 8b5704 mov edx,dword ptr [edi+4]
80544e3f 8845ff mov byte ptr [ebp-1],al
80544e42 8b07 mov eax,dword ptr [edi]
80544e44 b120 mov cl,20h
80544e46 897df8 mov dword ptr [ebp-8],edi
80544e49 e8121fffff call nt!_aullshr (80536d60)
80544e4e 83f8ff cmp eax,0ffffffffh
80544e51 7530 jne nt!mireservealignedsystemptes+0x7d (80544e83)
nt!mmfirstfreesystempte是個mmpte陣列,sizeof(mmpte)==4才對,怎麼**中會用到:
80544e35 8d3cf5c0975580 lea edi,nt!mmfirstfreesystempte (805597c0)[esi*8] ;每個元素占用8位元組
檢視了wrk1.2的原始碼,發現在開啟pae的情況下mmpte會占用8b:
#if !defined (_x86pae_) //未開啟pae
typedef hardware_pte_x86 hardware_pte;
typedef phardware_pte_x86 phardware_pte;
#else //開啟pae
typedef hardware_pte_x86pae hardware_pte;
typedef phardware_pte_x86pae phardware_pte;
#endif
typedef struct _hardware_pte_x86pae ;
struct ;
}; //union結構中定義了2個ulong,整個結構至少8位元組
} hardware_pte_x86pae, *phardware_pte_x86pae;
由此,我猜測我除錯用的xp sp3開啟了pae模式,來找找系統資訊作為佐證:
系統屬性和windbg的資訊無不證明這個xp系統執行在pae模式下。
那麼接下來要做的就是關閉pae模式,網上搜尋了一圈(容我吐槽一下baidu,真是什麼都沒找到,最後實在bing上找到的解決辦法)發現只要修改c:\boot.ini屬性並新增以下引數: /noexecute=alwaysoff /nopae即可(這麼做同時會關閉系統dep功能,反正我是除錯用,無所謂)
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\windows="microsoft windows xp professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\windows="debug" /noexecute=alwaysoff /nopae /debug /debugport=com1: /baudrate=115200
儲存並重啟後成功關閉了pae模式:
此時,系統屬性中已經沒有"物理記憶體擴充套件"這樣的字眼,另外windbg也顯示當前用的nt模組指向ntoskrnl.exe。pae成功關閉~
你在使用XP SP3嗎?
某次無意中執行瑞星的 漏洞掃瞄工具 發現提示我安裝ms的xp sp3。我說ms出sp3了啊。火星來的 oops 隨著在網上搜尋了下,介紹sp3的不是很多,還有堆是sp3 beta介紹的,而且d版本的還沒有幾個。總的來說,sp3主要是把之前的補丁集中處理一下,增加安全性,據說還有是像vista 沒用過...
微軟下週將發布XP SP3 開機僅需35秒
訊息,據國外 報道,最新測試結果顯示,windows xp sp3的開機速度比vista sp1快23秒。最新測試結果顯示,在不安裝防毒軟體等任何程式的情況下,windows xp sp3 rc2 開機所需時間為35秒,而vista sp1為58秒。如果安裝其他應用程式,那麼該時間將有所增加。眾所周...
讓XPSP3遠端桌面連線支援網路級身份驗證
如果在windows 2008遠端桌面裡啟用了 帶網路級別的身份驗證 預設在xpsp3裡是沒有辦法用 遠端桌面連線 連線到2008的,需要手工的修改二項登錄檔,預設xpsp3是 不支援網路級別的身份驗證 如何使它支援網路級別的身份驗證呢?需要手工的改兩個登錄檔鍵值,具體操作如下 單擊開始,單擊執行,...