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

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

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

定 價(jià):¥139.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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