首 頁
手機版

惡意代碼分析實戰(zhàn) pdf掃描版

一本內(nèi)容全面的惡意代碼分析指南

  • 軟件大小:107.64M
  • 軟件語言:簡體中文
  • 軟件類型:國產(chǎn)軟件
  • 軟件授權(quán):免費軟件
  • 更新時間:2024/04/28
  • 軟件類別:電子閱讀
  • 應用平臺:Windows11,Windows10,Windows8,Windows7
網(wǎng)友評分:5.4分
網(wǎng)友評論 下載地址 收藏該頁
本地下載

惡意代碼分析實戰(zhàn)是業(yè)內(nèi)公認的一本內(nèi)容全面的惡意代碼分析指南,由邁克爾。斯科爾斯基和安德魯既編著。本書是一本教材,也是一本動手實踐的指南,不僅教會你如何分析惡意代碼(技術(shù)指導),而且還配備大量的實驗練習、案例、答案以及詳細的分析過程,同時還包含很多用作案例的惡意代碼樣本,提供了豐富、安全的學習環(huán)境,相信本書的技術(shù)內(nèi)容、實驗作業(yè)一定可以幫助你漸入佳境,歡迎免費下載收藏。

內(nèi)容介紹

《惡意代碼分析實戰(zhàn)》是一本內(nèi)容全面的惡意代碼分析技術(shù)指南,其內(nèi)容兼顧理論,重在實踐,從不同方面為讀者講解惡意代碼分析的實用技術(shù)方法。全書共分為21章,覆蓋惡意代碼行為、惡意代碼靜態(tài)分析方法、惡意代碼動態(tài)分析方法、惡意代碼對抗與反對抗方法等,并包含了shellcode分析,C++惡意代碼分析,以及64位惡意代碼分析方法的介紹。

惡意代碼分析實戰(zhàn)pdf特色

本書多個章節(jié)后面都配有實驗并配有實驗的詳細講解與分析。通過每章的介紹及章后的實驗,本書一步一個臺階地幫助初學者從零開始建立起惡意代碼分析的基本技能。

惡意代碼分析實戰(zhàn)章節(jié)目錄

目 錄

第0章 惡意代碼分析技術(shù)入門1

0.1 惡意代碼分析目標1

0.2 惡意代碼分析技術(shù)2

0.2.1 靜態(tài)分析基礎(chǔ)技術(shù)2

0.2.2 動態(tài)分析基礎(chǔ)技術(shù)2

0.2.3 靜態(tài)分析高級技術(shù)2

0.2.4 動態(tài)分析高級技術(shù)2

0.3 惡意代碼類型3

0.4 惡意代碼分析通用規(guī)則4

第 1 篇 靜態(tài)分析

第1章 靜態(tài)分析基礎(chǔ)技術(shù) 6

1.1 反病毒引擎掃描:實用的第一步6

1.2 哈希值:惡意代碼的指紋7

1.3 查找字符串7

1.4 加殼與混淆惡意代碼9

1.4.1 文件加殼10

1.4.2 使用PEiD 檢測加殼10

1.5 PE 文件格式11

1.6 鏈接庫與函數(shù)12

1.6.1 靜態(tài)鏈接、運行時鏈接與動態(tài)鏈接12

1.6.2 使用Dependency Walker 工具探索動態(tài)鏈接函數(shù)13

1.6.3 導入函數(shù)14

1.6.4 導出函數(shù)15

1.7 靜態(tài)分析技術(shù)實踐15

1.7.1 PotentialKeylogger.exe:一個未加殼的可執(zhí)行文件15

1.7.2 PackedProgram.exe:窮途末路18

1.8 PE 文件頭與分節(jié)18

1.8.1 使用PEview 來分析PE 文件19

1.8.2 使用Resource Hacker 工具來查看資源節(jié)22

1.8.3 使用其他的PE 文件工具23

1.8.4 PE 文件頭概述23

1.9 小結(jié)24

1.10 實驗24

第2章 在虛擬機中分析惡意代碼 27

2.1 虛擬機的結(jié)構(gòu)27

2.2 創(chuàng)建惡意代碼分析機28

2.2.1 配置VMware29

2.2.2 斷開網(wǎng)絡30

2.2.3 創(chuàng)建主機模式網(wǎng)絡30

2.2.4 使用多個虛擬機30

2.3 使用惡意代碼分析機31

