Windows內(nèi)核安全編程從入門到實(shí)踐

出版時(shí)間:2012-4  出版社:電子工業(yè)出版社  作者:《黑客防線》編輯部 組編  頁數(shù):424  
Tag標(biāo)簽:無  

前言

  前言  記得第一次在內(nèi)核中簡單調(diào)用DbgPrint函數(shù)輸出“helloworld”時(shí)興奮得手舞足蹈,也記得之后開發(fā)ARP防火墻時(shí)遭遇無數(shù)次藍(lán)屏而無限接近崩潰的狀態(tài)。時(shí)至今日,接觸Windows內(nèi)核安全編程已有三年時(shí)間了,期間斷斷續(xù)續(xù)地寫了一些小程序,直到偶然一天收到《黑客防線》雜志的邀請而萌生了寫一本書記錄自己一路走來經(jīng)歷的想法,對于和我一樣正走在學(xué)習(xí)Windows內(nèi)核安全編程之路上的菜鳥們來說,有很大的閱讀價(jià)值,尤其對于那些正準(zhǔn)備上路或者剛剛上路的新晉菜鳥而言,通過閱讀本書,可以少走很多無謂的彎路?! ”緯慕Y(jié)構(gòu)  本書共包括10章,其中:  第1~3章為基礎(chǔ)篇,介紹基于Windows編程的基礎(chǔ)知識;  第4~8章為提升篇,通過具體示例介紹各Windows組件相關(guān)的編程方法;  第9~10章為輔助篇,簡單介紹安全編碼及逆向與調(diào)試程序的方法?! ”緯睦碚摬糠种饕訵DK文檔作為支撐,全書關(guān)于理論介紹的知識絕大部分來源于WDK,另外一小部分知識直接或間接來源于其他文檔(如Windbg文檔等)、書籍(如WindowsInternal4等)、網(wǎng)絡(luò)及個(gè)人經(jīng)驗(yàn)等?! ”緯膶?shí)踐部分來源于WDK提供的例子及個(gè)人項(xiàng)目,建議讀者在虛擬機(jī)中運(yùn)行示例?! ”緯拈喿x說明  讀者可以根據(jù)需要選擇閱讀感興趣的章節(jié),也可以從頭至尾完整地閱讀全書?! 〕颂貏e說明適用于Windows7或其他系統(tǒng)的內(nèi)容除外,本書所有的內(nèi)容默認(rèn)適用于WindowsXP系統(tǒng)?! ∶空绿峁┑氖纠ㄗh在虛擬機(jī)環(huán)境下運(yùn)行。由于本人能力和時(shí)間有限,并沒有在真機(jī)環(huán)境中測試過,不能保證所提供的示例程序穩(wěn)定運(yùn)行在各種環(huán)境下,若直接運(yùn)行于真機(jī)環(huán)境中,可能會對您的計(jì)算機(jī)財(cái)產(chǎn)造成不必要的損害?! ≈轮x  感謝趙躍華教授對我的悉心培養(yǎng);感謝張翼(xyzreg)學(xué)長對我多年的指導(dǎo)和照顧;感謝全體535實(shí)驗(yàn)室的師弟師妹們對本書的文字修正;感謝黑客防線在合作過程中的細(xì)致幫助;最后,感謝我的父母對我無盡的給予?! ∪绻陂喿x過程中發(fā)現(xiàn)本書的技術(shù)性錯誤,或者有好的建議,歡迎致信ifsecurity588@gmail.com?! ∽髡摺 ?011/12/28ax

