鱼C论坛

 找回密码
 立即注册
查看: 15006|回复: 20

[软件安全] 【进阶】《恶意代码分析实战》

[复制链接]
发表于 2016-11-25 21:49:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
. C$ L- O  y+ D/ L. U! O. B
5 z) m6 ^: ]" I: a! @) k$ N
书名:《恶意代码分析实战》7 a0 @- c) w4 U' `8 {
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)3 s% Z. B4 T! l' f& h+ D- v0 y
译者:诸葛建伟,姜辉,张光凯 6 ]+ Q; M( `2 M, b  [
出版社:电子工业出版社
8 A; I% j: @. h8 \, I出版年:2014年4月1日(第1版)
/ W/ F% o1 Q  D  [! a" k3 o定价:128.00元/ z5 g+ U( t5 U; M+ R. x8 Z
装帧:平装
0 b5 v! A6 |. _" a9 H0 Q; A8 d4 JISBN:9787121224683* T" _# k: h% m1 o& C& n
. c6 ]" r, b2 D7 [& M+ h- ?  p
购买链接:
7 g6 ?& w  }$ A* q
2 V% R- T: h2 O* n5 `
( s8 k5 y5 _. g. ]/ z
亚马逊 -> 传送门# j7 ~) b$ j  Z) k" X* X
5 V; m0 M. ]' q8 p' T0 n9 ^7 b' M# n
当当网 -> 传送门9 Z. v! b9 l6 r0 [7 B0 v7 z9 A8 N0 c
! y) a% W% n( E
京东 -> 传送门9 u- c* L. o2 i1 \! S+ b4 V4 ]/ q
2 y; R; f4 J9 ?" a
天猫 -> 传送门- j$ r% N* ^& W; R; l
% `/ a$ Y) \' S  i. y" N

- Q9 w' |: S" b# D6 L内容简介:/ F4 G/ J7 l6 ^& z. E$ {
- N' y2 e( T7 x4 v! V4 @9 o0 e

' P( U: i. e8 n) o5 _* B
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
" _* R5 s% y4 U0 C
3 ?+ ~/ M& t; v) t2 I4 W《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
& J6 C+ h& L" B/ F% R
2 }+ }! m, ~' T5 x: U6 s+ P% ~针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;) f4 R, E# Q) F  Z: P' L. G
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
# r& @# Y5 i/ t+ G$ V( V
* n1 {; f2 u& w8 d5 c" s目录:
; P2 |$ @2 c; Z/ C
; S0 @. B5 P" v% H% _; t. M

: i: s# Y4 w* D第0章 恶意代码分析技术入门1
& X2 X6 Q: `* F* G* G1 D/ d+ l: k" ^9 y  k
0.1 恶意代码分析目标1
7 r& D2 q) P/ B9 O6 p6 n0.2 恶意代码分析技术2
  {5 ^# W0 P: S# X- s5 V0.2.1 静态分析基础技术2
1 S$ q4 F$ Y3 \$ L. G0.2.2 动态分析基础技术2$ v8 C' J( z) Q& t9 j# Z6 q" q2 ^
0.2.3 静态分析高级技术2
! p! O- B  `) R1 E0 X7 d7 t' \# w0.2.4 动态分析高级技术2
2 N. s- ^& q5 t% V- L8 i) E0.3 恶意代码类型3; b9 n9 z/ M8 \. q; }8 X
0.4 恶意代码分析通用规则4
/ p% c! I: v, [: m, }. ]
. Y; @* {" m6 Q5 N6 t8 ]% S0 V0 x( \+ r' F$ Q( H6 ~
第 1 篇 静态分析
. X! r7 L* m' A4 `0 g  x0 ~: r" {. z4 d* A
第1章 静态分析基础技术 65 j1 |! c0 g9 C' ^' z* P+ v, k8 H/ ~
3 @- @( |7 r: R+ [$ V) B
1.1 反病毒引擎扫描:实用的第一步6
7 A: S5 R: J) {7 p3 |; E; G: l* ^1.2 哈希值:恶意代码的指纹7
( l/ w% _! q; S/ J% ]  I6 m1.3 查找字符串7
3 m7 @) `9 u0 b/ r2 M4 h, l6 ?; d1.4 加壳与混淆恶意代码9
8 X1 y9 W5 I) k$ |$ w5 l1.4.1 文件加壳10( U3 U4 ]$ {; ]- V! ]. w2 g
1.4.2 使用PEiD 检测加壳10
) ]+ c' U2 d8 D- q+ h0 w6 Z/ J8 h1.5 PE 文件格式11. a* q2 P9 ^9 \2 z- K
1.6 链接库与函数12
( u9 x& v: y6 Q3 Y5 u; E* y2 s1.6.1 静态链接、运行时链接与动态链接12# ]& p9 |, k& |8 P6 b
1.6.2 使用Dependency Walker 工具探索动态链接函数13! C% M% G8 F( j; g, {2 A* n0 ]
1.6.3 导入函数14* q# h. C3 c: J4 |5 Y% r
1.6.4 导出函数157 A; B0 J# R! [2 c# _" w& L5 t6 ]$ N
1.7 静态分析技术实践151 j) v$ n9 w& E, G" h4 y; R4 W
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15+ a, d3 s8 X; t1 p# J
1.7.2 PackedProgram.exe:穷途末路188 J/ B6 R) j& g2 }  Q( |
1.8 PE 文件头与分节18
$ X$ L5 |# a! G! o: U1.8.1 使用PEview 来分析PE 文件19* L% p& l8 L- ]: ^
1.8.2 使用Resource Hacker 工具来查看资源节22
$ c4 W" U4 {" I9 w9 j4 u* B1.8.3 使用其他的PE 文件工具232 H) z; s; Z0 W1 d. U( Y0 v' B/ K' d
1.8.4 PE 文件头概述239 i5 V% K7 Z- m2 e/ [
1.9 小结244 o# o. g7 H1 h% G! y' u* \/ U/ ?
1.10 实验24- P: Q% ^$ x- e, o

; b& {$ p; |4 S第2章 在虚拟机中分析恶意代码 273 |% ^( N$ v9 u+ t; Q9 d' l, M% c
) r, C) S+ I0 J0 K# Z' S) O
2.1 虚拟机的结构27% r. }8 ]! {4 X7 Q! w- ?
2.2 创建恶意代码分析机28
# H5 \8 b/ m( a; z0 F2.2.1 配置VMware293 D% Y0 O# E  @3 F
2.2.2 断开网络30
7 o5 K3 I2 H. D% u: y$ ]2.2.3 创建主机模式网络30
, J; I6 s! @/ `2.2.4 使用多个虚拟机308 Q' E$ `4 S- f/ H8 B0 f7 i1 U- p
2.3 使用恶意代码分析机31
3 v, C# ^5 w, E1 S8 Q& [2.3.1 让恶意代码连接互联网31$ ?: I+ x6 |7 k
2.3.2 连接和断开外围设备32
0 Y+ H) L; x7 v- E2.3.3 拍摄快照32. M: ^+ R1 O, W# x6 P
2.3.4 从虚拟机传输文件33/ R: W4 M. y7 x! i  _+ E
2.4 使用VMware 进行恶意代码分析的风险34
1 S4 M* U( A1 r- R5 d2.5 记录/重放:重复计算机运行轨迹34
9 G! n) p7 f8 w/ F$ S9 i0 K2.6 小结35( T+ l. Z6 \: d( o

) h& @$ r. y" H第3章 动态分析基础技术 36

4 p7 r4 c. F$ [1 _$ r
. r% G4 O# J) F1 V3.1 沙箱:简便但粗糙的方法36
, h) z* [/ n1 g$ K3.1.1 使用恶意代码沙箱36
3 S$ ^7 t/ P; t6 q" n4 T3 _3.1.2 沙箱的缺点37
/ h# R% y! Z% u2 S2 l' d8 b3.2 运行恶意代码38
5 B- I2 e" w: N4 N3 s9 d1 W' Q3.3 进程监视器39
+ S( O8 u6 y4 _; i0 {) @3.3.1 进程监视器的显示40
2 I2 J1 N9 t' s5 g3 V0 q+ X3.3.2 进程监视器中的过滤413 {0 W) \2 N8 ?( D3 j; l: e
3.4 使用进程浏览器(Process Explorer)来查看进程43# ^, Z1 w& e% B% k9 L7 s4 g
3.4.1 进程浏览器的显示43) \  _& O% o: i
3.4.2 使用验证选项448 I9 `: _" y* W% Q
3.4.3 比较字符串45- w' J3 I. M! \5 T6 p
3.4.4 使用依赖遍历器(Dependency Walker)45" k) T% S" d, v" i) j3 a  T. @1 h4 f
3.4.5 分析恶意文档46
. L5 D6 X( c* X9 [3.5 使用Regshot 来比较注册表快照46
/ X# T3 F6 p+ O' `3.6 模拟网络471 f( B  z# }$ e& [2 X5 o
3.6.1 使用ApateDNS479 x  F+ d9 W) C3 V& |& j6 y* N
3.6.2 使用Netcat 进行监视48# A& b& G  `4 I$ I, z) D- @
3.7 使用Wireshark 进行数据包监听49
+ \  V1 `% ]% d( \% g" e3.8 使用INetSim51* I# h& c6 |- O) a0 N# }- @- L
3.9 基础动态分析工具实践52; D* e( R0 r( n. i  H
3.10 小结55
4 I! z2 k* \1 l1 ~, R4 P; F3.11 实验56: w/ {5 z" [9 I: G
1 ?. o( g- D, S+ J8 P# Z. T

* @/ Z" g2 t0 h7 P1 F9 {3 N/ C第 2 篇 静态分析高级技术篇
7 V# o* P6 S9 f) L
6 ]: w- h8 m& ]第4章 x86 反汇编速成班 60; l  X& ]8 P7 V6 M, N1 x9 M7 P( d
% a* m; N4 Z. ^9 f+ g
4.1 抽象层次60% E( u! k9 F+ z7 B6 |5 ~* y
4.2 逆向工程62
8 g: s; b8 |3 L; V4.3 x86 体系结构624 s) ]8 y  Q! v1 A! J7 s
4.3.1 内存63
& S7 D* g3 C3 n5 D9 u; N' _4.3.2 指令64. b" ]8 i& _& |% b6 Z1 K
4.3.3 操作码和字节序64
+ {1 w& ?* b2 Y  @$ P' o% ~4.3.4 操作数656 x5 K" D: b. \4 F! h
4.3.5 寄存器65% W8 G0 k- z  n
4.3.6 简单指令67
( J  F0 m* j' h5 }1 b4.3.7 栈70
; A( K' n+ k8 b; R/ A6 Y4.3.8 条件指令73& f2 ?; J! V3 y: t3 s! s
4.3.9 分支指令73& j8 A' U* k# N2 G
4.3.10 重复指令74) l9 v# P- u" a
4.3.11 C 语言主函数和偏移76/ S$ M* N8 K- g$ R  N
4.3.12 更多信息:Intel x86 Architecture Manual77
3 R5 b! P8 g: a; ~- G# F6 l4.4 小结785 P8 A3 H8 V) _. B/ P' A0 Y$ i

+ s1 N2 N3 w6 U# C' P3 K第5章 IDA Pro 79
) Q# ]5 h6 E& Z$ k( k$ d- R
: a- p" \5 W7 p, A5.1 加载一个可执行文件79; p2 u- C" z. P
5.2 IDA Pro 接口81
1 e% v) w, t; l; o  N, i* q! k5.2.1 反汇编窗口模式81- Q0 k! ^5 L+ C: u( U
5.2.2 对分析有用的窗口837 D- L; V5 E3 x; i1 D6 Q$ K6 d3 H
5.2.3 返回到默认视图837 f5 W) y  k% S$ `
5.2.4 导航IDA Pro 83
3 l$ j& S: O- a8 D- ]! n! o5.2.5 搜索85- e8 V* c1 j) H3 \) D5 ]0 P
5.3 使用交叉引用86! ], S4 b2 Q; G- N+ B# ^
5.3.1 代码交叉引用87
% t, G" c6 S' c/ t5.3.2 数据交叉引用888 H$ D6 M- k+ N% P. q2 t3 C
5.4 分析函数88
: o' ?; @" J0 c5.5 使用图形选项89
& p; Q: U+ N) x5.6 增强反汇编918 z" l' j0 I$ P
5.6.1 重命名位置91; {' Z0 z% S5 ?9 B( K& l9 @7 B/ g
5.6.2 注释92  \# Y) x8 H, @& e9 ?  P6 ~
5.6.3 格式化操作数92; j6 S1 ]! Q" l# F2 c
5.6.4 使用命名的常量93, {' n4 H$ s8 C
5.6.5 重新定义代码和数据941 k2 C% x3 J2 c* G
5.7 用插件扩展IDA951 }+ ~" v8 q! ?6 b6 b% x" }9 w: Z
5.7.1 使用IDC 脚本961 O1 f% J7 `1 g( K+ `2 Q; }, x
5.7.2 使用IDAPython97
7 u9 l2 ~4 t; m& |; Z# `" u5.7.3 使用商业插件97
0 I- a* `; R3 k8 Y5.8 小结98% ?) N3 P/ h+ _- }
5.9 实验98
& ?: g! X' x( O' u
1 d% d0 w6 P5 F" V- {0 x% C第6章 识别汇编中的C代码结构 100
* ?( Q3 ~6 r" O5 p5 a1 M
0 k1 u2 j+ {, t0 D' ]
6.1 全局与局部变量101
: t4 R- G3 c# _) E% Z6.2 反汇编算术操作102. z/ i# c5 S6 }! c
6.3 识别if 语句104- X5 J2 |* u9 o; c4 h5 U* p' m
6.3.1 用IDA Pro 图形化分析函数105
! R0 r( v. Y( ]. P8 `  |5 t6.3.2 识别嵌套的if 语句106
  y1 F2 q) L# m& w& x6.4 识别循环1072 r  d5 @; r1 Y$ z, n" T