2.3.1 讓惡意代碼連接互聯(lián)網(wǎng)31

2.3.2 連接和斷開外圍設備32

2.3.3 拍攝快照32

2.3.4 從虛擬機傳輸文件33

2.4 使用VMware 進行惡意代碼分析的風險34

2.5 記錄/重放:重復計算機運行軌跡34

2.6 小結(jié)35

第3章 動態(tài)分析基礎(chǔ)技術(shù) 36

3.1 沙箱:簡便但粗糙的方法36

3.1.1 使用惡意代碼沙箱36

3.1.2 沙箱的缺點37

3.2 運行惡意代碼38

3.3 進程監(jiān)視器39

3.3.1 進程監(jiān)視器的顯示40

3.3.2 進程監(jiān)視器中的過濾41

3.4 使用進程瀏覽器(Process Explorer)來查看進程43

3.4.1 進程瀏覽器的顯示43

3.4.2 使用驗證選項44

3.4.3 比較字符串45

3.4.4 使用依賴遍歷器(Dependency Walker)45

3.4.5 分析惡意文檔46

3.5 使用Regshot 來比較注冊表快照46

3.6 模擬網(wǎng)絡47

3.6.1 使用ApateDNS47

3.6.2 使用Netcat 進行監(jiān)視48

3.7 使用Wireshark 進行數(shù)據(jù)包監(jiān)聽49

3.8 使用INetSim51

3.9 基礎(chǔ)動態(tài)分析工具實踐52

3.10 小結(jié)55

3.11 實驗56

第 2 篇 靜態(tài)分析高級技術(shù)篇

第4章 x86 反匯編速成班 60

4.1 抽象層次60

4.2 逆向工程62

4.3 x86 體系結(jié)構(gòu)62

4.3.1 內(nèi)存63

4.3.2 指令64

4.3.3 操作碼和字節(jié)序64

4.3.4 操作數(shù)65

4.3.5 寄存器65

4.3.6 簡單指令67

4.3.7 棧70

4.3.8 條件指令73

4.3.9 分支指令73

4.3.10 重復指令74

4.3.11 C 語言主函數(shù)和偏移76

4.3.12 更多信息:Intel x86 Architecture Manual77

4.4 小結(jié)78

第5章 IDA Pro 79

5.1 加載一個可執(zhí)行文件79

5.2 IDA Pro 接口81

5.2.1 反匯編窗口模式81

5.2.2 對分析有用的窗口83

5.2.3 返回到默認視圖83

5.2.4 導航IDA Pro 83

5.2.5 搜索85

5.3 使用交叉引用86

5.3.1 代碼交叉引用87

5.3.2 數(shù)據(jù)交叉引用88

5.4 分析函數(shù)88

5.5 使用圖形選項89

5.6 增強反匯編91

5.6.1 重命名位置91

5.6.2 注釋92

5.6.3 格式化操作數(shù)92

5.6.4 使用命名的常量93

5.6.5 重新定義代碼和數(shù)據(jù)94

5.7 用插件擴展IDA95

5.7.1 使用IDC 腳本96

5.7.2 使用IDAPython97

5.7.3 使用商業(yè)插件97

5.8 小結(jié)98

5.9 實驗98

第6章 識別匯編中的C代碼結(jié)構(gòu) 100

6.1 全局與局部變量101

6.2 反匯編算術(shù)操作102

6.3 識別if 語句104

6.3.1 用IDA Pro 圖形化分析函數(shù)105

6.3.2 識別嵌套的if 語句106

6.4 識別循環(huán)107

6.4.1 找到for 循環(huán)107

6.4.2 找到while 循環(huán)109

6.5 理解函數(shù)調(diào)用約定110

6.5.1 cdecl110

6.5.2 stdcall 111

6.5.3 fastcall 111

6.5.4 壓棧與移動 111

6.6 分析switch 語句112

6.6.1 If 樣式112

6.6.2 跳轉(zhuǎn)表114

6.7 反匯編數(shù)組118

6.8 識別結(jié)構(gòu)體119

6.9 分析鏈表遍歷121

6.10 小結(jié)123

6.11 實驗123

第7章 分析惡意Windows程序 126

7.1 Windows API126

7.1.1 類型和匈牙利表達法126

7.1.2 句柄127

7.1.3 文件系統(tǒng)函數(shù)127

7.1.4 特殊文件128

7.2 Windows 注冊表129