內(nèi)容概要

  本書詳細(xì)介紹了Windows平臺下的內(nèi)核安全編程知識。首先簡單介紹了驅(qū)動編程的基本方法;然后詳細(xì)介紹了Windows各個(gè)系統(tǒng)組件的工作原理,如文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)自上而下的執(zhí)行流程。同時(shí)還介紹了各個(gè)組件涉及的安全問題,如文件隱藏、鍵盤記錄等,并通過工程項(xiàng)目讓讀者從代碼層級了解這些信息安全問題及解決方法;最后介紹了驅(qū)動編程本身的安全問題,如安全編碼的注意事項(xiàng)和脆弱代碼的檢測手段。另外本書還介紹了簡單的調(diào)試和逆向技術(shù),幫助解決開發(fā)過程中遇到的技術(shù)難題。通過閱讀本書,可以幫助讀者更深層次的了解內(nèi)核態(tài)下的信息安全知識。
  本書適合大專院校計(jì)算機(jī)系的學(xué)生、windows程序員、從事信息安全行業(yè)的工程師以及所有對windows內(nèi)核安全編程感興趣的愛好者使用。

書籍目錄

第一部分 基礎(chǔ)篇
第1章 前置要求與環(huán)境搭建
1.1 驅(qū)動編程的語言
1.2 開發(fā)環(huán)境搭建
1.2.1 Visual Studio 2005/2008的安裝與配置
1.2.2 WDK的安裝與配置
1.2.3 VisualDDK的安裝與配置
1.3 常用工具介紹
第2章 內(nèi)核編程基礎(chǔ)知識
2.1 Windows主要系統(tǒng)組件
2.1.1 對象管理器
2.1.2 內(nèi)存管理器
2.1.3 進(jìn)程和線程管理器
2.1.4 I/O管理器
2.1.5 PnP管理器
2.1.6 電源管理器
2.1.7 配置管理器
2.1.8 安全引用監(jiān)視器
2.2 常見名詞解釋
2.2.1 內(nèi)核名詞
2.2.2 文件名詞
2.2.3 網(wǎng)絡(luò)名詞
2.3 常見內(nèi)核數(shù)據(jù)結(jié)構(gòu)
2.3.1 驅(qū)動框架常見數(shù)據(jù)結(jié)構(gòu)
2.3.2 進(jìn)程與線程數(shù)據(jù)結(jié)構(gòu)
2.3.3 存儲系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
2.3.4 網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)
2.3.5 其他一些常見的數(shù)據(jù)結(jié)構(gòu)
第3章 基本編程方法
3.1 簡單的NT式驅(qū)動模型
3.1.1 驅(qū)動模型的選擇
3.1.2 NT式驅(qū)動程序基本結(jié)構(gòu)
3.1.3 編譯驅(qū)動程序
3.1.4 加載驅(qū)動及查看輸出信息
3.2 應(yīng)用層與內(nèi)核的通信方法
3.2.1 訪問數(shù)據(jù)的I/O方式
3.2.2 讀寫驅(qū)動程序
3.2.3 發(fā)送I/O控制碼
3.2.4 內(nèi)存共享
3.3 同步技術(shù)
3.3.1 事件對象
3.3.2 信號燈對象
3.3.3 互斥體對象
3.3.4 定時(shí)器對象
3.3.5 自旋鎖
3.3.6 回調(diào)對象
3.3.7 原子操作
3.4 IRP處理
3.4.1 簡單的IRP流動圖
3.4.2 IRP的創(chuàng)建
3.4.3 IRP的發(fā)送
3.4.4 為IRP設(shè)置完成函數(shù)
3.4.5 IRP的完成
3.4.6 多種典型的 IRP處理示例
3.5 字符串操作
3.5.1 STRING、ANSI_STRING和UNICODE_STRING
3.5.2 初始化和銷毀
3.5.3 復(fù)制和添加
3.5.4 比較
3.5.5 轉(zhuǎn)換
3.6 內(nèi)存管理
3.6.1 分配系統(tǒng)空間內(nèi)存
3.6.2 運(yùn)行時(shí)庫管理函數(shù)
3.6.3 使用內(nèi)核棧
3.6.4 使用Lookaside快速鏈表
3.6.5 訪問用戶空間內(nèi)存
3.6.6 內(nèi)存區(qū)對象和視圖
3.6.7 MDL的使用
3.7 注冊表編程
3.7.1 注冊表對象管理函數(shù)
3.7.2 注冊表運(yùn)行時(shí)庫函數(shù)
3.7.3 注冊表調(diào)用過濾
3.8 文件編程
3.8.1 打開文件句柄
3.8.2 執(zhí)行相關(guān)文件操作
3.9 其他
3.9.1 本地系統(tǒng)服務(wù)函數(shù)的Nt和Zw版本
3.9.2 NTSTATUS返回值
3.9.3 雙向鏈表的使用
3.9.4 異常處理
第二部分 提升篇
第4章 進(jìn)程
4.1 進(jìn)程監(jiān)控實(shí)現(xiàn)原理
4.2 Windows 7系統(tǒng)下的進(jìn)程
監(jiān)控軟件實(shí)例
4.2.1 內(nèi)核模塊程序?qū)崿F(xiàn)
4.2.2 用戶模式程序?qū)崿F(xiàn)
4.3 安裝與使用
第5章 磁盤
5.1 存儲驅(qū)動體系結(jié)構(gòu)
5.2 設(shè)備樹示例
5.3 diskperf磁盤過濾驅(qū)動
5.3.1 diskperf介紹
5.3.2 diskperf的過濾框架
5.3.3 diskperf的PnP支持
5.3.4 diskperf的硬盤訪問監(jiān)控和性能數(shù)據(jù)捕獲
5.3.5 diskperf的電源支持
5.3.6 diskperf的安裝與測試
第6章 鍵盤
6.1 原理跟蹤
6.1.1 自下而上的過程
6.1.2 自上而下的過程
6.2 幾種常見的鍵盤記錄行為
6.2.1 應(yīng)用層的消息鉤子
6.2.2 鍵盤過濾驅(qū)動
6.2.3 鍵盤類驅(qū)動的分發(fā)函數(shù)Hook
6.2.4 DKOM技術(shù)
6.2.5 其他方法
6.3 反鍵盤記錄
6.3.1 實(shí)現(xiàn)原理
6.3.2 反鍵盤記錄示例
第7章 文件
7.1 原理跟蹤
7.1.1 Windows存儲棧
7.1.2 不涉及緩存的數(shù)據(jù)存儲
7.1.3 涉及緩存的數(shù)據(jù)存儲
7.2 簡單的文件隱藏
7.2.1 文件隱藏的原理
7.2.2 文件隱藏的實(shí)現(xiàn)
7.3 scanner掃描程序
7.3.1 過濾管理器與微過濾驅(qū)動概念
7.3.2 使用過濾管理模型的優(yōu)勢
7.3.3 微過濾驅(qū)動的加載和卸載
7.3.4 用戶模式和內(nèi)核模式的交互
7.3.5 scanner介紹
7.3.6 scanner驅(qū)動程序
7.3.7 scanner應(yīng)用層程序
7.3.8 scanner的安裝與使用
第8章 網(wǎng)絡(luò)
8.1 原理跟蹤
8.2 NDIS協(xié)議驅(qū)動
8.2.1 DriverEntry
8.2.2 綁定
8.2.3 數(shù)據(jù)發(fā)送
8.2.4 數(shù)據(jù)接收
8.2.5 數(shù)據(jù)流動總結(jié)
8.3 OPEN_BLOCK的展示
8.3.1 原理知識
8.3.2 相關(guān)代碼
第三部分 輔助篇
第9章 安全編碼
9.1 藍(lán)屏的概念
9.2 創(chuàng)建可靠的驅(qū)動程序
9.2.1 驗(yàn)證設(shè)備對象
9.2.2 使用安全字符串
9.2.3 驗(yàn)證對象句柄
9.2.4 支持多CPU
9.2.5 確認(rèn)驅(qū)動狀態(tài)
9.2.6 IRP安全檢查
9.3 使用驅(qū)動驗(yàn)證程序
9.3.1 驅(qū)動驗(yàn)證程序的測試選項(xiàng)
9.3.2 使用驅(qū)動驗(yàn)證程序
第10章 調(diào)試與逆向
10.1 靜態(tài)調(diào)試
10.1.1 靜態(tài)調(diào)試驅(qū)動程序
10.1.2 靜態(tài)調(diào)試應(yīng)用程序
10.2 動態(tài)調(diào)試
10.2.1 雙機(jī)調(diào)試的基本方法
10.2.2 WinDbg的常用命令
10.2.3 WinDbg的使用技巧
10.3 逆向與調(diào)試相結(jié)合
10.3.1 示例

