注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡操作系統(tǒng)Windows內(nèi)核安全與驅(qū)動開發(fā)

Windows內(nèi)核安全與驅(qū)動開發(fā)

Windows內(nèi)核安全與驅(qū)動開發(fā)

定 價:¥139.00

作 者: 譚文 等著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: WINDOWS 操作系統(tǒng)/系統(tǒng)開發(fā) 計算機/網(wǎng)絡

ISBN: 9787121262159 出版時間: 2015-06-01 包裝:
開本: 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書的前身是《天書夜讀——從匯編語言到Windows內(nèi)核編程》和《寒江獨釣——Windows內(nèi)核安全編程》。與Windows客戶端安全軟件開發(fā)相關的驅(qū)動程序開發(fā)是本書的主題。書中的程序使用環(huán)境從32位到64位,從Windows XP到Windows 8都有涉及,大部分程序不經(jīng)過修改即可在Windows 10上運行。同時本書也深入淺出地介紹了進行內(nèi)核安全編程所需要的操作系統(tǒng)、匯編等基礎知識。本書共分三篇,基礎篇囊括了驅(qū)動開發(fā)的基礎知識,降低了入門的難度;開發(fā)篇介紹了在實際工作中可能遇到的各種開發(fā)需求的技術(shù)實現(xiàn),包括:串口的過濾、鍵盤的過濾、磁盤的虛擬、磁盤的過濾、文件系統(tǒng)的過濾與監(jiān)控、文件系統(tǒng)透明加密、文件系統(tǒng)微過濾驅(qū)動、網(wǎng)絡傳輸層過濾、Windows過濾平臺、NDIS協(xié)議驅(qū)動、NDIS小端口驅(qū)動、NDIS中間層驅(qū)動、IA-32匯編基礎、IA-32體系中的內(nèi)存地址、處理器權(quán)限級別切換、IA-32體系結(jié)構(gòu)中的中斷和Windows內(nèi)核掛鉤;高級篇包含了匯編語言、操作系統(tǒng)原理、處理器體系架構(gòu)相關的內(nèi)容。本書是由長期從事這個行業(yè)的工程師自己寫的,所以處處以實用為準。對細節(jié)的考究主要體現(xiàn)在對實際問題的解決,而不是知識的詳盡程度上。

作者簡介

暫缺《Windows內(nèi)核安全與驅(qū)動開發(fā)》作者簡介

圖書目錄

