1.基礎的C語言2.保護模式下的組合語言3.基礎的NT式驅動開發知識4.對NT核心的掌握和了解5.對檔案系統和網路方面的瞭解(ROOTKIT需要利用檔案系統實現隱藏,如果要實現隱藏的網路連線也需要相關知識)6.X86體系結構的知識7.WIN32的程式設計知識下面解釋一下為什麼需要以上知識,首先ROOTKIT主要以驅動形式存在,驅動基本都是用C和彙編完成,所以最基本的彙編和C語言是要掌握的。其次是關於NT核心的知識,舉例:什麼叫SSDT?系統服務是怎麼透過SSDT分發的?IRQL是什麼?Windows是如何透過IRQL實現中斷處理的?什麼叫核心物件?核心物件在記憶體中如何表示?windows的啟動流程是什麼?當然你還需要了解體系結構方面的知識,比如:什麼叫保護模式?保護模式下是如何透過GDT、頁表、頁目錄實現分段和分頁機制的?什麼叫Ring3?什麼叫Ring0?當然也需要win32的開發能力,如果連win32 api都不會用,那麼更別提核心了。參考書籍《ROOTKIT系統灰色地帶的潛伏者》個人認為是世面上關於ROOTKIT最好的一本書,這本書的翻譯沒有網上說的那麼糟糕。《駭客大曝光:惡意軟體和ROOTKIT安全》這本書很薄,但涵蓋的很多。更像是一個全面的簡介。《ROOTKIS》很老的一本書,內容非常不錯《WINDOWS核心安全與驅動開發》驅動入門書,很大篇幅都是各種過濾驅動《WINDOWS核心程式設計》瞭解應用層層面下的系統原理《WINDOWS核心情景分析》有原始碼可以結合下面一本書一起看《深入解析WINDOWS作業系統》大名鼎鼎的windows internal,都是概念性的知識,有時候看的雲裡霧裡。結合上面的核心情景分析,有WRK或是reactos的程式碼看起來會有幫助PS:個人認為基於核心的rootkit現在已經是"窮途末路"了,未來的rootkit可能不再依託於系統核心來實現功能。
1.基礎的C語言2.保護模式下的組合語言3.基礎的NT式驅動開發知識4.對NT核心的掌握和了解5.對檔案系統和網路方面的瞭解(ROOTKIT需要利用檔案系統實現隱藏,如果要實現隱藏的網路連線也需要相關知識)6.X86體系結構的知識7.WIN32的程式設計知識下面解釋一下為什麼需要以上知識,首先ROOTKIT主要以驅動形式存在,驅動基本都是用C和彙編完成,所以最基本的彙編和C語言是要掌握的。其次是關於NT核心的知識,舉例:什麼叫SSDT?系統服務是怎麼透過SSDT分發的?IRQL是什麼?Windows是如何透過IRQL實現中斷處理的?什麼叫核心物件?核心物件在記憶體中如何表示?windows的啟動流程是什麼?當然你還需要了解體系結構方面的知識,比如:什麼叫保護模式?保護模式下是如何透過GDT、頁表、頁目錄實現分段和分頁機制的?什麼叫Ring3?什麼叫Ring0?當然也需要win32的開發能力,如果連win32 api都不會用,那麼更別提核心了。參考書籍《ROOTKIT系統灰色地帶的潛伏者》個人認為是世面上關於ROOTKIT最好的一本書,這本書的翻譯沒有網上說的那麼糟糕。《駭客大曝光:惡意軟體和ROOTKIT安全》這本書很薄,但涵蓋的很多。更像是一個全面的簡介。《ROOTKIS》很老的一本書,內容非常不錯《WINDOWS核心安全與驅動開發》驅動入門書,很大篇幅都是各種過濾驅動《WINDOWS核心程式設計》瞭解應用層層面下的系統原理《WINDOWS核心情景分析》有原始碼可以結合下面一本書一起看《深入解析WINDOWS作業系統》大名鼎鼎的windows internal,都是概念性的知識,有時候看的雲裡霧裡。結合上面的核心情景分析,有WRK或是reactos的程式碼看起來會有幫助PS:個人認為基於核心的rootkit現在已經是"窮途末路"了,未來的rootkit可能不再依託於系統核心來實現功能。