6.4.1 找到for 循环107- `! S& K; Y* q* G9 a% K. {# m
6.4.2 找到while 循环109
- m) A3 q7 @5 u: t7 M6 v# P1 K3 Q6.5 理解函数调用约定110( J2 X. ^* M% E8 S* i: _) r4 a
6.5.1 cdecl110! @& T+ C: N, l) n: D
6.5.2 stdcall 1114 Z$ c5 d) K" i. O( O& F
6.5.3 fastcall 1113 {) g$ P; b9 q
6.5.4 压栈与移动 111
8 R# Y  X- G- X6.6 分析switch 语句112+ G( z) M  N3 R7 c
6.6.1 If 样式112
: u( T* c9 `9 O" E6 n) t# t6.6.2 跳转表114$ E6 [" `# F3 y: O
6.7 反汇编数组118: v* @& j1 ?2 f( H' h6 n5 F1 Z
6.8 识别结构体119; A. M+ ?/ b; x# i2 v9 E; U4 x
6.9 分析链表遍历1210 c. X9 C. x8 t' O! X9 I0 m- `
6.10 小结123! ~& G) v+ P: z3 r$ ]3 G5 x
6.11 实验123& W" P: S2 C6 m  v
  e3 {' U" c, {2 z
第7章 分析恶意Windows程序 126
3 F* }7 Y# o8 d
* ]7 d$ ]! [: P
7.1 Windows API126/ R! o) r: V0 Y( X, u$ L, V; J
7.1.1 类型和匈牙利表达法126
, o$ c' z9 O+ a. v% Z* r7.1.2 句柄127) T7 K( r) j' R, j  a/ L  V" q
7.1.3 文件系统函数127" x" H  T4 c$ h& [* u" l
7.1.4 特殊文件128
( c/ a% F% ]3 t5 j7.2 Windows 注册表1295 e8 a+ V9 p; p3 T& b5 Y% U, T5 v
7.2.1 注册表根键130
. O: Y/ R" m+ n1 w7.2.2 Regedit131
0 z& e! E: E" i! D: c- u7.2.3 自启动程序131
* [9 U( u$ h) D4 W" h9 x" F7.2.4 常用注册表函数131
6 x$ r5 l8 t( o1 q5 `7.2.5 练习分析注册表操作代码132
4 `, {1 w" J9 C3 V$ P7.2.6 使用.reg 文件的注册表脚本133
5 p1 T& U" l% q& |. o1 G" X* e: V7.3 网络API133
1 q' q4 ~; I7 y& l1 U7.3.1 伯克利兼容套接字134; n3 l) r1 ?( C4 `, o0 u- p, ^
7.3.2 网络的服务器和客户端134
' Y% n* n' ~0 C8 b* s, T+ M5 p9 V7.3.3 WinINet API 1352 ]# V4 O. ~4 Z% ^
7.4 跟踪恶意代码的运行136
7 Y0 q' X) L! |/ \/ I' p( S7.4.1 DLL136
% \. g3 r5 C* a; W) V7.4.2 进程137" Q( ?4 U/ [+ J1 C# R
7.4.3 线程139
# P3 A- s; P& E( m% V2 W0 A, H7.4.4 使用互斥量的进程间协作142
2 ?) W1 k" s* n3 l7.4.5 服务143
" M5 ^" D4 @- {( D( b. d" r7.4.6 组件对象模型145
1 f3 @% n% L7 q. c! G7.4.7 异常:当事情出错时147
- W+ D  _8 f4 c: R0 d6 V7.5 内核与用户模式148
. Q1 W% t$ o6 ]5 n, y7.6 原生API149
% v8 g/ L% N/ ?6 j+ Y7.7 小结1511 ]0 {8 i8 g; v, r; Q/ Q
7.8 实验151) `2 ^) L  T6 k' f  z/ q5 {
# U2 K9 B6 `% Z) t
" t0 ?3 Y# b* A' e* U: o7 ^
第 3 篇 动态分析高级技术篇  X! W9 }4 u$ Z4 l, Q
% z3 ~2 k. n: j- j" [
第8章 动态调试 154

3 W' i, l2 Y# Z" U/ S, h) }9 K; K: O
8.1 源代码级与汇编级的调试器1545 N3 y7 B2 F; W; D7 ?& f  n
8.2 内核模式与用户模式调试155
3 L5 t6 K: B! M5 H' P/ E8.3 使用调试器155
6 W; m$ V1 d& Q, f& S8.3.1 单步调试155! i, B3 r2 F5 _, k7 c! J+ y
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156' l; x$ v; ?0 `* k6 i+ N
8.3.3 用断点暂停执行157
2 l7 U6 a9 {4 _8.4 异常161
8 c) e- S& Q4 l. p8.4.1 首次和二次异常处理162$ Q8 l! D/ d  {5 V7 V
8.4.2 常见异常162
3 u$ r% G5 P8 L  \* m8.5 使用调试器修改可执行文件163
9 t1 G. c0 d- @6 |. @  X4 b* J8.6 修改可执行程序的实践163
+ i0 Y; A* F& |5 o) U, K" E, |8.7 小结164
! V; d; ?) b  p  j% U/ c" h6 c9 F' L) z2 K; Y4 p; b$ t: P
第9 章 OllyDbg 165

( P3 Y+ E; [% q* j
4 j+ ^& y5 W1 Z; J! C3 i- R$ w$ {8 ^9.1 加载恶意代码1656 c$ h4 ]6 q) i/ h  a. y/ i
9.1.1 打开一个可执行文件165
  u( o% O8 z( z9.1.2 附加调试器到一个运行程序166
' u. j6 e4 \5 q3 R, P9.2 OllyDbg 的接口167
3 y! q* m) P# p9.3 内存映射1686 ~- a  X' c* j. V
9.3.1 基地址重定位169$ H* o# D( U- i4 r( Z7 |
9.4 查看线程和堆栈170' }6 d! Z$ T: n0 Y4 L( Z
9.5 执行代码171
5 K6 H( C* M" m! Q  L9.6 断点172
  m# u2 D& f( N, I7 Z9.6.1 软件断点173
2 F3 I5 p- U4 g9.6.2 条件断点174
3 C/ E, t' a' u( J9.6.3 硬件断点175
3 |9 L: M1 y/ n+ H) w3 {* C9.6.4 内存断点175
1 S9 _4 c+ @$ l, g9.7 加载DLL176: k& y6 l* m$ T2 Y
9.8 跟踪177
3 l  v. y* M' f2 u, Y0 {. @9.8.1 标准回溯跟踪177! _9 b$ J: R9 W. a/ P/ m
9.8.2 堆栈调用跟踪178/ W2 a! {2 p0 o- u+ f
9.8.3 运行跟踪1782 p4 O0 h5 ^. ?( y
9.8.4 跟踪Poison Ivy178* n% B3 y. }, W9 }  g: L
9.9 异常处理1796 e  J2 x$ v5 x/ m7 Z1 o
9.10 修补180* m4 o# o' |* B% E8 q6 T
9.11 分析shellcode181# H$ t6 i( Z8 W/ _0 ~- ~' @4 N& w
9.12 协助功能182% O* Y6 }6 W0 K3 Y
9.13 插件182, z  \) W9 X4 D# m( m
9.13.1 OllyDump1838 I6 d8 r% j# [. [
9.13.2 调试器隐藏插件1835 L/ f: Y/ w0 L4 h5 S! P, i/ e8 |
9.13.3 命令行184
$ t5 h  i* y. R5 D9 ^9.13.4 书签185
2 `3 [! q0 x9 G" v' P8 I5 H& S9.14 脚本调试185
/ O) s& |9 L5 g! a5 X/ A( m9.15 小结186) Z/ ]/ n* }4 m4 Q/ H
9.16 实验187" G0 m2 R/ ], s% q& _0 F
8 x; e" ]6 X& t% {  k
第10章 使用WinDbg 调试内核 189
2 t* p+ l2 b* Y6 p- ^5 `. J' V9 h  B+ i' c& {1 n
10.1 驱动与内核代码1891 U0 |! w( v' J1 ^% a+ }
10.2 安装内核调试1914 R5 f, J2 b) {) T5 a' R- i( ?
10.3 使用WinDbg1930 t  N0 L. Q4 [( I3 D: V3 V0 x
10.3.1 从内存中读取194
. P5 R) |# H0 X  J& ?( e6 u10.3.2 使用算术操作符194. Y6 ^- @- Z" @. k9 T0 ]
10.3.3 设置断点194
; R. {4 a" f$ R' H. o" U# A10.3.4 列举模块195" q3 j; s( d1 G6 u; ^# X4 s: X% S* G. R
10.4 微软符号表195
* g: ~  e# l/ d/ M$ T  |- x10.4.1 搜索符号195
+ S3 \1 O) b* E, ~* `10.4.2 查看结构信息1961 Y5 t( s5 F9 e- \9 ]) |; b
10.4.3 配置Windows 符号表198
1 l; r# f5 m* `; N10.5 内核调试实践198
5 N8 a7 L  q/ H! {10.5.1 用户空间的代码198
# ?: ~- @0 P, L5 B- m: S10.5.2 内核模式的代码200
0 s5 M# Z6 J% }+ x' ?3 U( b5 |0 \% N10.5.3 查找驱动对象203
5 ^  z. }# {; \, ?4 H* k- g10.6 Rootkit2046 M# n8 V, m% @, p
10.6.1 Rootkit 分析实践205
* N9 M( D2 ^  w0 i4 G10.6.2 中断208
9 V% J' c0 B7 L! j  S7 q10.7 加载驱动209
% f& W# Q% W# u# l8 \$ X- y/ Y10.8 Windows Vista、Windows 7 和x64 版本的内核问题209! D; w, x7 P/ z# b% v$ c
10.9 小结210+ a  b' b% O" l  I* B! e7 P- g
10.10 实验2103 i' B3 Q4 y0 A0 @, c

. _* W1 y" K- q- O6 D  J
3 v' ~) O* e' \+ I第 4 篇 恶意代码功能篇
4 ^* ^8 F/ w5 o+ z) K  O
/ P8 t) q! f0 d- m5 m: x- l第11章 恶意代码行为 214  O% P5 e. K8 [1 `
7 o$ h- R. J- ~$ \
11.1 下载器和启动器214
/ x& ~) |; `% W2 U2 p- w11.2 后门(backdoor)2141 `6 x* y7 v6 t7 X8 o& m: g
11.2.1 反向shell215
4 n' ?/ u( D3 h7 |  }11.2.2 远程控制工具216( `! @9 e5 b3 ]0 Q# }
11.2.3 僵尸网络216
+ \9 \+ k8 t% r7 Q- c9 j% c0 q11.2.4 远程控制工具与僵尸网络的比较217
- {6 I* `/ V, ]9 _11.3 登录凭证窃密器217
; D; h$ u( r  L7 B11.3.1 GINA 拦截217
1 d. n& g& B* h& I7 a: e# I3 K11.3.2 口令哈希转储218- ^: V  R! p! H* [) \2 N* t
11.3.3 击键记录2217 B2 {" k$ z: @5 m( o2 t/ t, g
11.4 存活机制223
* l0 k. d- l8 f" f( f11.4.1 Windows 注册表223
  V% n+ _% L' g* H1 y11.4.2 特洛伊木马化(Trojanized)系统二进制文件225' d  D& |9 C5 }. F
11.4.3 DLL 加载顺序劫持227
9 E( N; F4 X+ ~7 h% ~11.5 提权228% H# y" W( |& o" `. y5 ~3 @1 L
11.5.1 使用SeDebugPrivilege228
  {! G# }% r0 t: l; k# b; `11.6 隐藏它的踪迹——用户态的Rootkit229- E8 k7 j5 `- W% h2 @
11.6.1 IAT Hook 2302 z  s3 e8 i" s' X7 _
11.6.2 Inline Hook 231" |4 j3 w& e# u6 i" ?
11.7 小结2326 j0 P& y3 h1 @6 d$ T0 S
11.8 实验232* }2 |3 Z* G" N

7 L; m! W; M- R9 q# J第12章 隐蔽的恶意代码启动 234
& N6 c! C( \4 i) G9 F* g  M  T5 I) {) U, P
12.1 启动器(Launcher)234. z( D. {( \9 A
12.2 进程注入234
. h* G. u+ a. B' G3 P! m12.2.1 DLL 注入235( U% T1 u& K, v
12.2.2 直接注入237# Z7 Q! I+ T4 h& ~7 H. _9 t
12.3 进程替换238- G, L- `. V) k0 g$ {. |+ |( p2 {
12.4 钩子(Hook)注入240/ \5 p4 R' T  U* @
12.4.1 本地和远程钩子(Hook)2409 q, u) W- J  F2 D4 A# {8 v. i
12.4.2 使用钩子的击键记录器241
# _9 C* E" @) n2 q12.4.3 使用SetWindowsHookEx 241
- c% ]% m' U& ]+ m8 D0 [12.4.4 目标线程241  V4 U" z2 U) y# F
12.5 Detours 242# l+ E) C5 r0 e3 ]
12.6 APC 注入243
1 K3 ]! N$ J  e12.6.1 用户模式下APC 注入244, @, k: `/ [) A3 V
12.6.2 内核模式的APC 注入245
  f+ U1 I# x8 U0 J5 q! b12.7 小结246
% J9 v8 ^" z+ O5 b12.8 实验246
# _$ r' h7 s- |' P# b, O+ H+ V6 b4 p* s
第13章 数据加密 248: Z: D# M# D2 {; t0 u
' D. u# }8 K4 t) i2 D6 O( E
13.1 分析加密算法的目的248
+ H' Y- C8 z& j3 ^1 d! V13.2 简单的加密算法248) @3 O& M: \* C( D) q" s& L
13.2.1 凯撒密码249( a9 P$ U1 U% N" j) {
13.2.2 XOR249
9 p. T; I% x1 a) }13.2.3 其他一些简单的加密策略254
. Z+ P$ h: W5 j: L" B/ P; w13.2.4 Base64255
. O2 u9 {* M/ K13.3 常见的加密算法258
* i' W% m& L2 R, V+ h4 w13.3.1 识别字符串和导入259
9 [( _' I, q' K" H! v: R& C13.3.2 查找加密常量259! P( u7 e" p6 f
13.3.3 查找高熵值内容261( n' y2 W3 y7 K) l2 q0 w, ?0 v
13.4 自定义加密262
, R. V0 ~( r8 m13.4.1 识别自定义加密263
* x! o; o& S# n13.4.2 攻击者使用自定义加密的优势265$ o6 v0 ]+ |5 r8 d# p
13.5 解密265
6 Z8 {/ s# e* n13.5.1 自解密265
. G4 {( S  V/ f) w$ ^13.5.2 手动执行解密函数266
& B' k! V/ s6 d4 a13.5.3 使用通用的解密规范267
/ z; s8 e  k) _; t3 X13.6 小结270
" @7 L  Y$ `- T  ]13.7 实验271
- a* b6 v+ I4 n$ j' }3 ^" R# k0 o9 t; P/ E7 d" G% {. c' H% e
第14章 恶意代码的网络特征273, `! p" L5 [* n3 D) Z: S
7 d8 [+ T1 ^; X' t& i, k
14.1 网络应对措施273
# u5 K# q+ n7 ^8 i3 A, l2 |14.1.1 在原始环境中观察恶意代码273
/ ~6 D# R) A- n14.1.2 恶意行为的痕迹274* q% y7 D2 C. {& w2 q: [
14.1.3 OPSEC=操作安全性275  t2 w( d- M) Z. H& T3 f/ A/ T
14.2 安全地调查在线攻击者275' N, A0 e9 P! a+ C
14.2.1 间接性策略275
8 ]9 q* @. F! o14.2.2 获取IP 地址和域名信息276
0 x; M8 b2 N5 \9 L0 K14.3 基于内容的网络应对措施278- w1 O1 r* b! k# h; J
14.3.1 使用Snort 进行入侵检测278: Z+ i( L6 H# t" t1 z8 n
14.3.2 深入观察279
* O! S% ]: N! n+ z8 H4 D: e14.4 结合动态和静态分析技术282
9 D+ S) G4 |6 d* R% m. q3 i14.4.1 过度分析的危险283- e! f% L7 C* v$ z2 f/ W
14.4.2 在众目睽睽下隐藏283
" n: M$ y" K: ~14.4.3 理解周边代码286
' K3 Q. s; U+ z! t. E7 A' L# \14.4.4 寻找网络操作代码287
! ^4 U5 y* {) F4 K* a/ k4 @14.4.5 了解网络内容的来源288; w7 o; h5 k; O
14.4.6 硬编码数据 vs. 临时数据289
/ X1 k8 V5 j1 Z+ t# s3 @& z14.4.7 确定和利用编码步骤289
" e( W( ^7 E/ P8 q14.4.8 创建特征291
1 ]3 H  S5 K1 r: D6 K14.4.9 分析解析例程292
5 N5 o& `( X/ z7 g8 ~# ^: [14.4.10 针对多个元素294% I% K. J3 o; m
14.5 了解攻击者的意图295
  T) e3 a6 R/ `  }, v6 B14.6 小结2968 D9 s5 y- ^' h% H' z" B( e0 j2 l
14.7 实验296
; G, Q+ P2 n+ G. l
6 C/ A6 F# R3 S4 M0 v6 a. v  k& F) H1 V
第 5 篇 逆向工程
6 }" J* f* Q  t, A6 j% D
: z" a( C' g$ j- |& f第15章 对抗反汇编 300
1 R7 l1 f+ ]& Y7 V6 a) P1 E6 ?
8 N7 j8 V1 E# {' O0 d15.1 何谓对抗反汇编技术300
3 Q/ b( F, G/ G7 \/ f15.2 挫败反汇编算法301" f4 A& p+ w$ u$ A- F) T
15.2.1 线性反汇编302& ]" X4 k$ Q& b; @
15.2.2 面向代码流的反汇编303) s" c' w' G- }
15.3 对抗反汇编技术3065 B4 s" x* P. q8 J1 w9 D
15.3.1 相同目标的跳转指令3065 D& X- |# i& v- N: P& {) Z
15.3.2 固定条件的跳转指令307
* S9 y: j: f1 B15.3.3 无效的反汇编指令308# |& R# s1 t1 L/ J
15.3.4 用IDA Pro 对指令进行NOP替换311- C3 ^' ]' @$ ?; D9 r2 b8 I
15.4 混淆控制流图312
% Z3 c: O3 @5 {5 g8 Q2 O% X15.4.1 函数指针问题312
7 S$ [, [( D8 e. ?/ f; r15.4.2 在IDA Pro 中添加代码的交叉引用313
1 A* M: z- A. N) n1 _15.4.3 滥用返回指针313/ M4 E9 w" h0 E& M
15.4.4 滥用结构化异常处理315# }% w- ~' R- h
15.5 挫败栈帧分析317% ~0 V1 o6 g" K* ?
15.6 小结320% K9 C0 |8 v" S! U! o: M% b
15.7 实验320
$ k8 V0 r# k1 O. ~
# g- i) S: `9 P& r5 I  G. C$ m第16章 反调试技术322
+ z) \" Y8 S! A* g' _
7 n3 C( H7 s9 t; ?/ H2 ~16.1 探测Windows 调试器3226 v; [6 b7 }% r3 n% Y. {
16.1.1 使用Windows API322
8 N/ N/ s2 q& Y16.1.2 手动检测数据结构324) h1 g. p6 x) G- ^* P1 e: ^) o
16.1.3 系统痕迹检测326
' H& A1 C5 D0 }" f9 g0 @16.2 识别调试器的行为3272 ^6 C9 P( F/ K' _
16.2.1 INT 扫描3275 V* z* |; w0 n0 o1 L
16.2.2 执行代码校验和检查3288 C$ S) B1 u0 ]" @# V
16.2.3 时钟检测3285 E$ a* x! g  L
16.3 干扰调试器的功能330/ I8 `4 G0 {9 R- Z9 F: I2 d) S" s( y
16.3.1 使用TLS回调3302 z2 N$ J& P2 p% _; f
16.3.2 使用异常332. H/ s7 }% m9 y; y: ?, l
16.3.3 插入中断333  ^; A0 |* e; Z
16.4 调试器漏洞334* X3 I* }" e5 T9 S! Q
16.4.1 PE 头漏洞334* ]+ q3 X6 Y5 d7 J  H
16.4.2 OutputDebugString漏洞336# O) j0 W$ B- G! {2 s5 v
16.5 小结336) h+ E! [6 t) Z- q& x% F$ J
16.6 实验336
: c( h0 F# N& }+ D+ W; t
" V" V- }0 g# z) E第17章 反虚拟机技术 338
/ N2 W, r4 T7 Y/ d5 D4 v
  J+ u1 o) W9 }- x. |& d17.1 VMware 痕迹338
5 @# u, L1 y+ p4 {1 b4 y6 Y; w17.1.1 绕过VMware 痕迹的探测340
3 A1 ^3 L: ^: W' g8 Q17.1.2 探测内存痕迹342
6 L: Q8 S, Q. Y; Q7 G* B17.2 查找漏洞指令342# d$ `; ^3 J5 v5 m
17.2.1 使用Red Pill 反虚拟机技术343
& P8 Q$ n# y9 V( v17.2.2 使用No Pill 技术344
# j( z5 d. g% o+ P% _/ g, g17.2.3 查询I/O 通信端口344) k8 M: t; A% M/ U1 d" M
17.2.4 使用str 指令345  C* g& `) w# ^. {
17.2.5 反虚拟机的x86 指令3467 a; R# U7 ]# c; |$ U8 a7 ]
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
# S4 b% E* F4 i1 p& x17.2.7 使用ScoopyNG347+ m2 n! R1 N) ]# X% l- B5 C4 B. h
17.3 调整设置348# k1 T. D# g) }# z4 b! q
17.4 虚拟机逃逸3493 t0 [& T5 ^) w0 D
17.5 小结349  ?! Y8 g7 W* Q
17.6 实验349* L# R+ U6 i" N* r0 a" k' r
1 Z' e0 k7 s" \' o% A# Q$ V. R
第18章 加壳与脱壳 352: x. H' }! F% M: I8 x" j
1 W  O; Z6 f: O% C8 p9 i
18.1 剖析加壳352
0 O* f9 c) P4 [/ Q18.1.1 脱壳存根3535 c+ B9 @- P3 \- M6 g0 O+ }
18.1.2 加载可执行文件353
: T) A+ @- P/ I18.1.3 解析导入函数表353% p8 ^" [, R6 E  x2 e
18.1.4 尾部跳转354. }0 h/ N! N/ V, L& T) S
18.1.5 图示脱壳过程354
9 d$ X5 O$ V2 \9 G18.2 识别加壳程序3554 V$ l" z& j: {# ?; `) X
18.2.1 加壳程序的标识355
1 F) f) H  x9 ?4 S3 W18.2.2 熵计算356( {# x: L, Q: d- u: Y; u1 h& |
18.3 脱壳选项356
1 @$ |% b0 c* U1 b% Z1 \, D18.4 自动脱壳356
  ~. m5 K: G; H, ?4 f) h( w/ p& u18.5 手动脱壳357
2 B" E4 |+ [! t' Y18.5.1 使用导入重构器重构导入表358
; W$ J! c" d, r+ i8 D18.5.2 查找OEP359
. d. M4 c- H# l; ?18.5.3 手动修复导入表3637 d( ?: _: C5 r4 j
18.6 常见壳的技巧与窍门3642 G/ i2 Y5 y4 L* `9 X5 s9 L
18.6.1 UPX 364
* O0 G0 C0 P  H3 I+ P6 e! s18.6.2 PECompact 365
) r; Y3 y+ Q7 w* b  n3 h18.6.3 ASPack365
) Y3 C8 D# c5 k4 ~% }& H. w18.6.4 Petite 365
8 j" b' L% ]3 G/ M8 m0 z18.6.5 WinUpack 366
* {! s2 K# s5 F% q18.6.6 Themida3671 R1 G* C! ~* S8 `
18.7 不完全脱壳情况下的分析368
  U/ i& t5 F3 H" \18.8 加壳DLL 368* [" r/ \8 n0 @$ `* G8 q
18.9 小结369
7 `% t: \6 Z* y( N9 c/ ^18.10 实验369! }  ?4 N( u* }$ e8 c& R5 N. V

# F. t+ r* D6 l6 K
: B( a  K: G& \" v/ g/ L. o6 `7 Q/ V! A第 6 篇 高级专题
+ R% @9 h, @/ q2 O* a. H2 M, ]& A; h8 ]  c" k7 i% H2 |; C; n
第19章 shellcode 分析 3723 ^( w4 ^1 G- T! U- @
/ V' |6 x" o; h. F
19.1 加载shellcode 进行分析3727 i1 N) B1 v, o. ^
19.2 位置无关代码373, a; x2 `  w& K" J# p4 h
19.3 识别执行位置373$ H- b9 J4 n/ P2 x3 b  X
19.3.1 使用call/pop 指令374: `5 v+ y! ~5 J, G, F
19.3.2 使用fnstenv 指令376, t6 F$ E; v$ q& z' \
19.4 手动符号解析377/ x% s5 Z" O) I
19.4.1 在内存中找到kernel32.dll378
2 q6 e  J4 b6 K+ }% F, G  Q19.4.2 解析PE 文件导出数据380# C3 j* V" g  {3 l4 G$ Y: B  P
19.4.3 使用散列过的导出符号名382+ u& G1 z! t+ [! s$ L* h9 ], E+ q4 [
19.5 一个完整的Hello World 例子383
6 U) F& t5 c' P  [6 ^' r! N" d% I19.6 shellcode 编码385
" ~' J8 g* r$ V* E19.7 空指令雪橇387
' s8 ^) f! x8 K2 I' I19.8 找到shellcode387# P0 L9 g5 R" e- m, B$ f# b
19.9 小结388
1 \* ]' g$ w8 I' W19.10 实验389
6 |& R) |% r2 O; y) C1 X- s* m" r$ U7 G/ f  x; N
第20章 C++代码分析 391( |6 P: ?4 C6 _! g3 |* l

* ^, z. x7 C3 u8 H+ X9 w4 F20.1 面向对象的编程语言3918 i+ l+ q/ D/ }8 `9 I
20.1.1 this 指针3921 b' M# j- b6 V9 h
20.1.2 重载与修饰394
9 _, |! c' m" i7 o4 l& \  g4 |4 x8 D1 l20.1.3 继承(Inheritance)和函数重写(Overriding)3953 I1 l. a: L- m! D" v" m
20.2 虚函数和非虚函数3966 v( P& a5 J$ S) ~  \! K
20.2.1 虚函数表的使用398- W) ~* ]4 [9 F- @
20.2.2 识别虚函数表399
# ^+ ]' r, A" K7 G& x2 z9 w1 X20.3 创建和销毁对象400
' d9 ~1 Z1 s- J0 B20.4 小结4017 y5 t2 ^7 X$ d9 U9 u$ {
20.5 实验401% s$ k8 `* }" G% G( d) P! J# N

% K' f) ?+ ?4 d9 |( Z, u9 s4 F/ S, T; W第21章 64 位恶意代码 403
5 L' e! {* t. e% q9 ]
- {& ]0 I6 w+ ^5 @& q! z; L21.1 为什么需要64 位恶意代码403
5 c  x9 [% o: c" v$ U: c4 p+ R21.2 x64 架构上的差别404
, W5 |( G% Q% W+ r; z+ v# ^( C9 |21.2.1 x64 调用约定和栈使用上的差别406! @0 v& E! h: `9 H
21.2.2 64 位异常处理4082 }" r# D4 r' ?
21.3 在Windows 64 位上的Windows 32 位408
# X* G" q- @' W4 S5 J; p* u* W21.4 恶意代码功能上的64位提示409& }% `+ T) G) S" A1 M# K9 Q8 Z3 A
21.5 小结410
; z, l$ |0 e1 n21.6 实验410$ G9 d/ X2 H  Z  n9 L# R$ j
9 v! q& M! N  q" ^6 u0 i- l
附录A 常见Windows 函数列表 412
; q2 f$ \, _0 t/ e! x+ f; _
" g: S5 F% S  H' t8 Q( |2 ^3 J附录B 流行的恶意代码分析工具列表424$ O1 f1 R) y) {' _
" X& h2 g' i& _
附录C 实验作业参考解答4351 L  a$ I# c1 O" X8 v

! L0 ]7 t1 e9 G- Q9 h- R附录D 致青春,基础软件开发的中国故事 691# V0 F# N9 ^1 i3 r2 L5 x

: C; x7 h8 H$ T* m3 ?( M+ R+ @附录E Syser 操作入门 695# F0 k2 t* A. t: j- D# r9 V
. c7 I: r2 n3 {" {. U# |
* j/ b9 w% ^8 |2 q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-26 00:13:53 | 显示全部楼层
すごい
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-26 08:26:25 | 显示全部楼层
二楼,甲鱼兄要出恶意代码课程吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-11-26 09:51:22 | 显示全部楼层
什么编程语音写的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-7 17:41:36 | 显示全部楼层
鱼蛋代码 发表于 2016-11-26 09:51
& c9 }2 W, J  n9 y: M; f: x什么编程语音写的?

5 E0 G$ n, w0 ~+ o- `( u什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-17 18:04:42 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-26 21:17:30 | 显示全部楼层
看看路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-18 17:34:37 | 显示全部楼层
感觉很厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-31 11:38:15 | 显示全部楼层
感觉好厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 20:45:30 | 显示全部楼层
good book
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 20:18:16 | 显示全部楼层
好书,详细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 17:28:05 | 显示全部楼层
看着就挺难的,应该先熟悉工具
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 20:41:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-2 12:01:35 | 显示全部楼层
要做一个很牛逼的程序员,网络安全方面有所建树,完了给国家做贡献
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 21:57:05 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-10 16:51:09 | 显示全部楼层
新人报道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-24 10:45:23 | 显示全部楼层
好牛逼的书啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 09:37:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-8 10:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表