7.2.1 注冊表根鍵130

7.2.2 Regedit131

7.2.3 自啟動程序131

7.2.4 常用注冊表函數(shù)131

7.2.5 練習分析注冊表操作代碼132

7.2.6 使用。reg 文件的注冊表腳本133

7.3 網(wǎng)絡API133

7.3.1 伯克利兼容套接字134

7.3.2 網(wǎng)絡的服務器和客戶端134

7.3.3 WinINet API 135

7.4 跟蹤惡意代碼的運行136

7.4.1 DLL136

7.4.2 進程137

7.4.3 線程139

7.4.4 使用互斥量的進程間協(xié)作142

7.4.5 服務143

7.4.6 組件對象模型145

7.4.7 異常:當事情出錯時147

7.5 內(nèi)核與用戶模式148

7.6 原生API149

7.7 小結(jié)151

7.8 實驗151

第 3 篇 動態(tài)分析高級技術(shù)篇

第8章 動態(tài)調(diào)試 154

8.1 源代碼級與匯編級的調(diào)試器154

8.2 內(nèi)核模式與用戶模式調(diào)試155

8.3 使用調(diào)試器155

8.3.1 單步調(diào)試155

8.3.2 單步跳過(Stepping-Over)和單步跳入(Stepping-Into)156

8.3.3 用斷點暫停執(zhí)行157

8.4 異常161

8.4.1 首次和二次異常處理162

8.4.2 常見異常162

8.5 使用調(diào)試器修改可執(zhí)行文件163

8.6 修改可執(zhí)行程序的實踐163

8.7 小結(jié)164

第9 章 OllyDbg 165

9.1 加載惡意代碼165

9.1.1 打開一個可執(zhí)行文件165

9.1.2 附加調(diào)試器到一個運行程序166

9.2 OllyDbg 的接口167

9.3 內(nèi)存映射168

9.3.1 基地址重定位169

9.4 查看線程和堆棧170

9.5 執(zhí)行代碼171

9.6 斷點172

9.6.1 軟件斷點173

9.6.2 條件斷點174

9.6.3 硬件斷點175

9.6.4 內(nèi)存斷點175

9.7 加載DLL176

9.8 跟蹤177

9.8.1 標準回溯跟蹤177

9.8.2 堆棧調(diào)用跟蹤178

9.8.3 運行跟蹤178

9.8.4 跟蹤Poison Ivy178

9.9 異常處理179

9.10 修補180

9.11 分析shellcode181

9.12 協(xié)助功能182

9.13 插件182

9.13.1 OllyDump183

9.13.2 調(diào)試器隱藏插件183

9.13.3 命令行184

9.13.4 書簽185

9.14 腳本調(diào)試185

9.15 小結(jié)186

9.16 實驗187

第10章 使用WinDbg 調(diào)試內(nèi)核 189

10.1 驅(qū)動與內(nèi)核代碼189

10.2 安裝內(nèi)核調(diào)試191

10.3 使用WinDbg193

10.3.1 從內(nèi)存中讀取194

10.3.2 使用算術(shù)操作符194

10.3.3 設置斷點194

10.3.4 列舉模塊195

10.4 微軟符號表195

10.4.1 搜索符號195

10.4.2 查看結(jié)構(gòu)信息196

10.4.3 配置Windows 符號表198

10.5 內(nèi)核調(diào)試實踐198

10.5.1 用戶空間的代碼198

10.5.2 內(nèi)核模式的代碼200

10.5.3 查找驅(qū)動對象203

10.6 Rootkit204

10.6.1 Rootkit 分析實踐205

10.6.2 中斷208

10.7 加載驅(qū)動209

10.8 Windows Vista、Windows 7 和x64 版本的內(nèi)核問題209

10.9 小結(jié)210

10.10 實驗210

第 4 篇 惡意代碼功能篇

第11章 惡意代碼行為 214

11.1 下載器和啟動器214

11.2 后門(backdoor)214

11.2.1 反向shell215

11.2.2 遠程控制工具216

11.2.3 僵尸網(wǎng)絡216

11.2.4 遠程控制工具與僵尸網(wǎng)絡的比較217

11.3 登錄憑證竊密器217

11.3.1 GINA 攔截217

11.3.2 口令哈希轉(zhuǎn)儲218

11.3.3 擊鍵記錄221

11.4 存活機制223

11.4.1 Windows 注冊表223

