《WINDOWS應用程式捆綁核心編程》

《WINDOWS應用程式捆綁核心編程》

《WINDOWS應用程式捆綁核心編程》所介紹的內容與計算機防護技術相關。旨在為對通信、掛鈎和捆綁等方面編程感興趣的讀者提供參考,適合於中高級軟體開發人員使用,還可以作為計算機和信息類專業高年級學生學習的輔助讀物。

《WINDOWS應用程式捆綁核心編程》Windows應用程式捆綁核心編程
【名稱】《WINDOWS應用程式捆綁核心編程》
【定價】¥49.00
【作者】張正秋
【出 版 社】 清華大學出版社
【書 號】 730214088X
【出版日期】 2007 年1月
【開 本】 185×260
【頁 碼】 359
【版 次】1-1
【所屬分類】 計算機 > 作業系統 > Windows
合作專區 > 微軟技術圖書 > 微軟作業系統 > Windows

內容簡介

本書所介紹的內容與計算機防護技術相關。本書基於作者在計算機編程方面的多年實踐經驗,對當今國際上最新的應用程式間的通信、掛鈎、捆綁技術作了較為具體、系統的歸納和總結,並給出了大量的實例。本書中很多的技術還沒有公開,屬於底層熱門技術,所給出的很多程式代碼可以直接用於商業軟體的製作。
本書旨在為對通信、掛鈎和捆綁等方面編程感興趣的讀者提供參考,適合於中高級軟體開發人員使用,還可以作為計算機和信息類專業高年級學生學習的輔助讀物。

目錄介紹

第1章 再談計算機記憶體訪問1
1.1 引言1
1.2 記憶體管理概述1
1.2.1 虛擬記憶體1
1.2.2 CPU工作模式2
1.2.3 邏輯、線性和物理地址3
1.2.4 存儲器分頁管理機制3
1.2.5 線性地址到物理
地址的轉換4
1.3 虛擬記憶體訪問5
1.3.1 獲取系統信息5
1.3.2 在應用程式中使用
虛擬記憶體6
1.3.3 獲取虛存狀態7
1.3.4 確定虛擬地址空間的狀態8
1.3.5 改變記憶體頁面保護屬性9
1.3.6 進行一個進程的記憶體讀寫10
1.4 檔案的記憶體映射11
1.4.1 記憶體映射API函式11
1.4.2 用記憶體映射在多個應用程式
之間共享數據13
1.4.3 用記憶體映射檔案讀取
大型檔案18
1.5 深入認識指針的真正含義21
1.5.1 指針的真正本質21
1.5.2 用指針進行應用程式
之間的通信22
1.6 本章小結26
參考文獻27

第2章 再談PE檔案結構28
2.1 引言28
2.2 PE檔案格式概述28
2.2.1 PE檔案結構布局28
2.2.2 PE檔案記憶體映射30
2.2.3 Big-endian和
Little-endian31
2.2.4 3種不同的地址31
2.3 PE檔案結構32
2.3.1 MS-DOS頭部32
2.3.2 IMAGE_NT_HEADER
頭部33
2.3.3 IMAGE_SECTION_HEADER
頭部36
2.4 如何獲取PE檔案中的OEP36
2.4.1 通過檔案讀取OEP值37
2.4.2 通過記憶體映射
讀取OEP值38
2.4.3 讀取OEP值方法的測試39
2.5 PE檔案中的資源40
2.5.1 查找資源在檔案中的
起始位置40
2.5.2 確定PE檔案中的資源41
2.6 一個修改PE執行檔
的完整實例43
2.6.1 如何獲得MessageBoxA
代碼43
2.6.2 把MessageBoxA()代碼寫入
PE檔案的完整實例45
2.7 本章小結53
參考文獻53

第3章 進程之間通信概述
及初級技術54
3.1 引言54
3.2 進程通信概述55
3.2.1 Windows進程間標準
通信技術的發展55
3.2.2 應用程式與進程56
3.2.3 進程之間通信的類型56
3.3 使用自定義訊息通信57
3.3.1 通過自定義訊息實現進程
間通信的方法57
3.3.2 通過自定義訊息實現進程
間通信的實例58
3.4 使用WM_COPYDATA訊息通信60
3.4.1 通過WM_COPYDATA訊息
實現進程間通信的方法60
3.4.2 通過WM_COPYDATA訊息
實現進程間通信的實例61
3.5 使用記憶體讀寫函式和記憶體
映射檔案通信62
3.5.1 使用記憶體映射檔案
通信的方法62
3.5.2 使用記憶體讀寫函式實現進程
間通信的方法62
3.5.3 使用記憶體讀寫函式實現進程
間通信的實例63
3.6 使用動態程式庫通信64
3.6.1 DLL概述64
3.6.2 使用DLL通信的方法65
3.6.3 使用DLL通信的實例66
3.7 使用Windows剪貼簿通信67
3.7.1 使用剪貼簿實現進程間
通信的方法68
3.7.2 使用剪貼簿實現進程間
通信的實例68
3.8 使用動態數據交換(DDE)
通信70
3.8.1 使用DDE技術通信原理70
3.8.2 如何使用DDEML
編寫程式71
3.8.3 使用DDE通信的實例72
3.9 本章小結77
參考文獻77
第4章 使用訊息管道、郵槽和
套接字通信78
4.1 引言78
4.2 如何用命名管道進行進程間通信78
4.2.1 命名管道函式79
4.2.2 命名管道服務端與客戶端
之間通信的實現流程80
4.2.3 命名管道服務端與客戶端
之間通信的實例81
4.3 如何用郵槽進行進程間通信85
4.3.1 用郵槽進行進程間
通信的步驟85
4.3.2 郵槽伺服器端與客戶端之間
通信的實例86
4.4 如何用Windows套接字進行
進程間通信90
4.4.1 套接字分類90
4.4.2 流式套接字編程流程91
4.4.3 套接字調用基本函式92
4.4.4 Winsock程式設計95
4.4.5 一個通用套接字類96
4.4.6 套接字伺服器端與客戶端間
通信的實例101
4.5 本章小結106
參考文獻106

