
逆向工程核心原理
內容描述
<內容簡介>
《逆向工程核心原理》十分詳盡地介紹了代碼逆向分析的核心原理。作者李承遠在Ahnlab 研究所工作多年,書中不僅包括其以此經驗為基礎親自編寫的大量代碼,還包含了逆向工程研究人員必須瞭解的各種技術和技巧。徹底理解並切實掌握逆向工程這門技術,就能在眾多IT相關領域進行拓展運用,這本《逆向工程核心原理》就是通向逆向工程大門的捷徑。 想成為逆向工程研究員的讀者或正在從事逆向開發工作的開發人員一定會通過《逆向工程核心原理》獲得很大幫助。同時,想成為安全領域專家的人也可從《逆向工程核心原理》輕鬆起步。
<目錄>
第一部分 代碼逆向技術基礎第1章 關於逆向工程 1.1 逆向工程 1.2 代碼逆向工程 1.2.1 逆向分析法 1.2.2 源代碼、十六進制代碼、彙編代碼 1.2.3 「打補丁」與「破解」 1.3 代碼逆向準備 1.3.1 目標 1.3.2 激情 1.3.3 谷歌 1.4 學習逆向分析技術的禁忌 1.4.1 貪心 1.4.2 急躁 1.5 逆向分析技術的樂趣 第2章 逆向分析Hello World!程序 2.1 Hello World!程序 2.2 調試HelloWorld.exe程序 2.2.1 調試目標 2.2.2 開始調試 2.2.3 入口點 2.2.4 跟蹤40270C函數 2.2.5 跟蹤40104F跳轉語句 2.2.6 查找main()函數 2.3 進一步熟悉調試器 2.3.1 調試器指令 2.3.2 「大本營」 2.3.3 設置「大本營」的四種方法 2.4 快速查找指定代碼的四種方法 2.4.1 代碼執行法 2.4.2 字符串檢索法 2.4.3 API檢索法(1):在調用代碼中設置斷點 2.4.4 API檢索法(2):在API代碼中設置斷點 2.5 使用「打補丁」方式修改「Hello World!」字符串 2.5.1 「打補丁」 2.5.2 修改字符串的兩種方法 2.6 小結 第3章 小端序標記法 3.1 字節序 3.1.1 大端序與小端序 3.1.2 在OllyDbg中查看小端序 第4章 IA-32寄存器基本講解 4.1 什麼是CPU寄存器 4.2 IA-32寄存器 4.3 小結 第5章 棧 5.1 棧 5.1.1 棧的特徵 5.1.2 棧操作示例 第6章 分析abex'crackme#1
6.1 abex'crackme #1 6.1.1 開始調試 6.1.2 分析代碼 6.2 破解 6.3 將參數壓入棧 6.4 小結 第7章 棧幀 7.1 棧幀 7.2 調試示例:stackframe.exe 7.2.1 StackFrame.cpp 7.2.2 開始執行main()函數&生成棧幀 7.2.3 設置局部變量 7.2.4 add()函數參數傳遞與調用 7.2.5 開始執行add()函數&生成棧幀 7.2.6 設置add()函數的局部變量(x, y) 7.2.7 ADD運算 7.2.8 刪除函數add()的棧幀&函數執行完畢(返回) 7.2.9 從棧中刪除函數add()的參數(整理棧) 7.2.10 調用printf()函數 7.2.11 設置返回值 7.2.12 刪除棧幀&main()函數終止 7.3 設置OllyDbg選項 7.3.1 Disasm選項 7.3.2 Analysis1選項 7.4 小結 第8章 abex'crackme #2 8.1 運行abex'crackme #2 8.2 Visual Basic文件的特徵 8.2.1 VB專用引擎 8.2.2 本地代碼和偽代碼 8.2.3 事件處理程序 8.2.4 未文檔化的結構體 8.3 開始調試 8.3.1 間接調用 8.3.2 RT_MainStruct結構體 8.3.3 ThunRTMain()函數 8.4 分析crackme 8.4.1 檢索字符串 8.4.2 查找字符串地址 8.4.3 生成Serial的演算法 8.4.4 預測代碼 8.4.5 讀取Name字符串的代碼 8.4.6 加密循環 8.4.7 加密方法 8.5 小結 ……第9章 Process Explorer——最優秀的進程管理工具第10章 函數調用約定 第11章 視頻講座 第12章 究竟應當如何學習代碼逆向分析
第二部分 PE文件格式第13章 PE文件格式第14章 運行時壓縮第15章 調試UPX壓縮的notepad程序第16章 基址重定位表第17章 從可執行文件中刪除.reloc節區第18章 UPack PE文件頭詳細分析第19章 UPack調試-查找OEP第20章 「內嵌補丁」練習第三部分 DLL註入第21章 Windows消息鉤取第22章 惡意鍵盤記錄器第23章 DLL註入第24章 DLL卸載第25章 通過修改PE加載DLL第26章 PE Tools第27章 代碼註入第28章 使用彙編語言編寫註入代碼第四部分 API鉤取第29章 API鉤取:逆向分析之「花」第30章 記事本WriteFile() API鉤取) 300第31章 關於調試器第32章 計算器顯示中文數字第33章 隱藏進程第34章 高級全局API鉤取:IE連接控制第35章 優秀分析工具的五種標準第五部分 64位&Windows內核6第36章 64位計算第37章 x64處理器第38章 PE32+第39章 WinDbg第40章 64位調試第41章 ASLR第42章 內核6中的會話第43章 內核6中的DLL註入第44章 InjDll.exe:DLL註入專用工具第六部分 高級逆向分析技術第45章 TLS回調函數第46章 TEB第47章 PEB第48章 SEH第49章 IA-32指令第七部分 反調試技術第50章 反調試技術第51章 靜態反調試技術第52章 動態反調試技術第53章 高級反調試技術第八部分 調試練習第54章 調試練習1:服務第55章 調試練習2:自我創建
第56章 調試練習3:PE映像切換第57章 調試練習4:Debug Blocker結束語索引