11.4.2 特洛伊木馬化(Trojanized)系統(tǒng)二進制文件225

11.4.3 DLL 加載順序劫持227

11.5 提權(quán)228

11.5.1 使用SeDebugPrivilege228

11.6 隱藏它的蹤跡――用戶態(tài)的Rootkit229

11.6.1 IAT Hook 230

11.6.2 Inline Hook 231

11.7 小結(jié)232

11.8 實驗232

第12章 隱蔽的惡意代碼啟動 234

12.1 啟動器(Launcher)234

12.2 進程注入234

12.2.1 DLL 注入235

12.2.2 直接注入237

12.3 進程替換238

12.4 鉤子(Hook)注入240

12.4.1 本地和遠程鉤子(Hook)240

12.4.2 使用鉤子的擊鍵記錄器241

12.4.3 使用SetWindowsHookEx 241

12.4.4 目標線程241

12.5 Detours 242

12.6 APC 注入243

12.6.1 用戶模式下APC 注入244

12.6.2 內(nèi)核模式的APC 注入245

12.7 小結(jié)246

12.8 實驗246

第13章 數(shù)據(jù)加密 248

13.1 分析加密算法的目的248

13.2 簡單的加密算法248

13.2.1 凱撒密碼249

13.2.2 XOR249

13.2.3 其他一些簡單的加密策略254

13.2.4 Base64255

13.3 常見的加密算法258

13.3.1 識別字符串和導入259

13.3.2 查找加密常量259

13.3.3 查找高熵值內(nèi)容261

13.4 自定義加密262

13.4.1 識別自定義加密263

13.4.2 攻擊者使用自定義加密的優(yōu)勢265

13.5 解密265

13.5.1 自解密265

13.5.2 手動執(zhí)行解密函數(shù)266

13.5.3 使用通用的解密規(guī)范267

13.6 小結(jié)270

13.7 實驗271

第14章 惡意代碼的網(wǎng)絡特征273

14.1 網(wǎng)絡應對措施273

14.1.1 在原始環(huán)境中觀察惡意代碼273

14.1.2 惡意行為的痕跡274

14.1.3 OPSEC=操作安全性275

14.2 安全地調(diào)查在線攻擊者275

14.2.1 間接性策略275

14.2.2 獲取IP 地址和域名信息276

14.3 基于內(nèi)容的網(wǎng)絡應對措施278

14.3.1 使用Snort 進行入侵檢測278

14.3.2 深入觀察279

14.4 結(jié)合動態(tài)和靜態(tài)分析技術(shù)282

14.4.1 過度分析的危險283

14.4.2 在眾目睽睽下隱藏283

14.4.3 理解周邊代碼286

14.4.4 尋找網(wǎng)絡操作代碼287

14.4.5 了解網(wǎng)絡內(nèi)容的來源288

14.4.6 硬編碼數(shù)據(jù) vs. 臨時數(shù)據(jù)289

14.4.7 確定和利用編碼步驟289

14.4.8 創(chuàng)建特征291

14.4.9 分析解析例程292

14.4.10 針對多個元素294

14.5 了解攻擊者的意圖295

14.6 小結(jié)296

14.7 實驗296

第 5 篇 逆向工程

第15章 對抗反匯編 300

15.1 何謂對抗反匯編技術(shù)300

15.2 挫敗反匯編算法301

15.2.1 線性反匯編302

15.2.2 面向代碼流的反匯編303

15.3 對抗反匯編技術(shù)306

15.3.1 相同目標的跳轉(zhuǎn)指令306

15.3.2 固定條件的跳轉(zhuǎn)指令307

15.3.3 無效的反匯編指令308

15.3.4 用IDA Pro 對指令進行NOP替換311

15.4 混淆控制流圖312

15.4.1 函數(shù)指針問題312

15.4.2 在IDA Pro 中添加代碼的交叉引用313

15.4.3 濫用返回指針313

15.4.4 濫用結(jié)構(gòu)化異常處理315

15.5 挫敗棧幀分析317

15.6 小結(jié)320

15.7 實驗320

第16章 反調(diào)試技術(shù)322

16.1 探測Windows 調(diào)試器322

16.1.1 使用Windows API322

16.1.2 手動檢測數(shù)據(jù)結(jié)構(gòu)324

16.1.3 系統(tǒng)痕跡檢測326

16.2 識別調(diào)試器的行為327

16.2.1 INT 掃描327