第5章 使用LPC和RPC通信107
5.1 引言107
5.2 接口定義語言(IDL)簡介107
5.3 使用本地過程調用(LPC)
通信108
5.3.1 使用LPC通信方法介紹108
5.3.2 使用LPC通信的實例110
5.4 使用遠程過程調用(RPC)
通信117
5.4.1 RPC運行機制117
5.4.2 RPC 綁定模式和屬性118
5.4.3 RPC傳輸(Transport)118
5.4.4 如何編寫RPC應用程式119
5.4.5 使用RPC通信的實例120
5.5 本章小結128
參考文獻128

第6章 使用組件模型通信129
6.1 引言129
6.2 COM/DCOM模型概述129
6.2.1 COM/DCOM的特點129
6.2.2 COM/DCOM組件
模型分類130
6.3 使用組件對象模型(COM/DCOM)
通信131
6.3.1 使用COM/DCOM通信
方法介紹131
6.3.2 基於DCOM實現遠程
會話的實例136
6.4 本章小結147
參考文獻147

第7章 進程的創建、控制和隱藏148
7.1 引言148
7.2 常見的幾種創建進程的方法148
7.2.1 使用WinExec() 函式148
7.2.2 使用ShellExecute()和
ShellExecuteEx()函式149
7.2.3 使用CreateProcess()函式151
7.2.4 使用OLE激活服務程式154
7.3 如何獲得進程句柄155
7.3.1 獲得一個進程的句柄155
7.3.2 提升進程許可權級別156
7.4 如何實現當前進程的枚舉158
7.4.1 通過系統快照實現當前
進程的枚舉158
7.4.2 通過psapi.dll提供的API函式
實現當前進程的枚舉160
7.4.3 通過wtsapi32.dll提供的API函
數實現當前進程的枚舉162
7.4.4 通過ntdll.dll提供的API函式
實現當前進程的枚舉163
7.5 如何終止進程164
7.5.1 如何終止本進程165
7.5.2 如何終止外部進程165
7.5.3 終止進程的實例165
7.6 如何隱藏進程(注入代碼)166
7.6.1 基本原理166
7.6.2 使用CreateRemoteThread()
隱藏DLL167
7.6.3 使用CreateRemoteThread()直
接注入API函式代碼173
7.6.4 使用Windows記憶體映射檔案
注入代碼174
7.6.5 使用特洛伊DLL
注入代碼174
7.6.6 使用註冊表注入DLL175
7.6.7 使用程式掛鈎的方法
注入代碼175
7.7 本章小結175
參考文獻176

第8章 應用程式的靜態掛鈎177
8.1 引言177
8.2 使用C/C++語言提取可
執行程式代碼177
8.2.1 在C/C++中使用
內聯彙編177
8.2.2 如何使用C/C++語言提取
可執行程式代碼179
8.3 如何對PE檔案加殼182
8.3.1 PE檔案的加殼方法182
8.3.2 向PE檔案中靜態注入
代碼的完整實例183
8.4 如何實現檔案脫殼191
8.5 本章小結192
參考文獻192

第9章 應用程式的動態掛鈎193
9.1 動態掛鈎概述193
9.2 使用Windows鉤子函式掛鈎194
9.2.1 Windows鉤子函式194
9.2.2 具體實例195
9.3 替換原API函式入口掛鈎198
9.3.1 如何替換原API函式入口
實現掛鈎198
9.3.2 通用的替換原API函式
入口掛鈎類199
9.3.3 使用JMP法編寫的
掛鈎實例201
9.4 替換IAT中的函式地址
進行掛鈎202
9.4.1 如何替換IAT中的函式
地址實現掛鈎202
9.4.2 通用的替換IAT中的
函式地址掛鈎類203
9.4.3 使用IAT法編寫的
掛鈎實例207
9.5 替換windows訊息處理函式
實現掛鈎208
9.5.1 Windows訊息處理函式
及其替換209
9.5.2 替換Windows訊息處理
函式實現掛鈎的實例210
9.6 鉤子DLL檔案的裝載214
9.7 本章小結216
參考文獻216

