出版時間:2006-12 出版社:清華大學(xué)出版社 作者:張正秋
Tag標(biāo)簽:無
內(nèi)容概要
《Windows應(yīng)用程序捆綁核心編程》所介紹的內(nèi)容與計算機防護技術(shù)相關(guān)。《Windows應(yīng)用程序捆綁核心編程》基于作者在計算機編程方面的多年實踐經(jīng)驗,對當(dāng)今國際上最新的應(yīng)用程序間的通信、掛鉤、捆綁技術(shù)作了較為具體、系統(tǒng)的歸納和總結(jié),并給出了大量的實例?!禬indows應(yīng)用程序捆綁核心編程》中很多的技術(shù)還沒有公開,屬于底層熱門技術(shù),所給出的很多程序代碼可以直接用于商業(yè)軟件的制作。
作者簡介
張正秋 現(xiàn)在中國氣象科學(xué)研究院工作,獲北京大學(xué)物理學(xué)院理學(xué)博士學(xué)位,長期從事數(shù)值模式研究和計算機軟件開發(fā)工作。對應(yīng)用程序間的通信、掛鉤和捆綁技術(shù)的編程有較豐富的實踐經(jīng)驗。
書籍目錄
第1章 再談計算機內(nèi)存訪問 11.1 引言 11.2 內(nèi)存管理概述 11.2.1 虛擬內(nèi)存 11.2.2 CPU工作模式 21.2.3 邏輯、線性和物理地址 31.2.4 存儲器分頁管理機制 31.2.5 線性地址到物理地址的轉(zhuǎn)換 41.3 虛擬內(nèi)存訪問 51.3.1 獲取系統(tǒng)信息 51.3.2 在應(yīng)用程序中使用虛擬內(nèi)存 61.3.3 獲取虛存狀態(tài) 71.3.4 確定虛擬地址空間的狀態(tài) 81.3.5 改變內(nèi)存頁面保護屬性 91.3.6 進行一個進程的內(nèi)存讀寫 101.4 文件的內(nèi)存映射 111.4.1 內(nèi)存映射API函數(shù) 111.4.2 用內(nèi)存映射在多個應(yīng)用程序之間共享數(shù)據(jù) 131.4.3 用內(nèi)存映射文件讀取大型文件 181.5 深入認識指針的真正含義 211.5.1 指針的真正本質(zhì) 211.5.2 用指針進行應(yīng)用程序之間的通信 221.6 本章小結(jié) 26參考文獻 27第2章 再談PE文件結(jié)構(gòu) 282.1 引言 282.2 PE文件格式概述 282.2.1 PE文件結(jié)構(gòu)布局 282.2.2 PE文件內(nèi)存映射 302.2.3 Big-endian和Little-endian 312.2.4 3種不同的地址 312.3 PE文件結(jié)構(gòu) 322.3.1 MS-DOS頭部 322.3.2 IMAGE_NT_HEADER頭部 332.3.3 IMAGE_SECTION_HEADER頭部 362.4 如何獲取PE文件中的OEP 362.4.1 通過文件讀取OEP值 372.4.2 通過內(nèi)存映射讀取OEP值 382.4.3 讀取OEP值方法的測試 392.5 PE文件中的資源 402.5.1 查找資源在文件中的起始位置 402.5.2 確定PE文件中的資源 412.6 一個修改PE可執(zhí)行文件的完整實例 432.6.1 如何獲得MessageBoxA代碼 432.6.2 把MessageBoxA()代碼寫入PE文件的完整實例 452.7 本章小結(jié) 53參考文獻 53第3章 進程之間通信概述及初級技術(shù) 543.1 引言 543.2 進程通信概述 553.2.1 Windows進程間標(biāo)準(zhǔn)通信技術(shù)的發(fā)展 553.2.2 應(yīng)用程序與進程 563.2.3 進程之間通信的類型 563.3 使用自定義消息通信 573.3.1 通過自定義消息實現(xiàn)進程間通信的方法 573.3.2 通過自定義消息實現(xiàn)進程間通信的實例 583.4 使用WM_COPYDATA消息通信 603.4.1 通過WM_COPYDATA消息實現(xiàn)進程間通信的方法 603.4.2 通過WM_COPYDATA消息實現(xiàn)進程間通信的實例 613.5 使用內(nèi)存讀寫函數(shù)和內(nèi)存映射文件通信 623.5.1 使用內(nèi)存映射文件通信的方法 623.5.2 使用內(nèi)存讀寫函數(shù)實現(xiàn)進程間通信的方法 623.5.3 使用內(nèi)存讀寫函數(shù)實現(xiàn)進程間通信的實例 633.6 使用動態(tài)鏈接庫通信 643.6.1 DLL概述 643.6.2 使用DLL通信的方法 653.6.3 使用DLL通信的實例 663.7 使用Windows剪貼板通信 673.7.1 使用剪貼板實現(xiàn)進程間通信的方法 683.7.2 使用剪貼板實現(xiàn)進程間通信的實例 683.8 使用動態(tài)數(shù)據(jù)交換(DDE)通信 703.8.1 使用DDE技術(shù)通信原理 703.8.2 如何使用DDEML編寫程序 713.8.3 使用DDE通信的實例 723.9 本章小結(jié) 77參考文獻 77第4章 使用消息管道、郵槽和套接字通信 784.1 引言 784.2 如何用命名管道進行進程間通信 784.2.1 命名管道函數(shù) 794.2.2 命名管道服務(wù)端與客戶端之間通信的實現(xiàn)流程 804.2.3 命名管道服務(wù)端與客戶端之間通信的實例 814.3 如何用郵槽進行進程間通信 854.3.1 用郵槽進行進程間通信的步驟 854.3.2 郵槽服務(wù)器端與客戶端之間通信的實例 864.4 如何用Windows套接字進行進程間通信 904.4.1 套接字分類 904.4.2 流式套接字編程流程 914.4.3 套接字調(diào)用基本函數(shù) 924.4.4 Winsock程序設(shè)計 954.4.5 一個通用套接字類 964.4.6 套接字服務(wù)器端與客戶端間通信的實例 1014.5 本章小結(jié) 106參考文獻 106第5章 使用LPC和RPC通信 1075.1 引言 1075.2 接口定義語言(IDL)簡介 1075.3 使用本地過程調(diào)用(LPC)通信 1085.3.1 使用LPC通信方法介紹 1085.3.2 使用LPC通信的實例 1105.4 使用遠程過程調(diào)用(RPC)通信 1175.4.1 RPC運行機制 1175.4.2 RPC 綁定模式和屬性 1185.4.3 RPC傳輸(Transport) 1185.4.4 如何編寫RPC應(yīng)用程序 1195.4.5 使用RPC通信的實例 1205.5 本章小結(jié) 128參考文獻 128第6章 使用組件模型通信 1296.1 引言 1296.2 COM/DCOM模型概述 1296.2.1 COM/DCOM的特點 1296.2.2 COM/DCOM組件模型分類 1306.3 使用組件對象模型(COM/DCOM)通信 1316.3.1 使用COM/DCOM通信方法介紹 1316.3.2 基于DCOM實現(xiàn)遠程會話的實例 1366.4 本章小結(jié) 147參考文獻 147第7章 進程的創(chuàng)建、控制和隱藏 1487.1 引言 1487.2 常見的幾種創(chuàng)建進程的方法 1487.2.1 使用WinExec() 函數(shù) 1487.2.2 使用ShellExecute()和ShellExecuteEx()函數(shù) 1497.2.3 使用CreateProcess()函數(shù) 1517.2.4 使用OLE激活服務(wù)程序 1547.3 如何獲得進程句柄 1557.3.1 獲得一個進程的句柄 1557.3.2 提升進程權(quán)限級別 1567.4 如何實現(xiàn)當(dāng)前進程的枚舉 1587.4.1 通過系統(tǒng)快照實現(xiàn)當(dāng)前進程的枚舉 1587.4.2 通過psapi.dll提供的API函數(shù)實現(xiàn)當(dāng)前進程的枚舉 1607.4.3 通過wtsapi32.dll提供的API函數(shù)實現(xiàn)當(dāng)前進程的枚舉 1627.4.4 通過ntdll.dll提供的API函數(shù)實現(xiàn)當(dāng)前進程的枚舉 1637.5 如何終止進程 1647.5.1 如何終止本進程 1657.5.2 如何終止外部進程 1657.5.3 終止進程的實例 1657.6 如何隱藏進程(注入代碼) 1667.6.1 基本原理 1667.6.2 使用CreateRemoteThread()隱藏DLL 1677.6.3 使用CreateRemoteThread()直接注入API函數(shù)代碼 1737.6.4 使用Windows內(nèi)存映射文件注入代碼 1747.6.5 使用特洛伊DLL注入代碼 1747.6.6 使用注冊表注入DLL 1757.6.7 使用程序掛鉤的方法注入代碼 1757.7 本章小結(jié) 175參考文獻 176第8章 應(yīng)用程序的靜態(tài)掛鉤 1778.1 引言 1778.2 使用C/C++語言提取可執(zhí)行程序代碼 1778.2.1 在C/C++中使用內(nèi)聯(lián)匯編 1778.2.2 如何使用C/C++語言提取可執(zhí)行程序代碼 1798.3 如何對PE文件加殼 1828.3.1 PE文件的加殼方法 1828.3.2 向PE文件中靜態(tài)注入代碼的完整實例 1838.4 如何實現(xiàn)文件脫殼 1918.5 本章小結(jié) 192參考文獻 192第9章 應(yīng)用程序的動態(tài)掛鉤 1939.1 動態(tài)掛鉤概述 1939.2 使用Windows鉤子函數(shù)掛鉤 1949.2.1 Windows鉤子函數(shù) 1949.2.2 具體實例 1959.3 替換原API函數(shù)入口掛鉤 1989.3.1 如何替換原API函數(shù)入口實現(xiàn)掛鉤 1989.3.2 通用的替換原API函數(shù)入口掛鉤類 1999.3.3 使用JMP法編寫的掛鉤實例 2019.4 替換IAT中的函數(shù)地址進行掛鉤 2029.4.1 如何替換IAT中的函數(shù)地址實現(xiàn)掛鉤 2029.4.2 通用的替換IAT中的函數(shù)地址掛鉤類 2039.4.3 使用IAT法編寫的掛鉤實例 2079.5 替換Windows消息處理函數(shù)實現(xiàn)掛鉤 2089.5.1 Windows消息處理函數(shù)及其替換 2099.5.2 替換Windows消息處理函數(shù)實現(xiàn)掛鉤的實例 2109.6 鉤子DLL文件的裝載 2149.7 本章小結(jié) 216參考文獻 216第10章 數(shù)據(jù)的編碼和解碼實例 21710.1 引言 21710.2 游程編碼 21810.2.1 CX游程壓縮方法 21810.2.2 BI_RLE8壓縮方法 21810.2.3 BI_RLE壓縮方法 21810.2.4 縮位壓縮方法(Packbits) 21910.3 Huffman編碼 21910.3.1 Huffman編碼原理 21910.3.2 Huffman編碼過程 22010.4 算術(shù)編碼 22110.4.1 算術(shù)編碼算法 22110.4.2 算術(shù)解碼算法 22210.5 LZW壓縮算法 22210.5.1 LZW壓縮算法原理 22310.5.2 用VC++實現(xiàn)LZW壓縮算法 22510.6 Base64編碼 23610.6.1 Base64算法原理 23610.6.2 Base64算法的實現(xiàn) 23810.7 本章小結(jié) 241參考文獻 242第11章 可執(zhí)行文件的捆綁和分離 24311.1 引言 24311.2 捆綁方式分類 24311.2.1 結(jié)合式捆綁 24311.2.2 功能式捆綁 24511.3 文件捆綁相關(guān)技術(shù) 24511.3.1 文件捆綁工具及實現(xiàn) 24511.3.2 木馬程序與捆綁 24611.3.3 文件自身操作特點分析 24611.4 文件屬性的獲取和偽裝 24811.4.1 文件屬性的獲取和更改 24811.4.2 一個獲取文件基本屬性類 24911.4.3 可執(zhí)行程序自刪除的實現(xiàn) 25111.4.4 如何獲取其他應(yīng)用程序的圖標(biāo) 25411.4.5 如何改變窗口的圖標(biāo) 25511.5 被捆綁文件分離后的運行及自分解文件原理 25611.5.1 異步執(zhí)行分解法的實現(xiàn) 25611.5.2 同步執(zhí)行分解法的實現(xiàn) 25611.5.3 自動分解法的實現(xiàn) 25711.6 一個捆綁機(BindHider)軟件的設(shè)計 25811.6.1 BindHider的設(shè)計 25811.6.2 BindHider的源代碼 25911.7 一種制作自分解文件的方法 26311.7.1 母體程序的制作 26411.7.2 自分解文件的制作 26611.8 本章小結(jié) 267參考文獻 268第12章 可執(zhí)行文件的分割和合并 26912.1 引言 26912.2 文件分割方式 26912.2.1 考慮文件格式的分割 26912.2.2 設(shè)置子文件大小的分割 27012.2.3 具有自合并功能的文件分割 27112.2.4 依賴文件存放位置的分割 27112.2.5 依賴磁盤大小的分割 27112.3 如何使用多線程 27212.3.1 線程的創(chuàng)建和終止 27212.3.2 線程的控制函數(shù) 27312.3.3 線程的通信 27312.4 文件的簡單分割與合并 27412.4.1 文件的簡單分割 27412.4.2 文件的簡單合并 27512.5 用多線程進行文件的分割與合并的實例 27712.5.1 文件的分割與合并方案設(shè)計 27712.5.2 用多線程進行文件分割 27912.5.3 用多線程進行文件合并 28212.6 分割后文件自動合并的方案設(shè)計 28612.6.1 控制程序的制作 28612.6.2 用于文件自合并的控制程序的制作 28712.6.3 一種生成自合并文件的分割軟件制作 28912.7 本章小結(jié) 292參考文獻 292第13章 多線程下載和斷點續(xù)傳 29313.1 引言 29313.2 使用FTP進行多線程下載和斷點續(xù)傳 29313.2.1 FTP協(xié)議簡介 29313.2.2 FTP的工作模式 29513.2.3 FTP協(xié)議多線程下載和斷點續(xù)傳的實現(xiàn) 29513.2.4 實例 30613.3 使用HTTP進行多線程下載和斷點續(xù)傳 30713.3.1 HTTP協(xié)議簡介 30713.3.2 HTTP協(xié)議的內(nèi)部操作過程 30813.3.3 HTTP協(xié)議多線程下載和斷點續(xù)傳的實現(xiàn) 31113.3.4 實例 32113.4 BT下載簡介 32313.4.1 BT下載與一般下載的區(qū)別 32313.4.2 BT種子 32413.4.3 BT的下載過程 32413.5 本章小結(jié) 324參考文獻 325第14章 帶附件的電子郵件發(fā)送剖析 32614.1 引言 32614.2 電子郵件的發(fā)送方法 32614.3 用WinSock實現(xiàn)SMTP協(xié)議 32714.3.1 SMTP協(xié)議 32714.3.2 SMTP的實現(xiàn) 32814.4 郵件格式化 33514.4.1 郵件主體格式化 33514.4.2 郵件附件格式化 33814.4.3 郵件格式化 34114.5 發(fā)送電子郵件實例 34614.6 本章小結(jié) 347參考文獻 347第15章 特洛伊木馬與反木馬技術(shù) 34815.1 引言 34815.2 常見的木馬種類 34915.3 木馬的載入方式 35015.4 木馬采用的偽裝方法 35115.5 Windows 2K/XP中無法刪除文件的常用解決辦法 35215.6 一種木馬病毒的檢測技術(shù) 35315.7 本章小結(jié) 358參考文獻 359
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Windows應(yīng)用程序捆綁核心編程 PDF格式下載