入手篇 熟悉匯編
第1章 匯編指令與C語言
1.1 上機建立第一個工程
1.1.1 用Visual Studio創建工程
1.1.2 用Visual Studio查看匯編代碼
1.2 簡要復習常用的匯編指令
1.2.1 堆棧相關指令
1.2.2 數據傳送指令
1.2.3 跳轉與比較指令
1.3 C函數的參數傳遞過程
第2章 C語言的流程和處理
2.1 C語言的循環反匯編
2.1.1 for循環
2.1.2 do循環
2.1.3 while循環
2.2 C語言判斷與分支的反匯編
2.2.1 if-else判斷分支
2.2.2 switch-case判斷分支
2.3 C語言的數組與結構
2.4 C語言的共用體和枚舉類型
第3章 練習反匯編C語言程序
3.1 算法的反匯編
3.1.1 算法反匯編代碼分析
3.1.2 算法反匯編閱讀技巧
3.2 發行版的反匯編
3.3 匯編反C語言練習
基礎篇 內核編程
第4章 內核字符串與內存
4.1 字符串的處理
4.1.1 使用字符串結構
4.1.2 字符串的初始化
4.1.3 字符串的拷貝
4.1.4 字符串的連接
4.1.5 字符串的打印
4.2 內存與鏈錶
4.2.1 內存的分配與釋放
4.2.2 使用LIST_ENTRY
4.2.3 使用長長整型數據
4.2.4 使用自選鎖
第5章 文件與注冊錶操作
5.1 文件操作
5.1.1 使用OBJECT_ATTRIBUTES
5.1.2 打開和關閉文件
5.1.3 文件讀/寫操作
5.2 注冊錶操作
5.2.1 注冊錶鍵的打開
5.2.2 注冊錶值的讀
5.2.3 注冊錶值的寫
第6章 時間與綫程
6.1 時間與定時器
6.1.1 獲得當前滴答數
6.1.2 獲得當前係統時間
6.1.3 使用定時器
6.2 綫程與事件
6.2.1 使用係統綫程
6.2.2 在綫程中睡眠
6.2.3 使用同步事件
第7章 驅動、設備與請求
7.1 驅動與設備
7.1.1 驅動入口與驅動對象
7.1.2 分發函數和卸載函數
7.1.3 設備與符號鏈接
7.1.4 設備的安全創建
7.1.5 設備與符號鏈接的用戶相關性
7.2 請求處理
7.2.1 IRP與IO_STACK_LOCATION
7.2.2 打開與關閉請求的處理
7.2.3 應用層信息傳入
7.2.4 驅動層信息傳齣
探索篇 研究內核
第8章 進入Windows內核
8.1 開始Windows內核編程
8.1.1 內核編程的環境準備
8.1.2 用C語言寫一個內核程序
8.2 學習用WinDbg進行調試
8.2.1 軟件的準備
8.2.2 設置Windows XP調試執行
8.2.3 設置VMWare虛擬機調試
8.2.4 設置被調試機為Vista的情況
8.2.5 設置Windows內核符號錶
8.2.6 調試例子diskperf
8.3 認識內核代碼函數調用方式
8.4 嘗試反寫C內核代碼
8.5 如何在代碼中尋找需要的信息
第9章 用C++編寫的內核程序
9.1 用C++開發內核程序
9.1.1 建立一個C++的內核工程
9.1.2 使用C接口標準聲明
9.1.3 使用類靜態成員函數
9.1.4 實現new操作符
9.2 開始閱讀一個反匯編的類
9.2.1 new操作符的實現
9.2.2 構造函數的實現
9.3 瞭解更多的C++特性
第10章 繼續探索Windows內核
10.1 探索Windows已有內核調用
10.2 自己實現XP的新調用
10.2.1 對照調試結果和數據結構
10.2.2 寫齣C語言的對應代碼
10.3 沒有符號錶的情況
10.4 64位操作係統下的情況
10.4.1 分析64位操作係統的調用
10.4.2 深入瞭解64位內核調用參數傳遞
深入篇 修改內核
第11章 機器碼與反匯編引擎
11.1 瞭解Intel的機器碼
11.1.1 可執行指令與數據
11.1.2 單條指令的組成
11.1.3 MOD-REG-R/M的組成
11.1.4 其他的組成部分
11.2 反匯編引擎XDE32基本數據結構
11.3 反匯編引擎XDE32具體實現
第12章 CPU權限級與分頁機製
12.1 Ring0和Ring3權限級
12.2 保護模式下的分頁內存保護
12.3 分頁內存不可執行保護
12.3.1 不可執行保護原理
12.3.2 不可執行保護的漏洞
12.4 權限級彆的切換
12.4.1 調用門及其漏洞
12.4.2 sysenter和sysexit指令
第13章 開發Windows內核Hook
13.1 XP下Hook係統調用IoCallDriver
13.2 Vista下IofCallDriver的跟蹤
13.3 Vista下inline hook
13.3.1 寫入跳轉指令並拷貝代碼
13.3.2 實現中繼函數
實戰篇 實際開發
第14章 反病毒、木馬實例開發
14.1 反病毒、木馬的設想
14.2 開發內核驅動
14.2.1 在內核中檢查可執行文件
14.2.2 在內核中生成設備接口
14.2.3 在內核中等待監控進程的響應
14.3 開發監控進程
14.4 本軟件進一步展望
第15章 Rootkit與HIPS
15.1 Rootkit為何很重要
15.2 Rootkit如何逃過檢測
15.3 HIPS如何檢測Rootkit
第16章 手寫指令保護代碼
16.1 混淆字符串
16.2 隱藏內核函數
16.3 混淆流程與數據操作
16.3.1 混淆函數齣口
16.3.2 插入有意義的花指令
第17章 用VMProtect保護代碼
17.1 安裝VMProtect
17.2 使用VMProtect
17.3 查看VMProtect效果
參考文獻
· · · · · · (
收起)
評分
☆☆☆☆☆
作者功底很深啊,讲了一些windows 汇编的知识 和windows 内核驱动相关的一些东西,本人对linux 内核熟悉一些 ,但是汇编一直皮毛的状态,通过该书对汇编不再恐惧了!windows的内核驱动基本和linux 有很大的相同啊!有时间再细读做一下笔记!
評分
☆☆☆☆☆
《天书夜读:从汇编语言到Windows内核编程》出版不久,收到很多读者的好评,不仅从内容上,对作者的评价也是好上加好。 《寒江独钓——Windows内核安全编程》是谭文老师的又一杰作,个人觉得《寒江独钓——Windows内核安全编程》比《天书夜读:从汇编语言到Windows内核编程》更...
評分
☆☆☆☆☆
本书作者在我的网友列表里好几年了,缘起是有朋友找我做文档安全系统,以驱动程序的方式来完成,在网上找资料的时候看到了署名楚狂人的作者写的一些技术文章,于是加了好友,但一直没怎么交流,这事儿过去好几年了,这书出来了.我还是站在书店很认真地翻了一回,感受如下: 首先,选题还...
評分
☆☆☆☆☆
1. 调试代码的时候,经常看到一大串的这个: 烫烫烫烫烫烫烫烫烫烫烫烫? 什么意思?这一大串的十六进制就是0xCCCCCCCCCC,是windows的int 3调试中断,在Debug时,Windows将局部内存初始化为int 3命令,这样发生非法调用时就会进入中断。 2. 调试内核 windbg+Vmware
評分
☆☆☆☆☆
1. 调试代码的时候,经常看到一大串的这个: 烫烫烫烫烫烫烫烫烫烫烫烫? 什么意思?这一大串的十六进制就是0xCCCCCCCCCC,是windows的int 3调试中断,在Debug时,Windows将局部内存初始化为int 3命令,这样发生非法调用时就会进入中断。 2. 调试内核 windbg+Vmware