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