章節(jié)摘錄

版權(quán)頁:   插圖:   第2章 內(nèi)核編程基礎(chǔ)知識 2.1 Windows主要系統(tǒng)組件 2.1.1 對象管理器 Windows對象管理器用來管理對象。文件、設(shè)備、同步機(jī)制、注冊表鍵值等在內(nèi)核中都使用對象來表示。每個(gè)對象都有一個(gè)對象頭(包含對象的一些信息,如名詞、類型和位置等)和一個(gè)對象體(包含與各種對象類型相關(guān)的數(shù)據(jù))。 Windows包含超過25種類型的對象,如文件、設(shè)備、線程、進(jìn)程、事件、互斥體、信號量、注冊表鍵、作業(yè)、內(nèi)存區(qū)、符號鏈接等。 對象管理器執(zhí)行如下的操作來管理對象: ?負(fù)責(zé)對象的創(chuàng)建和銷毀; ?維護(hù)一個(gè)對象名字空間以跟蹤對象信息; ?跟蹤分配給每一個(gè)進(jìn)程的資源; ?跟蹤具體對象的訪問權(quán)限; ?在對象的生命期內(nèi)管理對象,判斷對象何時(shí)可以被銷毀。 對象管理器導(dǎo)出的接口函數(shù)通常包括一個(gè)“Ob”前綴,如ObGetObjectSecurity函數(shù)。 2.1.2內(nèi)存管理器 Windows內(nèi)存管理器用來管理物理內(nèi)存,主要執(zhí)行如下的操作: ?管理內(nèi)存的分配和銷毀: ?支持內(nèi)存映射文件、共享內(nèi)存及寫時(shí)復(fù)制的實(shí)現(xiàn)。 內(nèi)存管理器導(dǎo)出的接口函數(shù)通常包括一個(gè)“Mm”前綴,如MmGetPhysicalAddress函數(shù)。 2.1.3進(jìn)程和線程管理器 進(jìn)程即當(dāng)前系統(tǒng)中正在運(yùn)行的軟件程序,每個(gè)進(jìn)程都有一個(gè)ID;線程則代表了程序的哪部分正在運(yùn)行,每個(gè)線程也有一個(gè)ID。 一個(gè)進(jìn)程可能包括多個(gè)線程,每個(gè)線程通過占用CPU時(shí)間獲得執(zhí)行。在單核處理器的機(jī)器上,雖然一個(gè)進(jìn)程可能擁有多個(gè)線程,但在某一時(shí)刻只有一個(gè)線程正在運(yùn)行,且每個(gè)線程只運(yùn)行很短的時(shí)間便切換到另一個(gè)線程繼續(xù)執(zhí)行,從而讓用戶產(chǎn)生錯覺,似乎同一時(shí)間有多個(gè)程序在執(zhí)行;在多核處理器機(jī)器上,在某一時(shí)刻可以有多個(gè)線程同時(shí)運(yùn)行。如果一個(gè)程序包含有多個(gè)線程,那么多個(gè)線程可以在不同的處理器上同時(shí)運(yùn)行。 Windows的進(jìn)程和線程管理器負(fù)責(zé)處理進(jìn)程中所有線程的執(zhí)行問題。無論機(jī)器是單核或是多核,在驅(qū)動編程中都必須仔細(xì)地處理所有的線程,無論這些線程按照什么順序獲得執(zhí)行,驅(qū)動程序都會穩(wěn)定地運(yùn)行。 進(jìn)程和線程管理器導(dǎo)出的接口函數(shù)通常包括一個(gè)“Ps”前綴,如PsCreateSystemThread函數(shù)。