16.2.2 執(zhí)行代碼校驗和檢查328

16.2.3 時鐘檢測328

16.3 干擾調(diào)試器的功能330

16.3.1 使用TLS回調(diào)330

16.3.2 使用異常332

16.3.3 插入中斷333

16.4 調(diào)試器漏洞334

16.4.1 PE 頭漏洞334

16.4.2 OutputDebugString漏洞336

16.5 小結(jié)336

16.6 實驗336

第17章 反虛擬機技術(shù) 338

17.1 VMware 痕跡338

17.1.1 繞過VMware 痕跡的探測340

17.1.2 探測內(nèi)存痕跡342

17.2 查找漏洞指令342

17.2.1 使用Red Pill 反虛擬機技術(shù)343

17.2.2 使用No Pill 技術(shù)344

17.2.3 查詢I/O 通信端口344

17.2.4 使用str 指令345

17.2.5 反虛擬機的x86 指令346

17.2.6 在IDA Pro 中高亮顯示反虛擬機代碼347

17.2.7 使用ScoopyNG347

17.3 調(diào)整設置348

17.4 虛擬機逃逸349

17.5 小結(jié)349

17.6 實驗349

第18章 加殼與脫殼 352

18.1 剖析加殼352

18.1.1 脫殼存根353

18.1.2 加載可執(zhí)行文件353

18.1.3 解析導入函數(shù)表353

18.1.4 尾部跳轉(zhuǎn)354

18.1.5 圖示脫殼過程354

18.2 識別加殼程序355

18.2.1 加殼程序的標識355

18.2.2 熵計算356

18.3 脫殼選項356

18.4 自動脫殼356

18.5 手動脫殼357

18.5.1 使用導入重構(gòu)器重構(gòu)導入表358

18.5.2 查找OEP359

18.5.3 手動修復導入表363

18.6 常見殼的技巧與竅門364

18.6.1 UPX 364

18.6.2 PECompact 365

18.6.3 ASPack365

18.6.4 Petite 365

18.6.5 WinUpack 366

18.6.6 Themida367

18.7 不完全脫殼情況下的分析368

18.8 加殼DLL 368

18.9 小結(jié)369

18.10 實驗369

第 6 篇 高級專題

第19章 shellcode 分析 372

19.1 加載shellcode 進行分析372

19.2 位置無關(guān)代碼373

19.3 識別執(zhí)行位置373

19.3.1 使用call/pop 指令374

19.3.2 使用fnstenv 指令376

19.4 手動符號解析377

19.4.1 在內(nèi)存中找到kernel32.dll378

19.4.2 解析PE 文件導出數(shù)據(jù)380

19.4.3 使用散列過的導出符號名382

19.5 一個完整的Hello World 例子383

19.6 shellcode 編碼385

19.7 空指令雪橇387

19.8 找到shellcode387

19.9 小結(jié)388

19.10 實驗389

第20章 C++代碼分析 391

20.1 面向?qū)ο蟮木幊陶Z言391

20.1.1 this 指針392

20.1.2 重載與修飾394

20.1.3 繼承(Inheritance)和函數(shù)重寫(Overriding)395

20.2 虛函數(shù)和非虛函數(shù)396

20.2.1 虛函數(shù)表的使用398

20.2.2 識別虛函數(shù)表399

20.3 創(chuàng)建和銷毀對象400

20.4 小結(jié)401

20.5 實驗401

第21章 64 位惡意代碼 403

21.1 為什么需要64 位惡意代碼403

21.2 x64 架構(gòu)上的差別404

21.2.1 x64 調(diào)用約定和棧使用上的差別406

21.2.2 64 位異常處理408

21.3 在Windows 64 位上的Windows 32 位408

21.4 惡意代碼功能上的64位提示409

21.5 小結(jié)410

21.6 實驗410

附錄A 常見Windows 函數(shù)列表 412

附錄B 流行的惡意代碼分析工具列表424

附錄C 實驗作業(yè)參考解答435

附錄D 致青春,基礎(chǔ)軟件開發(fā)的中國故事 691

附錄E Syser 操作入門 695

使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請務必下載pdf閱讀器

3、安裝后,在打開解壓得出的pdf文件

4、雙擊進行閱讀

收起介紹展開介紹
  • 下載地址
惡意代碼分析實戰(zhàn) pdf掃描版

有問題? 點此報錯

發(fā)表評論

0條評論