關鍵點:
除錯函式得到的資訊:
kd> u nt!iofcalldriver
nt!iofcalldriver:
804ef120 ff2500d25480 jmp dword ptr [nt!piofcalldriver (8054d200)]
804ef126 cc int 3
804ef127 cc int 3
804ef128 cc int 3
804ef129 cc int 3
804ef12a cc int 3
804ef12b cc int 3
nt!iocheckquerysetfileinformation:
804ef12c 8bff mov edi,edi
我們知道,在呼叫iocalldriver 的時候,它會先呼叫 iofcalldriver,所以,我們必須替換 這個 jmp 的位址,也就是
替換成我們的函式位址。。。
替換的過程:
ulong uaddress;
kirql irql;
uaddress = (ulong)iofcalldriver; // 得到原函式位址
__asm
irql = keraiseirqltodpclevel(); // 提高中斷等級,防止被搶占。。。
clearmemoryprotect(); // 去除記憶體的寫保護,我自己把它們封裝了
__asm
recovermemoryprotect();
kelowerirql(irql);
解除安裝呢?
也就是,我們將 jmp 後 的4 個位元組 替換成原來的函式位址,一切就是這樣,從這裡可以看出,指標的威力是很強大的。。。
我對SG函式的理解
i 的sg函式g i 定義如下 如果該點沒有出邊,g i 0 否則定義乙個mex minimal excludant 操作,這是對乙個集合進行的操作,返回值為集合中所不包含的最小的非負整數,那麼g i m ex。顯然對於乙個有向無環圖,我們都能在o 狀態總數 每個點 的後繼狀 態數 時間內求出所有點...
對函式與結構體的淺薄認識
1182 獎學金 輸入包含n 1行 第1行為乙個正整數n 6 n 300 表示該校參加評選的學生人數。第2到n 1行,每行有3個用空格隔開的數字,每個數字都在o到100之間z第1行的3個數 字依次表示學號為j 1的學生的語文 數學 英語的成績。每個學生的學號按照輸入順序編號為l n 恰好是輸入資料的...
sort 函式對結構體的排序問題
翻譯 程式設計能力測驗 pat 是由浙江大學電腦科學與技術學院開發的。每個測試應該同時執行在幾個地方,最終和ranklists將合併後立即測試。現在你的工作是編寫乙個程式,正確合併所有ranklists並生成最終的排名。輸入格式 每個輸入檔案包含乙個測試用例。對於每個案例,第一行包含乙個正數n 10...