編輯推薦

  《網(wǎng)絡(luò)安全入門與提高:Windows內(nèi)核安全編程從入門到實(shí)踐》適合大專院校計(jì)算機(jī)系的學(xué)生、Windows程序員、從事信息安全行業(yè)的工程師以及所有對Windows內(nèi)核安全編程感興趣的愛好者使用。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Windows內(nèi)核安全編程從入門到實(shí)踐 PDF格式下載


用戶評論 (總計(jì)34條)

 
 

  •   Windows內(nèi)核安全編程從入門到實(shí)Windows內(nèi)核安全編程從入門到實(shí)
  •   黑客防線出的書多是經(jīng)驗(yàn)之談,這本書也不例外,非常適合有經(jīng)驗(yàn)的讀者從別人的工程經(jīng)歷那里找到靈感,我推薦這本書
  •   這本書比較適合作為一本查詢類書籍
  •   很不錯的入門書籍,正在研讀中
  •   不是最基礎(chǔ)的書籍,不是最基礎(chǔ)的書籍。
  •   不過內(nèi)容編排略顯粗糙,但是質(zhì)量還可以。
  •   正在仔細(xì)拜讀~值得看幾遍的好書~
  •   這個(gè)書需要有一定的基礎(chǔ),當(dāng)然黑防寫的絕對值得一看
  •   好好好~~~~~~~
  •   黑防出的書,我都喜歡
  •   耐心!好好學(xué)習(xí)!
  •   支持黑防,支持黑防
  •   看了一部分,還行吧!
  •   windows內(nèi)核編程入門書籍,但是有些內(nèi)容并沒有詳細(xì)說明
  •   關(guān)鍵操作系統(tǒng)內(nèi)核的書太少,這本可以看看。
  •   黑客防線官網(wǎng)沒有源代碼下載啊
  •   這書...不好說,一般學(xué)安全的看用處不大,可能專業(yè)人員更需要
  •   剛看了一點(diǎn),代碼細(xì)節(jié)錯誤太多
  •   我只能說,很基礎(chǔ),且毫無特色!
  •   不錯國內(nèi)很少有這方面的資料
  •   和其他類的書差不多啊
  •   本以為能深入的講解更多的知識,結(jié)果失望了,期本都了解所講
  •   這本書太爛了,純粹是文字堆砌起來湊數(shù)。沒有層次感,沒有主次。還不如《寒江獨(dú)釣》呢
  •   與其說是書,不如說是文章集合,國內(nèi)寫驅(qū)動的書,也就張帆那本可看,不過內(nèi)容太老了,其實(shí)微軟自己那本就不錯,但是大師們是不會翻譯的,因?yàn)樗麄円簿涂啃畔艛噙^活,那不然那些大師怎么顯擺?目前為止還沒發(fā)現(xiàn)一本國人寫的或翻譯的好的驅(qū)動書籍。
  •   垃圾中的垃圾,沒法用言語形容了,這本書要是沒內(nèi)核基礎(chǔ)還真是看不明白,整個(gè)一個(gè)騙錢坑爹,給作者懶的,很多關(guān)鍵地方代碼連注釋都沒有,尼瑪這是讓新手去猜么?觀后感就是,除了推理能力,之外沒學(xué)到什么東西,對作者的評價(jià)就是,你丫回去多看幾年內(nèi)核吧,推薦作者一本書叫《windows內(nèi)核情景分析》這本書,看完之后,作者再從寫一邊,興許還有點(diǎn)看頭
  •   書不錯,快遞隔天到,沒有損壞??傮w滿意。
  •   看了一些,感覺還可以吧。。。我也是剛?cè)腴T。。。
  •   Windows內(nèi)核安全編程從入門到實(shí)踐,并不如想象的那樣,但也算不錯
  •   不太了解內(nèi)核編程所以買了看看
  •   介紹的還是不太全面。
  •   高:Windows內(nèi)核安全編程從入門到實(shí)
  •   賣回家收藏用
  •   入門很好
  •   書名很唬人

相關(guān)圖書

 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7