> 書[0[0名0]0]: | Windows PE[0權0]威指南[按需印刷]|198644 |
> 圖書定價: | 89元 |
> 圖書作者: | 戚利 |
> 齣版社: | 機械工業齣版社 |
> 齣版日期: | 2011/10/1 0:00:00 |
> ISBN號: | 9787111354185 |
> 開本: | 16開 |
> 頁數: | 657 |
> 版次: | 1-1 |
作者簡介 |
戚利,資深安全技術專傢和軟件開發工程師,對Windows PE、Windows內核、計算機網絡安全、協議分析和病毒技術有較為深入的研究,實踐經驗豐富。擅長匯編語言和Java技術,曾自主開發瞭一個RMI框架。活躍於[0國0]內著[0[0名0]0]的安全論壇看雪[0學0]院,樂於與[0大0]傢分享自己的心得和體[0會0],且有較高的[0知0][0[0名0]0]度。此外,教[0學0](副教授)經驗也十分豐富,對讀者的[0學0]習習慣和認[0知0]方式有一定的認識,這一點在本書的寫作方式上得到瞭體現。 |
內容簡介 |
內容全麵,詳盡地剖析瞭Windows PE文件格式的原理及其編程技術,涉及安全[0領0]域的各個方麵和Windows係統的進程管理和底層機製;實戰性強,以案例驅動的方式講解瞭Windows PE文件格式在加密與解密、軟件漢化、逆嚮工程、反病毒等安全[0領0]域的應用,不僅每個[0知0]識點都配有小案例,而且還有多個完整的[0商0]業案例。 《Windows PE[0權0]威指南》共分為三[0大0]部分:[1[0第0]1]一部分簡單介紹瞭[0學0]習本書需要搭建的工作環境和必須具備的工具,深入分析瞭PE文件頭、導入錶、導齣錶、重定位錶、資源錶、延遲導入錶、綫程局部存儲、加載配置信息等核心技術的概念、原理及其編程方[0法0],有針對性地講解瞭程序設計中的重定位、程序堆棧、動態加載等;[1[0第0]1]二部分討論瞭PE頭部的變形技術及靜態附加補丁的技術,其中靜態附加補丁技術重點講解瞭如何在空閑空間、間隙、新節、[zui]後一節四種情況下打補丁和進行編碼的方[0法0];[1[0第0]1]三部分精心編寫瞭多個[0大0]型而完整的PE應用案例,以PE補丁作為重要手段,通過對目標PE文件實施不同的補丁內容來實現不同的應用,詳細展示瞭EXE捆綁器、軟件安裝自動化、EXE加鎖器、EXE加密、PE病毒提示器以及PE解毒的實現過程和方[0法0]。 《Windows PE[0權0]威指南》不僅適閤想深入理解Windows係統進程管理和運作機製的讀者,而且還適閤從事加密與解密、軟件漢化、逆嚮工程、反病毒工作的安全工作者。此外,它還適閤想全麵瞭解Windows PE文件結構和對程序字節碼感興趣的讀者。 |
目錄 |
《Windows PE[0權0]威指南》 前言 [1[0第0]1]一部分 PE的原理和基礎 [1[0第0]1]1章 Windows PE 開發環境/2 1.1 開發語言MASM32 /2 1.1.1 設置開發環境/3 1.1.2 開發[1[0第0]1]一個源程序HelloWorld.asm /5 1.1.3 運行HelloWorld.exe /7 1.2 調試軟件OllyDBG /10 1.2.1 調試HelloWorld.exe /10 1.2.2 修改EXE文件字節碼 /16 1.3 十六進製編輯軟件FlexHex /18 1.4 破解實例:U盤監控器 /20 1.5 初識PE文件 /23 1.6 小結 /26 [1[0第0]1]2章 三個小工具的編寫/27 2.1 構造基本窗口程序/27 2.1.1 構造窗口界麵/27 2.1.2 編寫相關的資源文件/28 2.1.3 通用程序框架的實現/29 2.2 PEDump的實現/32 2.2.1 編程思路/32 2.2.2 PEDump編碼/34 2.2.3 PEDump代碼中的數據結構/38 2.2.4 運行PEDump /39 2.3 PEComp的實現/40 2.3.1 編程思路/41 2.3.2 定義資源文件/41 2.3.3 PEComp編碼/41 2.3.4 運行PEComp /47 2.4 PEInfo的實現/47 2.4.1 編程思路/48 2.4.2 PEInfo編碼/48 2.4.3 運行PEInfo /52 2.5 小結/53 [1[0第0]1]3章 PE文件頭/54 3.1 PE的數據組織方式/54 3.2 與PE有關的基本概念/58 3.2.1 地址/58 3.2.2 指針/60 3.2.3 數據目錄/60 3.2.4 節/60 3.2.5 對齊/61 3.2.6 Unicode字符串/62 3.3 PE文件結構/62 3.3.1 16位係統下的PE結構/62 3.3.2 32位係統下的PE結構/66 3.3.3 程序員眼中的PE結構/68 3.4 PE文件頭部解析/69 3.4.1 DOS MZ頭IMAGE_DOS_HEADER /69 3.4.2 PE頭標識Signature /69 3.4.3 標準PE頭IMAGE_FILE_HEADER /70 3.4.4 擴展PE頭IMAGE_OPTIONAL_HEADER32 /70 3.4.5 PE頭IMAGE_NT_HEADERS /71 3.4.6 數據目錄項IMAGE_DATA_DIRECTORY /71 3.4.7 節錶項IMAGE_SECTION_HEADER /74 3.5 數據結構字段詳解/74 3.5.1 PE頭IMAGE_NT_HEADER的字段/75 3.5.2 標準PE頭IAMGE_FILE_HEADER的字段/75 3.5.3 擴展PE頭IMAGE_OPTIONAL_HEADER32的字段/78 3.5.4 數據目錄項IMAGE_DATA_DIRECTORY的字段/87 3.5.5 節錶項IMAGE_SECTION_HEADER的字段/87 3.5.6 解析HelloWorld程序的字節碼/88 3.6 PE內存映像/92 3.7 PE文件頭編程/93 3.7.1 RVA與FOA的轉換/93 3.7.2 數據定位/95 3.7.3 標誌位操作/101 3.7.4 PE校驗和/102 3.8 小結/104 [1[0第0]1]4章 導入錶/105 4.1 何謂導入錶/105 4.2 導入函數/105 4.2.1 invoke指令分解/106 4.2.2 導入函數地址/107 4.2.3 導入函數宿主/109 4.3 PE中的導入錶/112 4.3.1 導入錶定位/112 4.3.2 導入錶描述符IMAGE_IMPORT_DESCRIPTOR /113 4.3.3 導入錶的[0[0雙0]0]橋結構/114 4.3.4 導入函數地址錶/116 4.3.5 構造調用同一個DLL文件的多個函數的導入錶/117 4.4 導入錶編程/121 4.4.1 導入錶遍曆的思路/121 4.4.2 編寫函數_getImportInfo /122 4.4.3 運行測試/124 4.5 綁定導入/124 4.5.1 綁定導入機製/124 4.5.2 綁定導入數據定位/125 4.5.3 綁定導入數據結構/126 4.5.4 綁定導入實例分析/127 4.6 手工重組導入錶/128 4.6.1 常用注冊錶API /128 4.6.2 構造目標指令/132 4.6.3 PE頭部變化/135 4.6.4 手工重組/136 4.6.5 程序實現/141 4.6.6 思考:關於IAT的連貫性/142 4.6.7 思考:關於導入錶的位置/143 4.7 小結/144 [1[0第0]1]5章 導齣錶/145 5.1 導齣錶的作用/145 5.1.1 分析動態鏈接庫功能/145 5.1.2 獲得導齣函數地址/146 5.2 構造含導齣錶的PE文件/146 5.2.1 DLL源代碼/147 5.2.2 編寫def文件/151 5.2.3 編譯和鏈接/152 5.2.4 編寫頭文件/152 5.2.5 使用導齣函數/152 5.3 導齣錶數據結構/155 5.3.1 導齣錶定位/155 5.3.2 導齣目錄IMAGE_EXPORT_DIRECTORY/156 5.3.3 導齣錶實例分析/158 5.4 導齣錶編程/160 5.4.1 根據編號查找函數地址/160 5.4.2 根據[0[0名0]0]字查找函數地址/160 5.4.3 遍曆導齣錶/162 5.5 導齣錶的應用/165 5.5.1 導齣函數覆蓋/165 5.5.2 導齣私有函數/167 5.6 小結/169 [1[0第0]1]6 章 棧與重定位錶/170 6.1 棧/170 6.1.1 棧的應用場閤/170 6.1.2 c[0all0]調用中的棧實例分析/173 6.1.3 棧溢齣/177 6.2 代碼重定位/181 6.2.1 重定位的提齣 /181 6.2.2 實現重定位的方[0法0]/182 6.2.3 重定位編程/183 6.3 PE文件頭中的重定位錶/189 6.3.1 重定位錶定位/189 6.3.2 重定位錶項IMAGE_BASE_RELOCATION /190 6.3.3 重定位錶的結構/191 6.3.4 遍曆重定位錶/192 6.3.5 重定位錶實例分析/195 6.4 小結/196 [1[0第0]1]7章 資源錶/197 7.1 資源分類/197 7.1.1 位圖、光標、圖標資源/199 7.1.2 菜單資源/199 7.1.3 對話框資源/200 7.1.4 自定義資源/201 7.2 PE資源錶組織/202 7.2.1 資源錶的組織方式/202 7.2.2 資源錶數據定位/203 7.2.3 資源目錄頭IMAGE_RESOURCE_DIRECTORY /204 7.2.4 資源目錄項IMAGE_RESOURCE_DIRECTORY_ENTRY /205 7.2.5 資源數據項IMAGE_RESOURCE_DATA_ENTRY /206 7.2.6 三級結構中目錄項的區彆/207 7.3 資源錶遍曆/208 7.4 PE資源深度解析/213 7.4.1 資源腳本/213 7.4.2 使用PEInfo分析資源錶/214 7.4.3 菜單資源解析/216 7.4.4 圖標資源解析/218 7.4.5 圖標組資源解析/223 7.4.6 對話框資源解析/224 7.5 資源錶編程/228 7.5.1 更改圖標實驗/229 7.5.2 提取程序圖標實例/231 7.5.3 更改程序圖標實例/241 7.6 小結/244 [1[0第0]1]8章 延遲加載導入錶/245 8.1 延遲加載導入的概念及其作用/245 8.1.1 提高應用程序加載速度/246 8.1.2 提高應用程序兼容性/246 8.1.3 提高應用程序可整閤性/247 8.2 PE中的延遲加載導入錶/247 8.2.1 延遲加載導入錶數據定位/247 8.2.2 延遲加載導入描述符IMAGE_DELAY_IMPORT_DESCRIPTOR /248 8.2.3 延遲加載導入錶實例分析/249 8.3 延遲加載導入機製詳解/251 8.4 延遲加載導入編程/253 8.4.1 修改資源文件pe.rc /253 8.4.2 修改源代碼pe.asm /253 8.5 關於延遲加載導入的兩個問題/255 8.5.1 異常處理/255 8.5.2 DLL的卸載/255 8.6 小結/256 [1[0第0]1]9章 綫程局部存儲/257 9.1 Windows進程與綫程/257 9.1.1 Windows體係結構/257 9.1.2 進程與綫程創建/258 9.1.3 進程環境塊PEB /262 9.1.4 綫程環境塊TEB /264 9.2 什麼是綫程局部存儲/265 9.3 動態綫程局部存儲/267 9.3.1 動態TLS實例/267 9.3.2 獲取索引TlsAlloc /274 9.3.3 按索引取值TlsGetValue /275 9.3.4 按索引存儲TlsSetValue /275 9.3.5 釋放索引TlsFree /275 9.4 靜態綫程局部存儲/276 9.4.1 TLS定位/277 9.4.2 TLS目錄結構IMAGE_TLS_DIRECTORY32 /278 9.4.3 靜態TLS實例分析/278 9.4.4 TLS迴調函數/279 9.4.5 測試靜態TLS下的綫程存儲初始化迴調函數/280 9.5 小結/281 [1[0第0]1]10章 加載配置信息/282 10.1 何謂加載配置信息/282 10.2 Windows結構化異常處理/282 10.2.1 什麼是SEH /283 10.2.2 Windows異常分類/285 10.2.3 內核模式下的異常處理/286 10.2.4 用戶模式下的異常處理/289 10.2.5 Windows SEH機製解析/294 10.2.6 SEH編程實例/295 10.3 PE中的加載配置信息/299 10.3.1 加載配置信息定位/300 10.3.2 加載配置目錄IMAGE_LOAD_CONFIG_DIRECTORY /300 10.3.3 加載配置信息實例分析/302 10.4 加載配置編程/303 10.4.1 程序源代碼分析/304 10.4.2 為PE添加加載配置信息/306 10.4.3 運行測試/306 10.4.4 注冊多個異常處理函數示例/307 10.5 小結/309 [1[0第0]1]11章 動態加載技術/310 11.1 Windows虛擬地址空間分配/310 11.1.1 用戶態低2GB空間分配/310 11.1.2 核心態高2GB空間分配/311 11.1.3 HelloWorld進程空間分析/312 11.2 Windows動態庫技術/313 11.2.1 DLL靜態調用/313 11.2.2 DLL動態調用/314 11.2.3 導齣函數起始地址實例/314 11.3 在編程中使用動態加載技術/315 11.3.1 獲取kernel32.dll基地址/316 11.3.2 獲取GetProcAddress地址/322 11.3.3 在代碼中使用獲取的函數地址編程/325 11.3.4 動態API技術編程實例/327 11.4 小結/330 [1[0第0]1]二部分 PE進階 [1[0第0]1]12章 PE變形技術/332 12.1 變形技術的分類/332 12.1.1 結構重疊技術/332 12.1.2 空間調整技術/333 12.1.3 數據轉移技術/334 12.1.4 數據壓縮技術/338 12.2 變形技術可用的空間/341 12.2.1 文件頭部未用的字段/341 12.2.2 [0大0]小不固定的數據塊/343 12.2.3 因對齊産生的補足空間/344 12.3 PE文件變形原則/344 12.3.1 關於數據目錄錶/344 12.3.2 關於節錶/344 12.3.3 關於導入錶/344 12.3.4 關於程序數據/345 12.3.5 關於對齊/345 12.3.6 幾個關注的字段/345 12.4 將PE變小的實例HelloWorldPE /346 12.4.1 源程序HelloWorld的字節碼(2560字節) /346 12.4.2 目標PE文件的字節碼(432字節)/348 12.5 打造目標PE的步驟/349 12.5.1 對文件頭的處理/349 12.5.2 對代碼段的處理/350 12.5.3 對導入錶的處理/351 12.5.4 對部分字段值的修正/351 12.5.5 修改後的文件結構/352 12.5.6 修改後的文件分析/353 12.5.7 目標文件更小的實例分析/354 12.6 小結/359 [1[0第0]1]13章 PE補丁技術/360 13.1 動態補丁/360 13.1.1 進程間的通信機製/360 13.1.2 讀寫進程內存/363 13.1.3 目標進程枚舉/368 13.1.4 執行遠程綫程/373 13.2 靜態補丁/379 13.2.1 整體替換PE文件/379 13.2.2 整體替換DLL文件/385 13.2.3 部分修改PE文件/387 13.3 嵌入補丁程序/388 13.3.1 嵌入補丁程序框架/388 13.3.2 嵌入補丁程序編寫規則/394 13.3.3 嵌入補丁字節碼實例分析/395 13.4 萬能補丁碼/396 13.4.1 原理/396 13.4.2 源代碼/397 13.4.3 字節碼/399 13.4.4 運行測試/399 13.5 小結/399 [1[0第0]1]14章 在PE空閑空間中插入程序/400 14.1 什麼是 PE空閑空間/400 14.1.1 PE文件中的可用空間/400 14.1.2 獲取PE文件可用空間的代碼/400 14.1.3 獲取PE文件可用空間的測試/403 14.2 添加注冊錶啓動項的補丁程序實例 /403 14.2.1 補丁程序的源代碼/403 14.2.2 補丁程序的字節碼/404 14.2.3 目標PE的字節碼/405 14.3 手工打造目標PE的步驟/408 14.3.1 基本思路/408 14.3.2 對代碼段的處理/408 14.3.3 對導入錶的處理/413 14.3.4 對數據段的處理/418 14.3.5 修改前後PE文件對比/421 14.4 開發補丁工具/422 14.4.1 編程思路/422 14.4.2 數據結構分析/423 14.4.3 運行測試/427 14.4.4 適應性測試實例分析/430 14.5 小結/434 [1[0第0]1]15章 在PE間隙中插入程序/435 15.1 什麼是PE間隙/435 15.1.1 構造間隙一/436 15.1.2 間隙一與參數/436 15.2 插入HelloWorld的補丁程序實例/437 15.2.1 補丁程序字節碼/437 15.2.2 目標PE結構/439 15.3 開發補丁工具/439 15.3.1 編程思路/439 15.3.2 數據結構分析/440 15.3.3 主要代碼/442 15.3.4 運行測試/447 15.4 存在綁定導入數據的PE補丁程序實例 /448 15.4.1 改進補丁程序/448 15.4.2 修正補丁工具/450 15.4.3 為記事本程序打補丁/456 15.5 小結/457 [1[0第0]1]16章 在PE新增節中插入程序/458 16.1 新增PE節的方[0法0]/458 16.2 在本地建立子目錄的補丁程序實例/458 16.2.1 補丁程序源代碼/459 16.2.2 目標PE結構 /464 16.3 開發補丁工具 /465 16.3.1 編程思路/465 16.3.2 為變量賦值/466 16.3.3 構造新文件數據/466 16.3.4 修正字段參數/466 16.3.5 主要代碼/467 16.3.6 運行測試/475 16.4 小結/475 [1[0第0]1]17章 在PE[zui]後一節中插入程序/476 17.1 網絡文件下載器補丁程序實例/476 17.1.1 用到的API函數/476 17.1.2 補丁功能的預演代碼/482 17.1.3 補丁程序的源代碼/484 17.1.4 目標PE結構/485 17.2 開發補丁工具/486 17.2.1 編程思路/486 17.2.2 主要代碼/487 17.2.3 運行測試/490 17.3 小結/491 [1[0第0]1]三部分 PE的應用案例 [1[0第0]1]18章 EXE捆綁器/494 18.1 基本思路 /494 18.2 EXE執行調度機製/495 18.2.1 相關API函數/495 18.2.2 控製進程同步運行實例分析/499 18.3 字節碼轉換工具hex2db /500 18.3.1 hex2db源代碼/500 18.3.2 運行測試/507 18.4 執行調度程序_host.exe /508 18.4.1 主要代碼/508 18.4.2 數據結構分析/510 18.5 宿主程序host.exe /511 18.5.1 宿主程序的功能/511 18.5.2 宿主程序的狀態/511 18.5.3 遍曆文件/512 18.5.4 釋放文件/514 18.5.5 宿主程序主函數/517 18.6 EXE捆綁器bind.exe /517 18.6.1 綁定列錶定位/517 18.6.2 捆綁步驟及主要代碼/518 18.6.3 測試運行/523 18.7 小結/524 [1[0第0]1]19章 軟件安裝自動化/525 19.1 基本思路/525 19.2 補丁程序patch.exe /525 19.2.1 相關API函數/526 19.2.2 執行綫程函數/526 19.2.3 簡單測試/528 19.3 消息發送器_Message.exe /529 19.3.1 窗口枚舉迴調函數/529 19.3.2 調用窗口枚舉函數/530 19.3.3 嚮指定窗口發送消息/531 19.3.4 消息發送器源代碼/532 19.3.5 測試運行/535 19.4 消息發送器生成工廠MessageFactory.exe /535 19.4.1 消息發送函數/535 19.4.2 鍵盤虛擬碼/537 19.4.3 改進的消息發送器實例分析/540 19.4.4 消息發送器生成工廠代碼結構/542 19.4.5 代碼與數據的定位/544 19.4.6 提取代碼字節碼/545 19.5 軟件安裝自動化主程序AutoSetup.exe /548 19.5.1 主要代碼/548 19.5.2 測試運行/552 19.6 小結/554 [1[0第0]1]20章 EXE加鎖器/555 20.1 基本思路/555 20.2 免資源文件的窗口程序[0no0]res.asm /556 20.2.1 窗口創建函數CreateWindowEx /556 20.2.2 創建用戶登錄窗口的控件/558 20.2.3 窗口程序源代碼 /558 20.3 免重定位的窗口程序login.asm /562 20.4 補丁程序patch.asm /570 20.4.1 獲取導入庫及函數/570 20.4.2 按照補丁框架修改login.asm /571 20.4.3 補丁程序主要代碼/572 20.5 附加補丁運行/573 20.6 小結/575 [1[0第0]1]21章 EXE加密/576 21.1 基本思路/576 21.2 加密算[0法0]/577 21.2.1 加密算[0法0]的分類/577 21.2.2 自定義可逆加密算[0法0]實例/578 21.2.3 構造加密基錶/579 21.2.4 利用基錶測試加密數據/581 21.3 開發補丁工具/582 21.3.1 轉移數據目錄/582 21.3.2 傳遞程序參數/585 21.3.3 加密節區內容/587 21.4 處理補丁程序/588 21.4.1 還原數據目錄錶/588 21.4.2 解密節區內容/590 21.4.3 加載目標DLL /592 21.4.4 修正目標IAT /594 21.5 小結/595 [1[0第0]1]22章 PE病毒提示器/596 22.1 基本思路 /596 22.1.1 誌願者的選擇條件/596 22.1.2 判斷病毒感染的原理/597 22.2 手工打造PE病毒提示器 /597 22.2.1 編程思路 /597 22.2.2 分析目標文件的導入錶 /598 22.2.3 補丁程序的源代碼/601 22.2.4 補丁程序的字節碼/608 22.2.5 修正函數地址/609 22.2.6 測試運行/610 22.3 補丁版的PE病毒提示器/611 22.3.1 將提示器寫入啓動項/611 22.3.2 檢測特定位置校驗和/612 22.3.3 測試運行/615 22.4 小結/617 [1[0第0]1]23章 破解PE病毒/618 23.1 病毒保護技術/618 23.1.1 花指令/619 23.1.2 反跟蹤技術/620 23.1.3 反調試技術/621 23.1.4 自修改技術/624 23.1.5 注冊錶項保護技術/625 23.1.6 進程保護技術/627 23.2 PE病毒補丁程序解析/632 23.2.1 病毒特徵/633 23.2.2 補丁程序的源代碼分析/633 23.2.3 病毒傳播測試/648 23.2.4 感染前後PE結構對比/650 23.3 解毒代碼的編寫/650 23.3.1 基本思路/651 23.3.2 計算病毒代碼[0大0]小/651 23.3.3 獲取原始入口地址/652 23.3.4 修正PE頭部的其他參數/652 23.3.5 主要代碼/653 23.3.6 運行測試 /656 23.4 小結/657 後記/658 |
書非常厚,感覺撿瞭個寶,要花時間好好看看瞭
評分定製絕版書吧是不錯,不過買瞭沒多久就降價瞭感覺略吃虧啊。還有貨運太暴力瞭吧書角是壞的
評分必不可少的一本書,網上找瞭一段時間,還好有這個按需印刷,贊
評分定製絕版書吧是不錯,不過買瞭沒多久就降價瞭感覺略吃虧啊。還有貨運太暴力瞭吧書角是壞的
評分書很好,值得購買
評分定製絕版書吧是不錯,不過買瞭沒多久就降價瞭感覺略吃虧啊。還有貨運太暴力瞭吧書角是壞的
評分可以可以,看著不錯的樣子,終於有瞭一本書哈哈
評分非常不錯的東西。
評分書非常厚,感覺撿瞭個寶,要花時間好好看看瞭
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有