基礎篇
第1章內(nèi)核上機指導
1.1下載和使用WDK
1.1.1下載并安裝WDK
1.1.2編寫第一個C文件
1.1.3編譯一個工程
1.2安裝與運行
1.2.1下載一個安裝工具
1.2.2運行與查看輸出信息
1.2.3在虛擬機中運行
1.3調(diào)試內(nèi)核模塊
1.3.1下載和安裝WinDbg
1.3.2設置WindowsXP調(diào)試執(zhí)行
1.3.3設置Vista調(diào)試執(zhí)行
1.3.4設置VMware的管道虛擬串口
1.3.5設置Windows內(nèi)核符號表
1.3.6實戰(zhàn)調(diào)試first
第2章內(nèi)核編程環(huán)境及其特殊性
2.1內(nèi)核編程的環(huán)境
2.1.1隔離的應用程序
2.1.2共享的內(nèi)核空間
2.1.3無處不在的內(nèi)核模塊
2.2數(shù)據(jù)類型
2.2.1基本數(shù)據(jù)類型
2.2.2返回狀態(tài)
2.2.3字符串
2.3重要的數(shù)據(jù)結(jié)構(gòu)
2.3.1驅(qū)動對象
2.3.2設備對象
2.3.3請求
2.4函數(shù)調(diào)用
2.4.1查閱幫助
2.4.2幫助中有的幾類函數(shù)
2.4.3幫助中沒有的函數(shù)
2.5Windows的驅(qū)動開發(fā)模型
2.6WDK編程中的特殊點
2.6.1內(nèi)核編程的主要調(diào)用源
2.6.2函數(shù)的多線程安全性
2.6.3代碼的中斷級
2.6.4WDK中出現(xiàn)的特殊代碼
第3章字符串與鏈表
3.1字符串操作
3.1.1使用字符串結(jié)構(gòu)
3.1.2字符串的初始化
3.1.3字符串的拷貝
3.1.4字符串的連接
3.1.5字符串的打印
3.2內(nèi)存與鏈表
3.2.1內(nèi)存的分配與釋放
3.2.2使用LIST_ENTRY
3.2.3使用長長整型數(shù)據(jù)
3.3自旋鎖
3.3.1使用自旋鎖
3.3.2在雙向鏈表中使用自旋鎖
3.3.3使用隊列自旋鎖提高性能
第4章文件、注冊表、線程
4.1文件操作
4.1.1使用OBJECT_ATTRIBUTES
4.1.2打開和關閉文件
4.1.3文件讀/寫操作
4.2注冊表操作
4.2.1注冊表鍵的打開
4.2.2注冊表鍵值的讀
4.2.3注冊表鍵值的寫
4.3時間與定時器
4.3.1獲得當前"滴答"數(shù)
4.3.2獲得當前系統(tǒng)時間
4.3.3使用定時器
4.4線程與事件
4.4.1使用系統(tǒng)線程
4.4.2在線程中睡眠
4.4.3使用同步事件
第5章應用與內(nèi)核通信
5.1內(nèi)核方面的編程
5.1.1生成控制設備
5.1.2控制設備的名字和符號鏈接
5.1.3控制設備的刪除
5.1.4分發(fā)函數(shù)
5.1.5請求的處理
5.2應用方面的編程
5.2.1基本的功能需求
5.2.2在應用程序中打開與關閉設備
5.2.3設備控制請求
5.2.4內(nèi)核中的對應處理
5.2.5結(jié)合測試的效果
5.3阻塞、等待與安全設計
5.3.1驅(qū)動主動通知應用
5.3.2通信接口的測試
5.3.3內(nèi)核中的緩沖區(qū)鏈表結(jié)構(gòu)
5.3.4輸入:內(nèi)核中的請求處理中的安全檢查
5.3.5輸出處理與卸載清理
第6章64位和32位內(nèi)核開發(fā)差異
6.164位系統(tǒng)新增機制
6.1.1WOW64子系統(tǒng)
6.1.2PatchGuard技術(shù)
6.1.364位驅(qū)動的編譯、安裝與運行
6.2編程差異
6.2.1匯編嵌入變化
6.2.2預處理與條件編譯
6.2.3數(shù)據(jù)結(jié)構(gòu)調(diào)整
開發(fā)篇
第7章串口的過濾
7.1過濾的概念
7.1.1設備綁定的內(nèi)核API之一
7.1.2設備綁定的內(nèi)核API之二
7.1.3生成過濾設備并綁定
7.1.4從名字獲得設備對象
7.1.5綁定所有串口
7.2獲得實際數(shù)據(jù)
7.2.1請求的區(qū)分
7.2.2請求的結(jié)局
7.2.3寫請求的數(shù)據(jù)
7.3完整的代碼
7.3.1完整的分發(fā)函數(shù)
7.3.2如何動態(tài)卸載
7.3.3代碼的編譯與運行
第8章鍵盤的過濾
8.1技術(shù)原理
8.1.1預備知識
8.1.2Windows中從擊鍵到內(nèi)核
8.1.3鍵盤硬件原理
8.2鍵盤過濾的框架
8.2.1找到所有的鍵盤設備
8.2.2應用設備擴展
8.2.3鍵盤過濾模塊的DriverEntry
8.2.4鍵盤過濾模塊的動態(tài)卸載
8.3鍵盤過濾的請求處理
8.3.1通常的處理
8.3.2PNP的處理
8.3.3讀的處理
8.3.4讀完成的處理
8.4從請求中打印出按鍵信息
8.4.1從緩沖區(qū)中獲得KEYBOARD_INPUT_DATA
8.4.2從KEYBOARD_INPUT_DATA中得到鍵
8.4.3從MakeCode到實際字符
8.5Hook分發(fā)函數(shù)
8.5.1獲得類驅(qū)動對象
8.5.2修改類驅(qū)動的分發(fā)函數(shù)指針
8.5.3類驅(qū)動之下的端口驅(qū)動
8.5.4端口驅(qū)動和類驅(qū)動之間的協(xié)作機制
8.5.5找到關鍵的回調(diào)函數(shù)的條件
8.5.6定義常數(shù)和數(shù)據(jù)結(jié)構(gòu)
8.5.7打開兩種鍵盤端口驅(qū)動尋找設備
8.5.8搜索在KbdClass類驅(qū)動中的地址
8.6Hook鍵盤中斷反過濾
8.6.1中斷:IRQ和INT
8.6.2如何修改IDT
8.6.3替換IDT中的跳轉(zhuǎn)地址
8.6.4QQ的PS/2反過濾措施
8.7直接用端口操作鍵盤
8.7.1讀取鍵盤數(shù)據(jù)和命令端口
8.7.2p2cUserFilter的最終實現(xiàn)
第9章磁盤的虛擬
9.1虛擬的磁盤
9.2一個具體的例子
9.3入口函數(shù)
9.3.1入口函數(shù)的定義
9.3.2Ramdisk驅(qū)動的入口函數(shù)
9.4EvtDriverDeviceAdd函數(shù)
9.4.1EvtDriverDeviceAdd的定義
9.4.2局部變量的聲明
9.4.3磁盤設備的創(chuàng)建
9.4.4如何處理發(fā)往設備的請求
9.4.5用戶配置的初始化
9.4.6鏈接給應用程序
9.4.7小結(jié)
9.5FAT12/16磁盤卷初始化
9.5.1磁盤卷結(jié)構(gòu)簡介
9.5.2Ramdisk對磁盤的初始化
9.6驅(qū)動中的請求處理
9.6.1請求的處理
9.6.2讀/寫請求
9.6.3DeviceIoControl請求
9.7Ramdisk的編譯和安裝
9.7.1編譯
9.7.2安裝
9.7.3對安裝的深入探究
第10章磁盤的過濾
10.1磁盤過濾驅(qū)動的概念
10.1.1設備過濾和類過濾
10.1.2磁盤設備和磁盤卷設備過濾驅(qū)動
10.1.3注冊表和磁盤卷設備過濾驅(qū)動
10.2具有還原功能的磁盤卷過濾驅(qū)動
10.2.1簡介
10.2.2基本思想
10.3驅(qū)動分析
10.3.1DriverEntry函數(shù)
10.3.2AddDevice函數(shù)
10.3.3PnP請求的處理
10.3.4Power請求的處理
10.3.5DeviceIoControl請求的處理
10.3.6bitmap的作用和分析
10.3.7boot驅(qū)動完成回調(diào)函數(shù)和稀疏文件
10.3.8讀/寫請求的處理
第11章文件系統(tǒng)的過濾與監(jiān)控
11.1文件系統(tǒng)的設備對象
11.1.1控制設備與卷設備
11.1.2生成自己的一個控制設備
11.2文件系統(tǒng)的分發(fā)函數(shù)
11.2.1普通的分發(fā)函數(shù)
11.2.2文件過濾的快速IO分發(fā)函數(shù)
11.2.3快速IO分發(fā)函數(shù)的一個實現(xiàn)
11.2.4快速IO分發(fā)函數(shù)逐個簡介
11.3設備的綁定前期工作
11.3.1動態(tài)地選擇綁定函數(shù)
11.3.2注冊文件系統(tǒng)變動回調(diào)
11.3.3文件系統(tǒng)變動回調(diào)的一個實現(xiàn)
11.3.4文件系統(tǒng)識別器
11.4文件系統(tǒng)控制設備的綁定
11.4.1生成文件系統(tǒng)控制設備的過濾設備
11.4.2綁定文件系統(tǒng)控制設備
11.4.3利用文件系統(tǒng)控制請求
11.5文件系統(tǒng)卷設備的綁定
11.5.1從IRP中獲得VPB指針
11.5.2設置完成函數(shù)并等待IRP完成
11.5.3卷掛載IRP完成后的工作
11.5.4完成函數(shù)的相應實現(xiàn)
11.5.5綁定卷的實現(xiàn)
11.6讀/寫操作的過濾
11.6.1設置一個讀處理函數(shù)
11.6.2設備對象的區(qū)分處理
11.6.3解析讀請求中的文件信息
11.6.4讀請求的完成
11.7其他操作的過濾
11.7.1文件對象的生存周期
11.7.2文件的打開與關閉
11.7.3文件的刪除
11.8路徑過濾的實現(xiàn)
11.8.1取得文件路徑的三種情況
11.8.2打開成功后獲取路徑
11.8.3在其他時刻獲得文件路徑
11.8.4在打開請求完成之前獲得路徑名
11.8.5把短名轉(zhuǎn)換為長名
11.9把sfilter編譯成靜態(tài)庫
11.9.1如何方便地使用sfilter
11.9.2初始化回調(diào)、卸載回調(diào)和綁定回調(diào)
11.9.3綁定與回調(diào)
11.9.4插入請求回調(diào)
11.9.5如何利用sfilter.lib
第12章文件系統(tǒng)透明加密
12.1文件透明加密的應用
12.1.1防止企業(yè)信息泄密
12.1.2文件透明加密防止企業(yè)信息泄密
12.1.3文件透明加密軟件的例子
12.2區(qū)分進程
12.2.1機密進程與普通進程
12.2.2找到進程名字的位置
12.2.3得到當前進程的名字
12.3內(nèi)存映射與文件緩沖
12.3.1記事本的內(nèi)存映射文件
12.3.2Windows的文件緩沖
12.3.3文件緩沖:明文還是密文的選擇
12.3.4清除文件緩沖
12.4加密標識
12.4.1保存在文件外、文件頭還是文件尾
12.4.2隱藏文件頭的大小
12.4.3隱藏文件頭的設置偏移
12.4.4隱藏文件頭的讀/寫偏移
12.5文件加密表
12.5.1何時進行加密操作
12.5.2文件控制塊與文件對象
12.5.3文件加密表的數(shù)據(jù)結(jié)構(gòu)與初始化
12.5.4文件加密表的操作:查詢
12.5.5文件加密表的操作:添加
12.5.6文件加密表的操作:刪除
12.6文件打開處理
12.6.1直接發(fā)送IRP進行查詢與設置操作
12.6.2直接發(fā)送IRP進行讀/寫操作
12.6.3文件的非重入打開
12.6.4文件的打開預處理
12.7讀/寫加密和解密
12.7.1在讀取時進行解密
12.7.2分配與釋放MDL
12.7.3寫請求加密
12.8crypt_file的組裝
12.8.1crypt_file的初始化
12.8.2crypt_file的IRP預處理
12.8.3crypt_file的IRP后處理
第13章文件系統(tǒng)微過濾驅(qū)動
13.1文件系統(tǒng)微過濾驅(qū)動簡介
13.1.1文件系統(tǒng)微過濾驅(qū)動的由來
13.1.2Minifilter的優(yōu)點與不足
13.2Minifilter的編程框架
13.2.1微文件系統(tǒng)過濾的注冊
13.2.2微過濾器的數(shù)據(jù)結(jié)構(gòu)
13.2.3卸載回調(diào)函數(shù)
13.2.4預操作回調(diào)函數(shù)
13.2.5后操作回調(diào)函數(shù)
13.2.6其他回調(diào)函數(shù)
13.3Minifilter如何與應用程序通信
13.3.1建立通信端口的方法
13.3.2在用戶態(tài)通過DLL使用通信端口的范例
13.4Minifilter的安裝與加載
13.4.1安裝Minifilter的INF文件
13.4.2啟動安裝完成的Minifilter
第14章網(wǎng)絡傳輸層過濾
14.1TDI概要
14.1.1為何選擇TDI
14.1.2從socket到Windows內(nèi)核
14.1.3TDI過濾的代碼例子
14.2TDI的過濾框架
14.2.1綁定TDI的設備
14.2.2唯一的分發(fā)函數(shù)
14.2.3過濾框架的實現(xiàn)
14.2.4主要過濾的請求類型
14.3生成請求:獲取地址
14.3.1過濾生成請求
14.3.2準備解析IP地址與端口
14.3.3獲取生成的IP地址和端口
14.3.4連接終端的生成與相關信息的保存
14.4控制請求
14.4.1TDI_ASSOCIATE_ADDRESS的過濾
14.4.2TDI_CONNECT的過濾
14.4.3其他的次功能號
14.4.4設置事件的過濾
14.4.5TDI_EVENT_CONNECT類型的設置事件的過濾
14.4.6直接獲取發(fā)送函數(shù)的過濾
14.4.7清理請求的過濾
14.5本書例子tdifw.lib的應用
14.5.1tdifw庫的回調(diào)接口
14.5.2tdifw庫的使用例子
第15章Windows過濾平臺
15.1WFP簡介
15.2WFP框架
15.3基本對象模型
15.3.1過濾引擎
15.3.2墊片
15.3.3呼出接口
15.3.4分層
15.3.5子層
15.3.6過濾器
15.3.7呼出接口回調(diào)函數(shù)
15.4WFP操作
15.4.1呼出接口的注冊與卸載
15.4.2呼出接口的添加與移除
15.4.3子層的添加與移除
15.4.4過濾器的添加
15.5WFP過濾例子
第16章NDIS協(xié)議驅(qū)動
16.1以太網(wǎng)包和網(wǎng)絡驅(qū)動架構(gòu)
16.1.1以太網(wǎng)包和協(xié)議驅(qū)動
16.1.2NDIS網(wǎng)絡驅(qū)動
16.2協(xié)議驅(qū)動的DriverEntry
16.2.1生成控制設備
16.2.2注冊協(xié)議
16.3協(xié)議與網(wǎng)卡的綁定
16.3.1協(xié)議與網(wǎng)卡的綁定概念
16.3.2綁定回調(diào)處理的實現(xiàn)
16.3.3協(xié)議綁定網(wǎng)卡的API
16.3.4解決綁定競爭問題
16.3.5分配接收和發(fā)送的包池與緩沖池
16.3.6OID請求的發(fā)送和請求完成回調(diào)
16.3.7ndisprotCreateBinding的最終實現(xiàn)
16.4綁定的解除
16.4.1解除綁定使用的API
16.4.2ndisprotShutdownBinding的實現(xiàn)
16.5在用戶態(tài)操作協(xié)議驅(qū)動
16.5.1協(xié)議的收包與發(fā)包
16.5.2在用戶態(tài)編程打開設備
16.5.3用DeviceIoControl發(fā)送控制請求
16.5.4用WriteFile發(fā)送數(shù)據(jù)包
16.5.5用ReadFile發(fā)送數(shù)據(jù)包
16.6在內(nèi)核態(tài)完成功能的實現(xiàn)
16.6.1請求的分發(fā)與實現(xiàn)
16.6.2等待設備綁定完成與指定設備名
16.6.3指派設備的完成
16.6.4處理讀請求
16.6.5處理寫請求
16.7協(xié)議驅(qū)動的接收回調(diào)
16.7.1和接收包有關的回調(diào)函數(shù)
16.7.2ReceiveHandler的實現(xiàn)
16.7.3TransferDataCompleteHandler的實現(xiàn)
16.7.4ReceivePacketHandler的實現(xiàn)
16.7.5接收數(shù)據(jù)包的入隊
16.7.6接收數(shù)據(jù)包的出隊和讀請求的完成
第17章NDIS小端口驅(qū)動
17.1小端口驅(qū)動的應用與概述
17.1.1小端口驅(qū)動的應用
17.1.2小端口驅(qū)動示例
17.1.3小端口驅(qū)動的運作與編程概述
17.2小端口驅(qū)動的初始化
17.2.1小端口驅(qū)動的DriverEntry
17.2.2小端口驅(qū)動的適配器結(jié)構(gòu)
17.2.3配置信息的讀取
17.2.4設置小端口適配器上下文
17.2.5MPInitialize的實現(xiàn)
17.2.6MPHalt的實現(xiàn)
17.3打開ndisprot設備
17.3.1IO目標
17.3.2給IO目標發(fā)送DeviceIoControl請求
17.3.3打開ndisprot接口并完成配置設備
17.4使用ndisprot發(fā)送包
17.4.1小端口驅(qū)動的發(fā)包接口
17.4.2發(fā)送控制塊(TCB)
17.4.3遍歷包組并填寫TCB
17.4.4寫請求的構(gòu)建與發(fā)送
17.5使用ndisprot接收包
17.5.1提交數(shù)據(jù)包的內(nèi)核API
17.5.2從接收控制塊(RCB)提交包
17.5.3對ndisprot讀請求的完成函數(shù)
17.5.4讀請求的發(fā)送
17.5.5用于讀包的WDF工作任務
17.5.6ndisedge讀工作任務的生成與入列
17.6其他的特征回調(diào)函數(shù)的實現(xiàn)
17.6.1包的歸還
17.6.2OID查詢處理的直接完成
17.6.3OID設置處理
第18章NDIS中間層驅(qū)動
18.1NDIS中間層驅(qū)動概述
18.1.1Windows網(wǎng)絡架構(gòu)總結(jié)
18.1.2NDIS中間層驅(qū)動簡介
18.1.3NDIS中間層驅(qū)動的應用
18.1.4NDIS包描述符結(jié)構(gòu)深究
18.2中間層驅(qū)動的入口與綁定
18.2.1中間層驅(qū)動的入口函數(shù)
18.2.2動態(tài)綁定NIC設備
18.2.3小端口初始化(MpInitialize)
18.3中間層驅(qū)動發(fā)送數(shù)據(jù)包
18.3.1發(fā)送數(shù)據(jù)包原理
18.3.2包描述符"重利用"
18.3.3包描述符"重申請"
18.3.4發(fā)送數(shù)據(jù)包的異步完成
18.4中間層驅(qū)動接收數(shù)據(jù)包
18.4.1接收數(shù)據(jù)包概述
18.4.2用PtReceive接收數(shù)據(jù)包
18.4.3用PtReceivePacket接收
18.4.4對包進行過濾
18.5中間層驅(qū)動程序查詢和設置
18.5.1查詢請求的處理
18.5.2設置請求的處理
18.6NDIS句柄
18.6.1不可見的結(jié)構(gòu)指針
18.6.2常見的NDIS句柄
18.6.3NDIS句柄誤用問題
18.6.4一種解決方案
18.7生成普通控制設備
18.7.1在中間層驅(qū)動中添加普通設備
18.7.2使用傳統(tǒng)方法來生成控制設備
第19章IA-32匯編基礎
19.1x86內(nèi)存、寄存器與堆棧
19.1.1_asm關鍵字
19.1.2x86中的mov指令
19.1.3x86中的寄存器與內(nèi)存
19.1.4賦值語句的實現(xiàn)
19.2x86中函數(shù)的實現(xiàn)
19.2.1一個函數(shù)的例子
19.2.2堆棧的介紹
19.2.3寄存器的備份和恢復
19.2.4內(nèi)部變量與返回值
19.3x86中函數(shù)的調(diào)用與返回
19.3.1函數(shù)的調(diào)用指令call
19.3.2通過堆棧傳遞參數(shù)
19.3.3從函數(shù)返回
19.3.4三種常見的調(diào)用協(xié)議
19.4從32位匯編到64位匯編
19.4.1Intel64與IA-32體系架構(gòu)簡介
19.4.264位指令與32位指令
19.4.3通用寄存器
19.564位下的函數(shù)實現(xiàn)
19.5.1函數(shù)概覽
19.5.232位參數(shù)的傳遞
19.5.364位參數(shù)與返回值
19.5.4棧空間的開辟與恢復
第20章IA-32體系中的內(nèi)存地址
20.1內(nèi)存的虛擬地址
20.1.1C語言中的內(nèi)存地址
20.1.2虛擬地址的構(gòu)成
20.1.3段的選擇
20.2全局描述符表和段描述符
20.2.1全局描述符表
20.2.2段類型
20.2.3段寄存器與段選擇子
20.2.464位模式下的段
20.3分段編程實踐
20.3.1系統(tǒng)表寄存器的結(jié)構(gòu)
20.3.2在匯編語言中獲取全局描述表的位置
20.3.3調(diào)試范例:sgdt指令的錯誤使用
20.3.4在64位下獲得全局描述符表
20.4線性地址基礎
20.4.1分頁控制機制
20.4.2線性地址的轉(zhuǎn)換
20.4.3混合頁面大小
20.4.432位物理地址的頁目錄和頁表項
20.5各種特殊分頁方式
20.5.1PAE分頁方式
20.5.2PSE-36分頁機制
20.5.3IA-32e模式下的線性地址
20.6分頁編程實踐
20.6.1頁目錄和頁目錄指針表的獲取
20.6.2頁表的獲取
20.6.3線性地址的結(jié)構(gòu)
第21章處理器權(quán)限級別切換
21.1Ring0和Ring3權(quán)限級別
21.2保護模式下的分頁內(nèi)存保護
21.3分頁內(nèi)存不可執(zhí)行保護
21.3.1不可執(zhí)行保護原理
21.3.2不可執(zhí)行保護的漏洞
21.3.3上機實踐
21.4權(quán)限級別的切換
21.4.1調(diào)用門及其漏洞
21.4.2sysenter和sysexit指令
21.4.3上機實踐
第22章IA-32體系結(jié)構(gòu)中的中斷
22.1中斷基礎知識
22.1.1中斷描述符表
22.1.2中斷處理過程
22.1.364位模式下的中斷處理機制
22.1.4多核下的中斷
22.2Windows中斷機制
22.3中斷編程實踐
22.3.1IDTHook
22.3.2巧用IDTHook實現(xiàn)安全防護
第23章Windows內(nèi)核掛鉤
23.1系統(tǒng)服務描述符表掛鉤
23.1.1系統(tǒng)服務描述符表(SSDT)
23.1.2系統(tǒng)服務描述符表掛鉤的意圖
23.1.3尋找要掛鉤的函數(shù)的地址
23.1.4函數(shù)被掛鉤的過程
23.1.5具體實現(xiàn)的代碼
23.2函數(shù)導出表掛鉤
23.2.1內(nèi)核函數(shù)的種類
23.2.2掛鉤IoCallDriver
23.2.3對跳轉(zhuǎn)地址進行修改
23.3Windows7系統(tǒng)下IofCallDriver的跟蹤
23.4Windows7系統(tǒng)下內(nèi)聯(lián)掛鉤
23.4.1寫入跳轉(zhuǎn)指令并拷貝代碼
23.4.2實現(xiàn)中繼函數(shù)
高級篇
第24章Windows通知與回調(diào)
24.1Windows的事件通知與回調(diào)
24.2常用的事件通知
24.2.1創(chuàng)建進程通知
24.2.2創(chuàng)建線程通知
24.2.3加載模塊通知
24.2.4注冊表操作通知
24.3Windows回調(diào)機制
24.3.1回調(diào)對象
24.3.2回調(diào)對象的創(chuàng)建
24.3.3回調(diào)對象的注冊
24.3.4回調(diào)的通告
24.4安全的死角,回調(diào)的應用
第25章保護進程
25.1內(nèi)核對象簡介
25.2內(nèi)核對象的結(jié)構(gòu)
25.3保護內(nèi)核對象
25.3.1處理對象的打開
25.3.2處理句柄的復制
25.3.3處理句柄的繼承
25.4進程的保護
25.4.1保護原理
25.4.2Vista以后的進程對象保護
25.4.3進程的其他保護
附錄A如何使用本書的源碼光盤
附錄B練習題  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號