[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • 逆向工程核心原理(圖靈出品)
    該商品所屬分類:圖書 -> 人民郵電出版社
    【市場價】
    1049-1520
    【優惠價】
    656-950
    【作者】 李承遠武傳海 
    【出版社】人民郵電出版社 
    【ISBN】9787115350183
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:人民郵電出版社
    ISBN:9787115350183
    版次:1

    商品編碼:12877221
    品牌:iTuring
    包裝:平裝

    開本:16開
    出版時間:2021-06-01
    用紙:膠版紙

    頁數:679
    正文語種:中文

    作者:李承遠,武傳海

        
        
    "

    編輯推薦

    書中用到的幾乎所有示例都基於作者在逆向分析實踐中獲得的知識與經驗,是其親自開發的程序,緊扣各章主題,無累贅。
    作者將培訓經驗應用到本書的組織結構、內容講解、示例選擇等各方面,以求將較為難懂的技術以更易懂的方式呈現給各位。
    作者幾年前就開設了一個逆向技術學習博客並運營到今,通過與訪問者之間的交流,充分了解了初學者們的困惑和需求。

    內容簡介

    《逆向工程核心原理》十分詳盡地介紹了代碼逆向分析的核心原理。作者在Ahnlab 研究所工作多年,書中不僅包括其以此經驗為基礎親自編寫的大量代碼,還包含了逆向工程研究人員必須了解的各種技術和技巧。徹底理解並切實掌握逆向工程這門技術,就能在眾多IT相關領域進行拓展運用,這本《逆向工程核心原理》就是通向逆向工程大門的捷徑。
    想成為逆向工程研究員的讀者或正在從事逆向開發工作的開發人員一定會通過《逆向工程核心原理》獲得很大幫助。同時,想成為安全領域專家的人也可從《逆向工程核心原理》輕松起步。

    作者簡介

    李承遠
    在AhnLab從事惡意代碼分析工作,一直維護著一個逆向分析技術專業學習博客。從接觸逆向分析技術開始就為其迷人魅力深深吸引,對逆向分析技術的傳播及多領域應用非常關注,喜歡讀書、發獃,也向往新的挑戰。

    武傳海
    擅韓語,喜計算機,有多年翻譯經驗,內容涉及多個領域,尤其擅長翻譯各類計算機圖書,已出版多部韓語譯著。
    QQ:768160125
    jeonhae@126.com

    目錄

    目錄

    第 一部分代碼逆向技術基礎

    第 1章關於逆向工程2
    1.1逆向工程2
    1.2代碼逆向工程2
    1.2.1逆向分析法2
    1.2.2源代碼、十六進制代碼、彙編代碼4
    1.2.3 “打補丁”與“破解”5
    1.3代碼逆向準備5
    1.3.1目標5
    1.3.2激情6
    1.3.3谷歌6
    1.4學習逆向分析技術的禁忌6
    1.4.1貪心6
    1.4.2急躁7
    1.5逆向分析技術的樂趣7

    第 2章逆向分析Hello World!程序8
    2.1Hello World!程序8
    2.2調試HelloWorld.exe程序9
    2.2.1調試目標9
    2.2.2開始調試9
    2.2.3入口點10
    2.2.4跟蹤40270C函數10
    2.2.5跟蹤40104F跳轉語句12
    2.2.6查找main()函數12
    2.3進一步熟悉調試器14
    2.3.1調試器指令14
    2.3.2 “大本營”15
    2.3.3設置“大本營”的四種方法15
    2.4快速查找指定代碼的四種方法17
    2.4.1代碼執行法18
    2.4.2字符串檢索法19
    2.4.3API檢索法(1):在調用代碼中設置斷點20
    2.4.4API檢索法(2):在API代碼中設置斷點21
    2.5使用“打補丁”方式修改“Hello World!”字符串23
    2.5.1 “打補丁”23
    2.5.2修改字符串的兩種方法24
    2.6小結28

    第3章小端序標記法31
    3.1字節序31
    3.1.1大端序與小端序32
    3.1.2在OllyDbg中查看小端序32

    第4章IA-32寄存器基本講解34
    4.1什麼是CPU寄存器34
    4.2IA-32寄存器34
    4.3小結40

    第5章棧41
    5.1棧41
    5.1.1棧的特征41
    5.1.2棧操作示例41

    第6章分析abex’ crackme#144
    6.1abex’ crackme #144
    6.1.1開始調試45
    6.1.2分析代碼45
    6.2破解47
    6.3將參數壓入棧47
    6.4小結48

    第7章棧幀49
    7.1棧幀49
    7.2調試示例:stackframe.exe49
    7.2.1StackFrame.cpp50
    7.2.2開始執行main()函數&生成棧幀51
    7.2.3設置局部變量52
    7.2.4add()函數參數傳遞與調用53
    7.2.5開始執行add()函數&生成棧幀54
    7.2.6設置add()函數的局部變量(x, y)55
    7.2.7ADD運算55
    7.2.8刪除函數add()的棧幀&函數執行完畢(返回)56
    7.2.9從棧中刪除函數add()的參數(整理棧)57
    7.2.10調用printf()函數58
    7.2.11設置返回值58
    7.2.12刪除棧幀&main()函數終止58
    7.3設置OllyDbg選項59
    7.3.1Disasm選項59
    7.3.2Analysis1選項60
    7.4小結61

    第8章abex’ crackme #262
    8.1運行abex’ crackme #262
    8.2Visual Basic文件的特征63
    8.2.1VB專用引擎63
    8.2.2本地代碼和偽代碼63
    8.2.3事件處理程序63
    8.2.4未文檔化的結構體63
    8.3開始調試63
    8.3.1間接調用64
    8.3.2RT_MainStruct結構體64
    8.3.3ThunRTMain()函數65
    8.4分析crackme65
    8.4.1檢索字符串65
    8.4.2查找字符串地址66
    8.4.3生成Serial的算法68
    8.4.4預測代碼69
    8.4.5讀取Name字符串的代碼69
    8.4.6加密循環70
    8.4.7加密方法70
    8.5小結72

    第9章Process Explorer——**優 秀的進程管理工具74
    9.1Process Explorer74
    9.2具體有哪些優點呢75
    9.3sysinternals75

    第 10章函數調用約定76
    10.1函數調用約定76
    10.1.1cdecl76
    10.1.2stdcall77
    10.1.3fastcall78

    第 11章視頻講座79
    11.1運行79
    11.2分析79
    11.2.1目標(1):去除消息框79
    11.2.2打補丁(1):去除消息框81
    11.2.3目標(2):查找注冊碼83
    11.3小結85

    第 12章應當如何學習代碼逆向分析86
    12.1逆向工程86
    12.1.1任何學習都應當有目標86
    12.1.2擁有積極心態86
    12.1.3要感受其中的樂趣86
    12.1.4讓檢索成為日常生活的一部分87
    12.1.5**重要的是實踐87
    12.1.6請保持平和的心態87

    第 二部分PE文件格式

    第 13章PE文件格式90
    13.1介紹90
    13.2PE文件格式90
    13.2.1基本結構91
    13.2.2VA&RVA92
    13.3PE頭92
    13.3.1DOS頭93
    13.3.2DOS存根94
    13.3.3NT頭94
    13.3.4NT頭:文件頭95
    13.3.5NT頭:可選頭97
    13.3.6節區頭101
    13.4RVA to RAW104
    13.5IAT105
    13.5.1DLL105
    13.5.2IMAGE_IMPORT_DESCRIPTOR107
    13.5.3使用notepad.exe練習108
    13.6EAT112
    13.6.1IMAGE_EXPORT_DIRECTORY113
    13.6.2使用kernel32.dll練習114
    13.7高 級PE116
    13.7.1PEView.exe116
    13.7.2Patched PE117
    13.8小結118

    第 14章運行時壓縮121
    14.1數據壓縮121
    14.1.1無損壓縮121
    14.1.2有損壓縮121
    14.2運行時壓縮器122
    14.2.1壓縮器122
    14.2.2保護器123
    14.3運行時壓縮測試123

    第 15章調試UPX壓縮的notepad程序127
    15.1notepad.exe的EP代碼127
    15.2notepad_upx.exe的EP代碼127
    15.3跟蹤UPX文件129
    15.3.1OllyDbg的跟蹤命令129
    15.3.2循環 #1129
    15.3.3循環 #2130
    15.3.4循環 #3131
    15.3.5循環 #4131
    15.4快速查找UPX OEP的方法132
    15.4.1在POPAD指令後的JMP指令處設置斷點132
    15.4.2在棧中設置硬件斷點133
    15.5小結133

    第 16章基址重定位表135
    16.1PE重定位135
    16.1.1DLL/SYS135
    16.1.2EXE136
    16.2PE重定位時執行的操作136
    16.3PE重定位操作原理138
    16.3.1基址重定位表138
    16.3.2IMAGE_BASE_RELOCATION結構體139
    16.3.3基址重定位表的分析方法139
    16.3.4練習141

    第 17章從可執行文件中刪除.reloc節區142
    17.1.reloc節區142
    17.2reloc.exe142
    17.2.1刪除.reloc節區頭142
    17.2.2刪除.reloc節區143
    17.2.3修改IMAGE_FILE_HEADER143
    17.2.4修改IMAGE_OPTIONAL_HEADER144
    17.3小結145

    第 18章UPack PE文件頭詳細分析146
    18.1UPack說明146
    18.2使用UPack壓縮notepad.exe146
    18.3使用Stud_PE工具148
    18.4比較PE文件頭148
    18.4.1原notepad.exe的PE文件頭149
    18.4.2notepad_upack.exe運行時壓縮的PE文件頭149
    18.5分析UPack的PE文件頭150
    18.5.1重疊文件頭150
    18.5.2IMAGE_FILE_HEADER.SizeOfOptionalHeader150
    18.5.3IMAGE_OPTIONAL_HEADER.NumberOf-RvaAndSizes152
    18.5.4IMAGE_SECTION_HEADER153
    18.5.5重疊節區155
    18.5.6RVA to RAW156
    18.5.7導入表(IMAGE_IMPORT_DESCRIPTOR array)158
    18.5.8導入地址表160
    18.6小結161

    第 19章UPack調試 查找OEP162
    19.1OllyDbg運行錯誤162
    19.2解碼循環163
    19.3設置IAT165
    19.4小結166

    第 20章“內嵌補丁”練習167
    20.1內嵌補丁167
    20.2練習:Patchme168
    20.3調試:查看代碼流168
    20.4代碼結構172
    20.5 “內嵌補丁”練習173
    20.5.1補丁代碼要設置在何處呢173
    20.5.2制作補丁代碼175
    20.5.3執行補丁代碼176
    20.5.4結果確認177

    第三部分DLL注入

    第 21章Windows消息鉤取180
    21.1鉤子180
    21.2消息鉤子180
    21.3SetWindowsHookEx()181
    21.4鍵盤消息鉤取練習182
    21.4.1練習示例HookMain.exe182
    21.4.2分析源代碼185
    21.5調試練習187
    21.5.1調試HookMain.exe188
    21.5.2調試Notepad.exe進程內的KeyHook.dll190
    21.6小結192

    第 22章惡意鍵盤記錄器194
    22.1惡意鍵盤記錄器的目標194
    22.1.1在線遊戲194
    22.1.2網上銀行194
    22.1.3商業機密洩露194
    22.2鍵盤記錄器的種類與發展趨勢195
    22.3防範惡意鍵盤記錄器195
    22.4個人信息195

    第 23章DLL注入197
    23.1DLL注入197
    23.2DLL注入示例198
    23.2.1改善功能與修復Bug198
    23.2.2消息鉤取198
    23.2.3API鉤取198
    23.2.4其他應用程序199
    23.2.5惡意代碼199
    23.3DLL注入的實現方法199
    23.4CreateRemoteThread()199
    23.4.1練習示例myhack.dll199
    23.4.2分析示例源代碼203
    23.4.3調試方法208
    23.5AppInit_DLLs210
    23.5.1分析示例源碼211
    23.5.2練習示例myhack2.dll212
    23.6SetWindowsHookEx()214
    23.7小結214

    第 24章DLL卸載216
    24.1DLL卸載的工作原理216
    24.2實現DLL卸載216
    24.2.1獲取進程中加載的DLL信息219
    24.2.2獲取目標進程的句柄220
    24.2.3獲取FreeLibrary() API地址220
    24.2.4在目標進程中運行線程220
    24.3DLL卸載練習220
    24.3.1復制文件及運行notepad.exe220
    24.3.2注入myhack.dll221
    24.3.3卸載myhack.dll222

    第 25章通過修改PE加載DLL224
    25.1練習文件224
    25.1.1TextView.exe224
    25.1.2TextView_patched.exe225
    25.2源代碼 - myhack3.cpp227
    25.2.1DllMain()227
    25.2.2Download228
    25.2.3DropFile()229
    25.2.4dummy()230
    25.3修改TextView.exe文件的準備工作231
    25.3.1修改思路231
    25.3.2查看IDT是否有足夠空間231
    25.3.3移動IDT233
    25.4修改TextView.exe235
    25.4.1修改導入表的RVA值235
    25.4.2刪除綁定導入表235
    25.4.3創建新IDT235
    25.4.4設置Name、INT、IAT236
    25.4.5修改IAT節區的屬性值238
    25.5檢測驗證240
    25.6小結241

    第 26章PE Tools242
    26.1PE Tools242
    26.1.1進程內存轉儲243
    26.1.2PE編輯器245
    26.2小結245

    第 27章代碼注入247
    27.1代碼注入247
    27.2DLL注入與代碼注入247
    27.3練習示例249
    27.3.1運行notepad.exe249
    27.3.2運行CodeInjection.exe249
    27.3.3彈出消息框250
    27.4CodeInjection.cpp250
    27.4.1main()函數251
    27.4.2ThreadProc()函數251
    27.4.3InjectCode()函數254
    27.5代碼注入調試練習256
    27.5.1調試notepad.exe256
    27.5.2設置OllyDbg選項256
    27.5.3運行CodeInjection.exe257
    27.5.4線程開始代碼258
    27.6小結259

    第 28章使用彙編語言編寫注入代碼260
    28.1目標260
    28.2彙編編程260
    28.3OllyDbg的彙編命令260
    28.3.1編寫ThreadProc()函數262
    28.3.2保存文件265
    28.4編寫代碼注入程序266
    28.4.1獲取ThreadProc()函數的二進制代碼266
    28.4.2CodeInjection2.cpp267
    28.5調試練習270
    28.5.1調試notepad.exe270
    28.5.2設置OllyDbg選項270
    28.5.3運行CodeInjection2.exe271
    28.5.4線程起始代碼272
    28.6詳細分析272
    28.6.1生成棧幀272
    28.6.2THREAD_PARAM結構體指針273
    28.6.3 “User32.dll”字符串274
    28.6.4壓入“user32.dll”字符串參數274
    28.6.5調用LoadLibraryA(“user32.dll”)275
    28.6.6 “MessageBoxA”字符串276
    28.6.7調用GetProcAddress(hMod,“MessageBoxA”)276
    28.6.8壓入MessageBoxA()函數的參數 1 -MB_OK277
    28.6.9壓入MessageBoxA()函數的參數 2 -“ReverseCore”277
    28.6.10壓入MessageBoxA()函數的參數 3 -“www.reversecore.com”278
    28.6.11壓入MessageBoxA()函數的參數 4 -NULL279
    28.6.12調用MessageBoxA()279
    28.6.13設置ThreadProc()函數的返回值280
    28.6.14刪除棧幀及函數返回280
    28.7小結280

    第四部分API鉤取

    第 29章API鉤取:逆向分析之“花”282
    29.1鉤取282
    29.2API是什麼282
    29.3API鉤取283
    29.3.1正常調用API283
    29.3.2鉤取API調用284
    29.4技術圖表284
    29.4.1方法對像(是什麼)285
    29.4.2位置(何處)285
    29.4.3技術(如何)286
    29.4.4API286

    第30章記事本WriteFile() API鉤取288
    30.1技術圖表—調試技術288
    30.2關於調試器的說明289
    30.2.1術語289
    30.2.2調試器功能289
    30.2.3調試器的工作原理289
    30.2.4調試事件289
    30.3調試技術流程290
    30.4練習291
    30.5工作原理293
    30.5.1棧293
    30.5.2執行流295
    30.5.3 “脫鉤”&“鉤子”295
    30.6源代碼分析295
    30.6.1main()296
    30.6.2DebugLoop()296
    30.6.3EXIT_PROCESS_DEBUG_EVENT298
    30.6.4CREATE_PROCESS_DEBUG_EVENT-OnCreateProcess-DebugEvent()298
    30.6.5EXCEPTION_DEBUG_EVENT-OnException-DebugEvent()300

    第31章關於調試器305
    31.1OllyDbg305
    31.2IDA Pro305
    31.3WinDbg306

    第32章計算器顯示中文數字308
    32.1技術圖表308
    32.2選定目標API309
    32.3IAT鉤取工作原理312
    32.4練習示例314
    32.5源代碼分析316
    32.5.1DllMain()316
    32.5.2MySetWindowTextW()317
    32.5.3hook_iat()319
    32.6調試被注入的DLL文件322
    32.6.1DllMain()325
    32.6.2hook_iat()325
    32.6.3MySetWindowTextW()327
    32.7小結328

    第33章隱藏進程329
    33.1技術圖表329
    33.2API代碼修改技術的原理329
    33.2.1鉤取之前330
    33.2.2鉤取之後330
    33.3進程隱藏332
    33.3.1進程隱藏工作原理332
    33.3.2相關API332
    33.3.3隱藏技術的問題333
    33.4練習 #1(HideProc.exe,stealth.dll)333
    33.4.1運行notepad.exe、procexp.exe、taskmgr.exe334
    33.4.2運行HideProc.exe334
    33.4.3確認stealth.dll注入成功334
    33.4.4查看notepad.exe進程是否隱藏成功335
    33.4.5取消notepad.exe進程隱藏336
    33.5源代碼分析336
    33.5.1HideProc.cpp336
    33.5.2stealth.cpp338
    33.6全局API鉤取344
    33.6.1Kernel32.CreateProcess() API344
    33.6.2Ntdll.ZwResumeThread() API345
    33.7練習#2(HideProc2.exe,Stealth2.dll)345
    33.7.1復制stealth2.dll文件到%SYSTEM%文件夾中345
    33.7.2運行HideProc2.exe -hide346
    33.7.3運行ProcExp.exe¬epad.exe346
    33.7.4運行HideProc2.exe -show347
    33.8源代碼分析348
    33.8.1HideProc2.cpp348
    33.8.2stealth2.cpp348
    33.9利用“熱補丁”技術鉤取API350
    33.9.1API代碼修改技術的問題350
    33.9.2 “熱補丁”(修改7個字節代碼)350
    33.10練習 #3:stealth3.dll353
    33.11源代碼分析353
    33.12使用“熱補丁”API鉤取技術時需要考慮的問題356
    33.13小結357

    第34章高 級全局API鉤取:IE連接控制359
    34.1目標API359
    34.2IE進程結構361
    34.3關於全局API鉤取的概念362
    34.3.1常規API鉤取363
    34.3.2全局API鉤取363
    34.4ntdll!ZwResumeThread() API364
    34.5練習示例:控制IE網絡連接368
    34.5.1運行IE368
    34.5.2注入DLL369
    34.5.3創建新選項卡369
    34.5.4嘗試連接網站370
    34.5.5卸載DLL371
    34.5.6課外練習372
    34.6示例源代碼372
    34.6.1DllMain()372
    34.6.2NewInternetConnectW()373
    34.6.3NewZwResumeThread()374
    34.7小結375

    第35章優 秀分析工具的五種標準376
    35.1工具376
    35.2代碼逆向分析工程師376
    35.3優 秀分析工具的五種標準376
    35.3.1精簡工具數量377
    35.3.2工具功能簡單、使用方便377
    35.3.3完全掌握各種功能377
    35.3.4不斷升級更新377
    35.3.5理解工具的核心工作原理377
    35.4熟練程度的重要性377

    第五部分64位&Windows內核6

    第36章64位計算380
    36.164位計算環境380
    36.1.164位CPU380
    36.1.264位OS381
    36.1.3Win32 API381
    36.1.4WOW64381
    36.1.5練習:WOW64Test384
    36.2編譯64位文件385
    36.2.1Microsoft Windows SDK(Software Development Kit)386
    36.2.2設置Visual C++ 2010 Express環境386

    第37章x64處理器389
    37.1x64中新增或變更的項目389
    37.1.164位389
    37.1.2內存389
    37.1.3通用寄存器389
    37.1.4CALL/JMP指令390
    37.1.5函數調用約定391
    37.1.6棧 & 棧幀392
    37.2練習:Stack32.exe & Stack64.exe392
    37.2.1Stack32.exe392
    37.2.2Stack64.exe394
    37.3小結397

    第38章PE32+398
    38.1PE32+(PE+、PE64)398
    38.1.1IMAGE_NT_HEADERS398
    38.1.2IMAGE_FILE_HEADER398
    38.1.3IMAGE_OPTIONAL_HEADER399
    38.1.4IMAGE_THUNK_DATA401
    38.1.5IMAGE_TLS_DIRECTORY403

    第39章WinDbg405
    39.1WinDbg405
    39.1.1WinDbg的特征405
    39.1.2運行WinDbg406
    39.1.3內核調試407
    39.1.4WinDbg基本指令409

    第40章64位調試411
    40.1x64環境下的調試器411
    40.264位調試411
    40.3PE32:WOW64Test_x86.exe413
    40.3.1EP代碼414
    40.3.2Startup代碼414
    40.3.3main()函數415
    40.4PE32+:WOW64Test_x64.exe416
    40.4.1繫統斷點416
    40.4.2EP代碼417
    40.4.3Startup代碼418
    40.4.4main()函數420
    40.5小結423

    第41章ASLR424
    41.1Windows內核版本424
    41.2ASLR424
    41.3Visual C++424
    41.4ASLR.exe425
    41.4.1節區信息426
    41.4.2IMAGE_FILE_HEADER\\Characteristics427
    41.4.3IMAGE_OPTIONAL_HEADER\\DLL Characteristics428
    41.5練習:刪除ASLR功能428

    第42章內核6中的會話430
    42.1會話430
    42.2會話0隔離機制432
    42.3增強安全性432

    第43章內核6中的DLL注入433
    43.1再現DLL注入失敗433
    43.1.1源代碼433
    43.1.2注入測試435
    43.2原因分析436
    43.2.1調試 #1436
    43.2.2調試 #2438
    43.3練習:使CreateRemoteThread()正常工作440
    43.3.1方法 #1:修改CreateSuspended參數值440
    43.3.2方法 #2:操縱條件分支441
    43.4稍作整理443
    43.5InjectDll_new.exe443
    43.5.1InjectDll_new.cpp443
    43.5.2注入練習446

    第44章InjDll.exe:DLL注入專用工具448
    44.1InjDll.exe448
    44.1.1使用方法448
    44.1.2使用示例449
    44.1.3注意事項450

    第六部分高 級逆向分析技術

    第45章TLS回調函數452
    45.1練習 #1:HelloTls.exe452
    45.2TLS453
    45.2.1IMAGE_DATA_DIRECTORY[9]453
    45.2.2IMAGE_TLS_DIRECTORY454
    45.2.3回調函數地址數組454
    45.3TLS回調函數455
    45.4練習 #2:TlsTest.exe456
    45.4.1DLL_PROCESS_ATTACH457
    45.4.2DLL_THREAD_ATTACH457
    45.4.3DLL_THREAD_DETACH457
    45.4.4DLL_PROCESS_DETACH457
    45.5調試TLS回調函數458
    45.6手工添加TLS回調函數459
    45.6.1修改前的原程序460
    45.6.2設計規劃460
    45.6.3編輯PE文件頭461
    45.6.4設置IMAGE_TLS_DIRECTORY結構體463
    45.6.5編寫TLS回調函數464
    45.6.6**終完成464
    45.7小結465

    第46章TEB466
    46.1TEB466
    46.1.1TEB結構體的定義466
    46.1.2TEB結構體成員466
    46.1.3重要成員469
    46.2TEB訪問方法470
    46.2.1Ntdll.NtCurrentTeb()470
    46.2.2FS段寄存器471
    46.3小結472

    第47章PEB473
    47.1PEB473
    47.1.1PEB訪問方法473
    47.1.2PEB結構體的定義474
    47.1.3PEB結構體的成員475
    47.2PEB的重要成員477
    47.2.1PEB.BeingDebugged478
    47.2.2PEB.ImageBaseAddress478
    47.2.3PEB.Ldr479
    47.2.4PEB.ProcessHeap & PEB.NtGlobalFlag480
    47.3小結480

    第48章SEH481
    48.1SEH481
    48.2SEH練習示例 #1481
    48.2.1正常運行481
    48.2.2調試運行482
    48.3OS的異常處理方法484
    48.3.1正常運行時的異常處理方法484
    48.3.2調試運行時的異常處理方法484
    48.4異常485
    48.4.1EXCEPTION_ACCESS_VIOLATION(C0000005)486
    48.4.2EXCEPTION_BREAKPOINT(80000003)486
    48.4.3EXCEPTION_ILLEGAL_INSTRUCTION(C000001D)488
    48.4.4EXCEPTION_INT_DIVIDE_BY_ZERO(C0000094)488
    48.4.5EXCEPTION_SINGLE_STEP(80000004)489
    48.5SEH詳細說明489
    48.5.1SEH鏈489
    48.5.2異常處理函數的定義489
    48.5.3TEB.NtTib.ExceptionList491
    48.5.4SEH安裝方法492
    48.6SEH練習示例 #2(seh.exe)492
    48.6.1查看SEH鏈493
    48.6.2添加SEH493
    48.6.3發生異常494
    48.6.4查看異常處理器參數494
    48.6.5調試異常處理器496
    48.6.6刪除SEH498
    48.7設置OllyDbg選項499
    48.7.1忽略KERNEL32中發生的內存非法訪問異常500
    48.7.2向被調試者派送異常500
    48.7.3其他異常處理500
    48.7.4簡單練習500
    48.8小結501

    第49章IA-32指令502
    49.1IA-32指令502
    49.2常用術語502
    49.2.1反彙編器503
    49.2.2反編譯器504
    49.2.3反編譯簡介504
    49.3IA-32指令格式506
    49.3.1指令前綴507
    49.3.2操作碼507
    49.3.3ModR/M507
    49.3.4SIB508
    49.3.5位移508
    49.3.6立即數509
    49.4指令解析手冊509
    49.4.1下載IA-32用戶手冊509
    49.4.2打印指令解析手冊509
    49.5指令解析練習510
    49.5.1操作碼映射510
    49.5.2操作數511
    49.5.3ModR/M512
    49.5.4Group514
    49.5.5前綴516
    49.5.6雙字節操作碼518
    49.5.7移位值&立即數519
    49.5.8SIB520
    49.6指令解析課外練習524
    49.7小結524

    第七部分反調試技術

    第50章反調試技術526
    50.1反調試技術526
    50.1.1依賴性526
    50.1.2多種反調試技術526
    50.2反調試破解技術526
    50.3反調試技術的分類527
    50.3.1靜態反調試技術528
    50.3.2動態反調試技術528

    第51章靜態反調試技術529
    51.1靜態反調試的目的529
    51.2PEB529
    51.2.1BeingDebugged(+0x2)531
    51.2.2Ldr(+0xC)531
    51.2.3Process Heap(+0x18)532
    51.2.4NtGlobalFlag(+0x68)533
    51.2.5練習: StaAD_PEB.exe534
    51.2.6破解之法534
    51.3NtQueryInformationProcess()537
    51.3.1ProcessDebugPort(0x7)538
    51.3.2ProcessDebugObjectHandle(0x1E)539
    51.3.3ProcessDebugFlags(0x1F)539
    51.3.4練習:StaAD_NtQIP.exe540
    51.3.5破解之法540
    51.4NtQuerySystemInformation()542
    51.4.1SystemKernelDebugger-Information(0x23)544
    51.4.2練習:StaAD_NtQSI.exe545
    51.4.3破解之法545
    51.5NtQueryObject()545
    51.6ZwSetInformationThread()549
    51.6.1練習:StaAD_ZwSIT.exe549
    51.6.2破解之法550
    51.7TLS回調函數550
    51.8ETC551
    51.8.1練習:StaAD_FindWindow.exe551
    51.8.2破解之法551
    51.9小結553

    第52章動態反調試技術554
    52.1動態反調試技術的目的554
    52.2異常554
    52.2.1SEH554
    52.2.2SetUnhandledException-Filter()558
    52.3Timing Check562
    52.3.1時間間隔測量法562
    52.3.2RDTSC563
    52.4陷阱標志565
    52.4.1單步執行566
    52.4.2INT 2D569
    52.50xCC探測572
    52.5.1API斷點573
    52.5.2比較校驗和575

    第53章高 級反調試技術577
    53.1高 級反調試技術577
    53.2垃圾代碼577
    53.3擾亂代碼對齊578
    53.4加密/解密581
    53.4.1簡單的解碼示例581
    53.4.2復雜的解碼示例582
    53.4.3特殊情況:代碼重組584
    53.5Stolen Bytes(Remove OEP)584
    53.6API重定向587
    53.6.1原代碼588
    53.6.2API重定向示例 #1588
    53.6.3API重定向示例#2589
    53.7Debug Blocker(Self Debugging)593
    53.8小結595

    第八部分調試練習

    第54章調試練習1:服務598
    54.1服務進程的工作原理598
    54.1.1服務控制器598
    54.1.2服務啟動過程599
    54.2DebugMe1.exe示例講解600
    54.2.1安裝服務600
    54.2.2啟動服務602
    54.2.3源代碼604
    54.3服務進程的調試606
    54.3.1問題在於SCM606
    54.3.2調試器無所不能606
    54.3.3常用方法606
    54.4服務調試練習606
    54.4.1直接調試:強制設置EIP606
    54.4.2服務調試的常用方法:“附加”方式609
    54.5小結615

    第55章調試練習2:自我創建616
    55.1自我創建616
    55.2工作原理617
    55.2.1創建子進程(掛起模式)617
    55.2.2更改EIP618
    55.2.3恢復主線程618
    55.3示例程序源代碼618
    55.4調試練習620
    55.4.1需要考慮的事項620
    55.4.2JIT調試621
    55.4.3DebugMe2.exe622
    55.5小結626

    第56章調試練習3:PE映像切換627
    56.1PE映像627
    56.2PE映像切換628
    56.3示例程序:Fake.exe、Real.exe、DebugMe3.exe628
    56.4調試1631
    56.4.1Open 輸入運行參數631
    56.4.2main()函數632
    56.4.3SubFunc_1()634
    56.4.4CreateProcess(“fake.exe”,CREATE_SUSPENDED)635
    56.4.5SubFunc_2()635
    56.4.6SubFunc_3()641
    56.4.7ResumeThread()644
    56.5調試2644
    56.5.1思考645
    56.5.2向EP設置無限循環645
    56.6小結647

    第57章調試練習4:Debug Blocker648
    57.1Debug Blocker648
    57.2反調試特征648
    57.2.1父與子的關繫649
    57.2.2被調試進程不能再被其他調試器調試649
    57.2.3終止調試進程的同時也終止被調試進程649
    57.2.4調試器操作被調試者的代碼649
    57.2.5調試器處理被調試進程中發生的異常649
    57.3調試練習:DebugMe4.exe650
    57.4第 一次調試650
    57.4.1選定調試的起始位置650
    57.4.2main()650
    57.5第 二次調試651
    57.6第三次調試653
    57.7第四次調試656
    57.8第五次調試658
    57.8.1繫統斷點658
    57.8.2EXCEPTION_ILLEGAL_INSTRUCTION(1)659
    57.8.3EXCEPTION_ILLEGAL_INSTRUCTION(2)660
    57.9第六次調試661
    57.9.140121D(第 一個異常)661
    57.9.2401299(第 二個異常)665
    57.10第七次調試667
    57.10.1靜態方法668
    57.10.2動態方法669
    57.11小結673

    結束語674
    索引676
    查看全部↓



    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部