第10章 數據的編碼和解碼實例217
10.1 引言217
10.2 遊程編碼218
10.2.1 CX遊程壓縮方法218
10.2.2 BI_RLE8壓縮方法218
10.2.3 BI_RLE壓縮方法218
10.2.4 縮位壓縮方法
(Packbits)219
10.3 HUFFMAN編碼219
10.3.1 Huffman編碼原理219
10.3.2 Huffman編碼過程220
10.4 算術編碼221
10.4.1 算術編碼算法221
10.4.2 算術解碼算法222
10.5 LZW壓縮算法222
10.5.1 LZW壓縮算法原理223
10.5.2 用VC++實現LZW
壓縮算法225
10.6 Base64編碼236
10.6.1 Base64算法原理236
10.6.2 Base64算法的實現238
10.7 本章小結241
參考文獻242

第11章 執行檔的捆綁和分離243
11.1 引言243
11.2 捆綁方式分類243
11.2.1 結合式捆綁243
11.2.2 功能式捆綁245
11.3 檔案捆綁相關技術245
11.3.1 檔案捆綁工具及實現245
11.3.2 木馬程式與捆綁246
11.3.3 檔案自身操作
特點分析246
11.4 檔案屬性的獲取和偽裝248
11.4.1 檔案屬性的獲取
和更改248
11.4.2 一個獲取檔案基
本屬性類249
11.4.3 可執行程式自刪除
的實現251
11.4.4 如何獲取其他套用
程式的圖示254
11.4.5 如何改變視窗的圖示255
11.5 被捆綁檔案分離後的運行及
自分解檔案原理256
11.5.1 異步執行分解法
的實現256
11.5.2 同步執行分解法
的實現256
11.5.3 自動分解法的實現257
11.6 一個捆綁機(BindHider)軟體
的設計258
11.6.1 BindHider的設計258
11.6.2 BindHider的原始碼259
11.7 一種製作自分解檔案的方法263
11.7.1 母體程式的製作264
11.7.2 自分解檔案的製作266
11.8 本章小結267
參考文獻268

第12章 執行檔的分割和合併269
12.1 引言269
12.2 檔案分割方式269
12.2.1 考慮檔案格式的分割269
12.2.2 設定子檔案大小
的分割270
12.2.3 具有自合併功能
的檔案分割271
12.2.4 依賴檔案存放位置
的分割271
12.2.5 依賴磁碟大小的分割271
12.3 如何使用多執行緒272
12.3.1 執行緒的創建和終止272
12.3.2 執行緒的控制函式273
12.3.3 執行緒的通信273
12.4 檔案的簡單分割與合併274
12.4.1 檔案的簡單分割274
12.4.2 檔案的簡單合併275
12.5 用多執行緒進行檔案的分割
與合併的實例277
12.5.1 檔案的分割與合併
方案設計277
12.5.2 用多執行緒進行
檔案分割279
12.5.3 用多執行緒進行
檔案合併282
12.6 分割後檔案自動合併的
方案設計286
12.6.1 控制程式的製作286
12.6.2 用於檔案自合併的控制
程式的製作287
12.6.3 一種生成自合併檔案的
分割軟體製作289
12.7 本章小結292
參考文獻292

第13章 多執行緒下載和斷點續傳293
13.1 引言293
13.2 使用FTP進行多執行緒下載
和斷點續傳293
13.2.1 FTP協定簡介293
13.2.2 FTP的工作模式295
13.2.3 FTP協定多執行緒下載和
斷點續傳的實現295
13.2.4 實例306
13.3 使用HTTP進行多執行緒下載
和斷點續傳307
13.3.1 HTTP協定簡介307
13.3.2 HTTP協定的內部
操作過程308
13.3.3 HTTP協定多執行緒下載和
斷點續傳的實現311
13.3.4 實例321
13.4 BT下載簡介323
13.4.1 BT下載與一般下載
的區別323
13.4.2 BT種子324
13.4.3 BT的下載過程324
13.5 本章小結324
參考文獻325

第14章 帶附屬檔案的電子郵件
傳送剖析326
14.1 引言326
14.2 電子郵件的傳送方法326
14.3 用WinSock實現SMTP協定327
14.3.1 SMTP協定327
14.3.2 SMTP的實現328
14.4 郵件格式化335
14.4.1 郵件主體格式化335
14.4.2 郵件附屬檔案格式化338
14.4.3 郵件格式化341
14.5 傳送電子郵件實例346
14.6 本章小結347
參考文獻347

第15章 特洛伊木馬與反木馬技術348
15.1 引言348
15.2 常見的木馬種類349
15.3 木馬的載入方式350
15.4 木馬採用的偽裝方法351
15.5 Windows 2K/XP中無法刪除
檔案的常用解決辦法352
15.6 一種木馬病毒的檢測技術353
15.7 本章小結358
參考文獻359

相關詞條

相關搜尋

熱門詞條

聯絡我們