惡意代碼分析實(shí)戰(zhàn)是業(yè)內(nèi)公認(rèn)的一本內(nèi)容全面的惡意代碼分析指南,由邁克爾。斯科爾斯基和安德魯既編著。本書是一本教材,也是一本動手實(shí)踐的指南,不僅教會你如何分析惡意代碼(技術(shù)指導(dǎo)),而且還配備大量的實(shí)驗(yàn)練習(xí)、案例、答案以及詳細(xì)的分析過程,同時還包含很多用作案例的惡意代碼樣本,提供了豐富、安全的學(xué)習(xí)環(huán)境,相信本書的技術(shù)內(nèi)容、實(shí)驗(yàn)作業(yè)一定可以幫助你漸入佳境,歡迎免費(fèi)下載收藏。
內(nèi)容介紹
《惡意代碼分析實(shí)戰(zhàn)》是一本內(nèi)容全面的惡意代碼分析技術(shù)指南,其內(nèi)容兼顧理論,重在實(shí)踐,從不同方面為讀者講解惡意代碼分析的實(shí)用技術(shù)方法。全書共分為21章,覆蓋惡意代碼行為、惡意代碼靜態(tài)分析方法、惡意代碼動態(tài)分析方法、惡意代碼對抗與反對抗方法等,并包含了shellcode分析,C++惡意代碼分析,以及64位惡意代碼分析方法的介紹。
惡意代碼分析實(shí)戰(zhàn)pdf特色
本書多個章節(jié)后面都配有實(shí)驗(yàn)并配有實(shí)驗(yàn)的詳細(xì)講解與分析。通過每章的介紹及章后的實(shí)驗(yàn),本書一步一個臺階地幫助初學(xué)者從零開始建立起惡意代碼分析的基本技能。
惡意代碼分析實(shí)戰(zhàn)章節(jié)目錄
目 錄
第0章 惡意代碼分析技術(shù)入門1
0.1 惡意代碼分析目標(biāo)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 反病毒引擎掃描:實(shí)用的第一步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)鏈接、運(yùn)行時鏈接與動態(tài)鏈接12
1.6.2 使用Dependency Walker 工具探索動態(tài)鏈接函數(shù)13
1.6.3 導(dǎo)入函數(shù)14
1.6.4 導(dǎo)出函數(shù)15
1.7 靜態(tài)分析技術(shù)實(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 實(shí)驗(yàn)24
第2章 在虛擬機(jī)中分析惡意代碼 27
2.1 虛擬機(jī)的結(jié)構(gòu)27
2.2 創(chuàng)建惡意代碼分析機(jī)28
2.2.1 配置VMware29
2.2.2 斷開網(wǎng)絡(luò)30
2.2.3 創(chuàng)建主機(jī)模式網(wǎng)絡(luò)30
2.2.4 使用多個虛擬機(jī)30
2.3 使用惡意代碼分析機(jī)31
2.3.1 讓惡意代碼連接互聯(lián)網(wǎng)31
2.3.2 連接和斷開外圍設(shè)備32
2.3.3 拍攝快照32
2.3.4 從虛擬機(jī)傳輸文件33
2.4 使用VMware 進(jìn)行惡意代碼分析的風(fēng)險(xiǎn)34
2.5 記錄/重放:重復(fù)計(jì)算機(jī)運(yùn)行軌跡34
2.6 小結(jié)35
第3章 動態(tài)分析基礎(chǔ)技術(shù) 36
3.1 沙箱:簡便但粗糙的方法36
3.1.1 使用惡意代碼沙箱36
3.1.2 沙箱的缺點(diǎn)37
3.2 運(yùn)行惡意代碼38
3.3 進(jìn)程監(jiān)視器39
3.3.1 進(jìn)程監(jiān)視器的顯示40
3.3.2 進(jìn)程監(jiān)視器中的過濾41
3.4 使用進(jìn)程瀏覽器(Process Explorer)來查看進(jìn)程43
3.4.1 進(jìn)程瀏覽器的顯示43
3.4.2 使用驗(yàn)證選項(xiàng)44
3.4.3 比較字符串45
3.4.4 使用依賴遍歷器(Dependency Walker)45
3.4.5 分析惡意文檔46
3.5 使用Regshot 來比較注冊表快照46
3.6 模擬網(wǎng)絡(luò)47
3.6.1 使用ApateDNS47
3.6.2 使用Netcat 進(jìn)行監(jiān)視48
3.7 使用Wireshark 進(jìn)行數(shù)據(jù)包監(jiān)聽49
3.8 使用INetSim51
3.9 基礎(chǔ)動態(tài)分析工具實(shí)踐52
3.10 小結(jié)55
3.11 實(shí)驗(yàn)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 重復(fù)指令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 返回到默認(rèn)視圖83
5.2.4 導(dǎo)航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 使用圖形選項(xiàng)89
5.6 增強(qiáng)反匯編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 用插件擴(kuò)展IDA95
5.7.1 使用IDC 腳本96
5.7.2 使用IDAPython97
5.7.3 使用商業(yè)插件97
5.8 小結(jié)98
5.9 實(shí)驗(yàn)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 實(shí)驗(yàn)123
第7章 分析惡意Windows程序 126
7.1 Windows API126
7.1.1 類型和匈牙利表達(dá)法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 練習(xí)分析注冊表操作代碼132
7.2.6 使用。reg 文件的注冊表腳本133
7.3 網(wǎng)絡(luò)API133
7.3.1 伯克利兼容套接字134
7.3.2 網(wǎng)絡(luò)的服務(wù)器和客戶端134
7.3.3 WinINet API 135
7.4 跟蹤惡意代碼的運(yùn)行136
7.4.1 DLL136
7.4.2 進(jìn)程137
7.4.3 線程139
7.4.4 使用互斥量的進(jìn)程間協(xié)作142
7.4.5 服務(wù)143
7.4.6 組件對象模型145
7.4.7 異常:當(dāng)事情出錯時147
7.5 內(nèi)核與用戶模式148
7.6 原生API149
7.7 小結(jié)151
7.8 實(shí)驗(yàn)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 用斷點(diǎn)暫停執(zhí)行157
8.4 異常161
8.4.1 首次和二次異常處理162
8.4.2 常見異常162
8.5 使用調(diào)試器修改可執(zhí)行文件163
8.6 修改可執(zhí)行程序的實(shí)踐163
8.7 小結(jié)164
第9 章 OllyDbg 165
9.1 加載惡意代碼165
9.1.1 打開一個可執(zhí)行文件165
9.1.2 附加調(diào)試器到一個運(yùn)行程序166
9.2 OllyDbg 的接口167
9.3 內(nèi)存映射168
9.3.1 基地址重定位169
9.4 查看線程和堆棧170
9.5 執(zhí)行代碼171
9.6 斷點(diǎn)172
9.6.1 軟件斷點(diǎn)173
9.6.2 條件斷點(diǎn)174
9.6.3 硬件斷點(diǎn)175
9.6.4 內(nèi)存斷點(diǎn)175
9.7 加載DLL176
9.8 跟蹤177
9.8.1 標(biāo)準(zhǔn)回溯跟蹤177
9.8.2 堆棧調(diào)用跟蹤178
9.8.3 運(yùn)行跟蹤178
9.8.4 跟蹤Poison Ivy178
9.9 異常處理179
9.10 修補(bǔ)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 實(shí)驗(yàn)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 設(shè)置斷點(diǎn)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)試實(shí)踐198
10.5.1 用戶空間的代碼198
10.5.2 內(nèi)核模式的代碼200
10.5.3 查找驅(qū)動對象203
10.6 Rootkit204
10.6.1 Rootkit 分析實(shí)踐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 實(shí)驗(yàn)210
第 4 篇 惡意代碼功能篇
第11章 惡意代碼行為 214
11.1 下載器和啟動器214
11.2 后門(backdoor)214
11.2.1 反向shell215
11.2.2 遠(yuǎn)程控制工具216
11.2.3 僵尸網(wǎng)絡(luò)216
11.2.4 遠(yuǎn)程控制工具與僵尸網(wǎng)絡(luò)的比較217
11.3 登錄憑證竊密器217
11.3.1 GINA 攔截217
11.3.2 口令哈希轉(zhuǎn)儲218
11.3.3 擊鍵記錄221
11.4 存活機(jī)制223
11.4.1 Windows 注冊表223
11.4.2 特洛伊木馬化(Trojanized)系統(tǒng)二進(jìn)制文件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 實(shí)驗(yàn)232
第12章 隱蔽的惡意代碼啟動 234
12.1 啟動器(Launcher)234
12.2 進(jìn)程注入234
12.2.1 DLL 注入235
12.2.2 直接注入237
12.3 進(jìn)程替換238
12.4 鉤子(Hook)注入240
12.4.1 本地和遠(yuǎn)程鉤子(Hook)240
12.4.2 使用鉤子的擊鍵記錄器241
12.4.3 使用SetWindowsHookEx 241
12.4.4 目標(biāo)線程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 實(shí)驗(yàn)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 識別字符串和導(dǎo)入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 實(shí)驗(yàn)271
第14章 惡意代碼的網(wǎng)絡(luò)特征273
14.1 網(wǎng)絡(luò)應(yī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)絡(luò)應(yīng)對措施278
14.3.1 使用Snort 進(jìn)行入侵檢測278
14.3.2 深入觀察279
14.4 結(jié)合動態(tài)和靜態(tài)分析技術(shù)282
14.4.1 過度分析的危險(xiǎn)283
14.4.2 在眾目睽睽下隱藏283
14.4.3 理解周邊代碼286
14.4.4 尋找網(wǎng)絡(luò)操作代碼287
14.4.5 了解網(wǎng)絡(luò)內(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 實(shí)驗(yàn)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 相同目標(biāo)的跳轉(zhuǎn)指令306
15.3.2 固定條件的跳轉(zhuǎn)指令307
15.3.3 無效的反匯編指令308
15.3.4 用IDA Pro 對指令進(jìn)行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 實(shí)驗(yàn)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í)行代碼校驗(yàn)和檢查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 實(shí)驗(yàn)336
第17章 反虛擬機(jī)技術(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 反虛擬機(jī)技術(shù)343
17.2.2 使用No Pill 技術(shù)344
17.2.3 查詢I/O 通信端口344
17.2.4 使用str 指令345
17.2.5 反虛擬機(jī)的x86 指令346
17.2.6 在IDA Pro 中高亮顯示反虛擬機(jī)代碼347
17.2.7 使用ScoopyNG347
17.3 調(diào)整設(shè)置348
17.4 虛擬機(jī)逃逸349
17.5 小結(jié)349
17.6 實(shí)驗(yàn)349
第18章 加殼與脫殼 352
18.1 剖析加殼352
18.1.1 脫殼存根353
18.1.2 加載可執(zhí)行文件353
18.1.3 解析導(dǎo)入函數(shù)表353
18.1.4 尾部跳轉(zhuǎn)354
18.1.5 圖示脫殼過程354
18.2 識別加殼程序355
18.2.1 加殼程序的標(biāo)識355
18.2.2 熵計(jì)算356
18.3 脫殼選項(xiàng)356
18.4 自動脫殼356
18.5 手動脫殼357
18.5.1 使用導(dǎo)入重構(gòu)器重構(gòu)導(dǎo)入表358
18.5.2 查找OEP359
18.5.3 手動修復(fù)導(dǎo)入表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 實(shí)驗(yàn)369
第 6 篇 高級專題
第19章 shellcode 分析 372
19.1 加載shellcode 進(jìn)行分析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 文件導(dǎo)出數(shù)據(jù)380
19.4.3 使用散列過的導(dǎo)出符號名382
19.5 一個完整的Hello World 例子383
19.6 shellcode 編碼385
19.7 空指令雪橇387
19.8 找到shellcode387
19.9 小結(jié)388
19.10 實(shí)驗(yàn)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 實(shí)驗(yàn)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 實(shí)驗(yàn)410
附錄A 常見Windows 函數(shù)列表 412
附錄B 流行的惡意代碼分析工具列表424
附錄C 實(shí)驗(yàn)作業(yè)參考解答435
附錄D 致青春,基礎(chǔ)軟件開發(fā)的中國故事 691
附錄E Syser 操作入門 695
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
- 下載地址
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- 得間免費(fèi)小說電腦版 v5.3.0.372.58M / 簡體中文
- cnki全球?qū)W術(shù)快報(bào)電腦版 v1.0.1135.99M / 簡體中文
- 網(wǎng)易新聞電腦版 v113.197.68M / 簡體中文
- 瀟湘書院電腦版 v2.3.11.888官方版49.65M / 簡體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- PHP語言精粹電子書 pdf掃描版25.72M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- 本草綱目 5.34M / 簡體中文
- C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡體中文