鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

( W! f! l8 B9 J# `, s* d8 e9 h1 Q1 a" Y% I
书名:《恶意代码分析实战》
' Y6 N8 |# P) Z0 G8 m. C) U. q6 \作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
- ?: Q5 a# x8 d( Y( @6 s4 n9 O译者:诸葛建伟,姜辉,张光凯 & S+ z. j! V& e# U3 ~7 {
出版社:电子工业出版社2 ?# S- Y" T" k* ]
出版年:2014年4月1日(第1版). G, U) g. i- v
定价:128.00元
- o2 W3 f1 z! y( ^: c! m装帧:平装
: G4 U  B' i; y* C. D0 I( ?2 FISBN:9787121224683
' Y5 f6 H& h, H7 k
! W# F% W7 |# {+ H8 p购买链接:
7 j0 _/ C+ g  C, k/ s
1 n4 P+ N+ [# A: v" t, T& a% @, P

' t8 F& a  u" n亚马逊 -> 传送门& G" a1 r+ t, F1 A4 e( P

4 s2 I2 `  A: m% i% R  S当当网 -> 传送门7 p3 ~, b' F# z6 x

3 e, `; y3 l, f* h; k京东 -> 传送门+ V9 M/ i$ ?0 j$ t  @& d- u

7 @5 ]0 x  v+ K0 j! l天猫 -> 传送门
- @) _- a  }) d+ u% }
2 p$ R$ a/ r/ i. G% X3 d5 v1 \1 f9 `' d* w$ G& L7 T/ e! Y
内容简介:
9 h1 I) f  F% V, \, ~  e
: q* h4 ]$ h1 Y1 O& g2 u7 i4 S
  ]' a, E$ W7 [* h8 Y. h9 S) M
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
* r4 g( f3 g1 Z& s: G/ T4 L
) S) l; }' h$ H: n* [# \1 _! R《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。, `0 y! w. N' m8 E7 B" Y

  K! l; \% u$ d$ l$ j4 z# s( s' f针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;, |, y" V9 A2 A4 y  y4 b
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
9 v( w+ \  j9 g/ }7 B. g2 H3 j% a, d) Y# b7 J2 l- Y
目录:
( |, g; d. [: a$ z* T2 v. v" Q2 `# z# W2 j. |4 ^* X/ S& L


; b3 f: q* x  ~第0章 恶意代码分析技术入门1
3 _, Y0 B+ F7 T* s2 C" `# Z# R9 E! i$ ]% ]( L* c
0.1 恶意代码分析目标1
% }) X. \2 t7 J1 n. ]0.2 恶意代码分析技术20 I$ b+ N/ d8 x/ d4 X/ z
0.2.1 静态分析基础技术22 C; ~! L! P9 L
0.2.2 动态分析基础技术2* Q2 g9 f) Y+ q' p* X8 [1 T$ B
0.2.3 静态分析高级技术26 Q* G  a3 ^% e* T2 ?) I# R
0.2.4 动态分析高级技术2
- W/ S$ v4 n$ |6 C) C& K0.3 恶意代码类型3
* n8 k4 }; q" ~0.4 恶意代码分析通用规则46 I2 M6 P: e9 v1 ^4 ]" l

/ f/ `, Y6 m" v$ y. |$ j
) O! U* s  S) X8 W9 I第 1 篇 静态分析/ _, K* }7 f" j( x. p5 ~+ `
, ~: Y1 a; Y0 J$ K2 Y0 h
第1章 静态分析基础技术 60 |9 I; i5 [' p0 w3 z

' P' d  a. h3 H$ A) r6 [: R' w; L1.1 反病毒引擎扫描:实用的第一步60 R- V: P  I/ l5 w; N# ]( u
1.2 哈希值:恶意代码的指纹7; k$ J* B1 o2 |# z+ g5 r
1.3 查找字符串7
7 l1 I" P0 J1 z8 r- i  @! {' d1 O  Z1.4 加壳与混淆恶意代码9* \' y" g9 f! K- P7 o: Q
1.4.1 文件加壳10
1 r% F( Z. ]9 k1.4.2 使用PEiD 检测加壳10: [( B1 y$ K7 Y1 U. o
1.5 PE 文件格式11
# S# u2 b7 a/ I1 o# d9 K/ J1 Z# |1.6 链接库与函数125 [; d% n6 P+ c3 ^& _5 K
1.6.1 静态链接、运行时链接与动态链接12% J8 t7 p' g* a" I" N2 o
1.6.2 使用Dependency Walker 工具探索动态链接函数13" _! G" i9 z: R- h) g+ p
1.6.3 导入函数14
3 M% L) s1 H( F( i9 z& l- {1.6.4 导出函数15" L$ m8 C$ J3 i; W
1.7 静态分析技术实践15
0 ^# u6 w. O* J" x. J# L0 O1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
# y$ I% G. y# |: h+ k  V1.7.2 PackedProgram.exe:穷途末路18
6 i: W3 T2 _' j# p; t1.8 PE 文件头与分节18
" E- x. L: }. O1 X. |7 A' l. F9 L1.8.1 使用PEview 来分析PE 文件19
3 K0 t( m; C3 [& h  e1.8.2 使用Resource Hacker 工具来查看资源节22
* B& N4 A3 X0 o8 x4 D% b2 M8 F5 V1.8.3 使用其他的PE 文件工具238 Y# s* z# ?& u: V6 \+ }
1.8.4 PE 文件头概述23
6 g% s3 [9 m$ o1 j" r4 g8 q- b1.9 小结24
- h' o$ v$ s/ x3 Q1.10 实验248 @3 Z# R0 E% A' ^& i& c, ]! a

# J+ L7 m* P+ o/ G7 t第2章 在虚拟机中分析恶意代码 278 [1 v0 D/ X1 O2 ], ]4 T- S/ V

! S4 X. o- a7 I& @% h4 r2.1 虚拟机的结构27
+ a' I' z) u4 }" `( s7 ^2.2 创建恶意代码分析机282 C; E. R2 q7 k+ Z. p
2.2.1 配置VMware29
& P; _+ B4 V3 R  z2.2.2 断开网络301 p5 r( R- E  I0 }# ~
2.2.3 创建主机模式网络30
: L1 T- [+ p% x6 J0 T3 D7 @2.2.4 使用多个虚拟机30
% l6 ]8 W! F2 l$ P4 D2.3 使用恶意代码分析机31
' g, v6 g* t* M( G2.3.1 让恶意代码连接互联网310 p" Z4 U4 q5 s& y- d6 h
2.3.2 连接和断开外围设备32
0 p6 R; v' h2 M3 M5 w2.3.3 拍摄快照32
5 ]+ K" O9 V" T* Q# l2.3.4 从虚拟机传输文件33
6 b) p! J% Q0 m7 u. W- V7 H2.4 使用VMware 进行恶意代码分析的风险34- f! ?: f" r3 Y8 d4 C' _
2.5 记录/重放:重复计算机运行轨迹34
! `5 n1 o: y; b/ M2.6 小结35/ v/ R0 C8 ?6 c' H: m& r5 Q

, m& f- f/ k6 W8 R; ~第3章 动态分析基础技术 36
0 e$ [3 Q5 T$ x9 [8 M
4 g- V+ O: n2 p/ r
3.1 沙箱:简便但粗糙的方法36
; _/ b8 D$ j2 f9 |4 ?/ n3.1.1 使用恶意代码沙箱36
# v/ r* ^* W& I& |8 K/ V$ _# W) Q# o3.1.2 沙箱的缺点37
( {1 w$ X) i; H! i# c2 b; B" o3.2 运行恶意代码38
8 Z0 J- F& I# ?3.3 进程监视器390 |7 Q* m& }1 N% F$ z
3.3.1 进程监视器的显示40
8 M/ N( S, O0 A+ i/ U7 @% R* P3.3.2 进程监视器中的过滤410 j7 s( d- w. ]" q
3.4 使用进程浏览器(Process Explorer)来查看进程436 J' k3 y8 v; B9 f
3.4.1 进程浏览器的显示43: Y( U% _4 v! h, h
3.4.2 使用验证选项44
& r7 `+ ]% V4 B% E  Z) _% c# L3.4.3 比较字符串45
( L2 q3 \# o6 G8 x+ N1 n0 v3.4.4 使用依赖遍历器(Dependency Walker)45
- O, d, |8 M' N- |, G; \3.4.5 分析恶意文档46
* d  G5 w) K1 d6 [8 [* y/ G3.5 使用Regshot 来比较注册表快照46
* m3 @( O, q, |; g3.6 模拟网络47# c7 W2 l8 L3 m4 C# S: s. s
3.6.1 使用ApateDNS47: D$ _7 p. `* `% P
3.6.2 使用Netcat 进行监视48
( m9 j7 K1 H6 M' c; c: D# M3.7 使用Wireshark 进行数据包监听49& r8 C: \# ?/ g% G
3.8 使用INetSim51
* J1 ^, C; D: C! P, t& K3.9 基础动态分析工具实践52
- W! m! v& L* ]& B) I3.10 小结55$ o  A4 G- y- Y$ ^  ?, D
3.11 实验56
4 E$ U' R+ u# M% x* i: S
* _' q# x7 P; s9 k# N7 [7 F. y9 o% ~" D- A/ e
第 2 篇 静态分析高级技术篇
$ m2 }2 y8 q. V; ?7 G& j7 m
" w* k' q  |2 \# P3 o% I* o第4章 x86 反汇编速成班 60
- }8 Y4 l, g: m: n* M+ a: n$ P8 F6 T$ }
4.1 抽象层次60
0 \& ?% X1 Z, X; S  y2 v1 J) \4.2 逆向工程622 Z3 p3 Q1 Z' v8 M& j7 ]
4.3 x86 体系结构629 G8 Y  H- B+ i- \; `
4.3.1 内存63
( Y8 T- h& H6 N4.3.2 指令64- V9 s# g* L. a$ S* t; j  t
4.3.3 操作码和字节序64
+ r3 j! L4 [! f  ~# W4.3.4 操作数65- T: b) j4 ?$ Y/ z4 _- ~
4.3.5 寄存器65; ]: H& a* U$ S! J' n; d/ C
4.3.6 简单指令67
8 g3 g+ o" Q$ V0 {( \6 d3 E0 m4.3.7 栈70
& Z. o6 U/ \# P) b- s4.3.8 条件指令73
* F$ X* i4 y1 R' x" c# d4.3.9 分支指令739 y8 Q& x( P4 @! @" c
4.3.10 重复指令74
! l  g, U' l& A- O  U% c4.3.11 C 语言主函数和偏移76
! G! w3 s5 U8 ~( W5 A- Y; V8 A; M5 f! ~4 x4.3.12 更多信息:Intel x86 Architecture Manual775 x5 [7 P% ]9 B: V- I
4.4 小结784 r& i3 z' F/ F
& j* p/ g0 _( U' {
第5章 IDA Pro 79
) d+ F0 K, I) }5 z7 H+ a
7 Z* y/ |9 g1 f+ B  D* t3 I5.1 加载一个可执行文件79
1 T- S) E8 _. m# O5.2 IDA Pro 接口81
8 x1 p- Z0 K2 {0 H( v1 S% j4 z$ o5.2.1 反汇编窗口模式81& s% x* [) x# m
5.2.2 对分析有用的窗口83
1 O, n1 j1 P  N7 E1 t3 u2 V5.2.3 返回到默认视图83) v& b5 J$ a6 n3 N' m
5.2.4 导航IDA Pro 83
  ]5 [* _5 j: l7 h5.2.5 搜索85  [/ t3 \! a, t. M5 t
5.3 使用交叉引用86
& E3 Z" `* B9 c* ~4 K5.3.1 代码交叉引用87
6 A0 k( v0 p/ e+ w8 n$ z; S5.3.2 数据交叉引用882 q- N% Q, }7 j6 \7 N. L7 Y$ z
5.4 分析函数88; f/ g3 l5 m+ x& G3 R
5.5 使用图形选项899 G8 v4 ~. Y4 c! K1 D5 N
5.6 增强反汇编91/ ?9 F& v3 O% b$ G
5.6.1 重命名位置91
, {/ ~' K9 C9 m+ u$ q- F" p6 m5.6.2 注释92/ a" w' p* M4 U, V9 e. p' z4 q3 V- |
5.6.3 格式化操作数92
' I# Y& a2 `- i" [1 |. X5.6.4 使用命名的常量936 D: h4 v$ e8 ~& |% J1 n( N3 Y9 W. q
5.6.5 重新定义代码和数据94/ T. s$ Y' p8 S, s6 D, v
5.7 用插件扩展IDA954 E  s6 G$ G$ L+ N! ^
5.7.1 使用IDC 脚本965 P# O$ R7 ]5 k5 v) e1 f; x% V
5.7.2 使用IDAPython97: R2 ]1 _' p, p4 v
5.7.3 使用商业插件97
# M  T5 I+ s8 H+ K8 F! E5.8 小结98
$ h8 B9 `4 w6 U% \1 M* h9 N9 M( X$ p5.9 实验98" T7 O, E) O$ a' ]0 C, P

2 z! W. R+ y6 y1 A5 P& r第6章 识别汇编中的C代码结构 100

/ ?) w' I, p" g9 A  R6 s! q2 {3 }, ~
6.1 全局与局部变量101
! r% o  o% w1 c" m/ Q; |1 t6 I6.2 反汇编算术操作102! l% e1 M. }; n0 f$ `  a
6.3 识别if 语句1049 J8 J) O6 ~+ _8 ^7 d0 h0 U: J' J* F
6.3.1 用IDA Pro 图形化分析函数105  U# R8 c0 |7 s3 A) [. |
6.3.2 识别嵌套的if 语句106
# l- `" ]. f  H# F6.4 识别循环107
9 V  J( h" m; y# }" Y1 j6.4.1 找到for 循环107
# _9 k' A5 D5 r# k1 x6 d$ W6.4.2 找到while 循环109
! [- c) ]- ^/ _. v6.5 理解函数调用约定1105 X2 w$ E/ o0 I- d1 d2 P& u
6.5.1 cdecl110: q+ M  [+ e7 i# b  [. D& _; _
6.5.2 stdcall 111
* D5 @0 c( K( j; G6 |  t6.5.3 fastcall 111
7 T4 @. l6 t+ j  L. m6.5.4 压栈与移动 111
7 o# N  _8 V) l- h+ I' I6 S6.6 分析switch 语句112
5 Q3 z% x: G2 c+ j6 y& S$ ~0 x6.6.1 If 样式112
% {. h  b  |- F# P( B2 D+ R- k6.6.2 跳转表114
3 |, W! G( K7 o+ ^7 o( @9 \6.7 反汇编数组1185 y6 G% G9 K) o' n1 {7 L  }6 D+ A) m
6.8 识别结构体119
2 q; H  J$ A( z  _1 t( H) K6 y$ b+ r6.9 分析链表遍历1216 r6 E( w8 N5 {) E, L4 e* d
6.10 小结1230 Z4 D7 P$ ^; K0 ?( ?
6.11 实验1236 _# }& e) Y* k, T- S" a4 [1 k

8 F( e" F, V7 s, e( @( v9 i$ r第7章 分析恶意Windows程序 126

7 [; a9 r9 R& t9 `( I8 Q& w
1 F& ]0 g8 _2 E! c( M7.1 Windows API126. ^2 X+ l; X2 G, o
7.1.1 类型和匈牙利表达法126" g( A% n* a" e% r- K  p
7.1.2 句柄127
( `$ \3 l( F' `1 V: D! m) a7.1.3 文件系统函数127
) q/ x8 G+ O+ z/ H3 D, X$ Y7.1.4 特殊文件128
! u+ e5 I1 A* W( v7.2 Windows 注册表1299 k$ P6 K5 S5 t& x. K5 f/ b1 e( L
7.2.1 注册表根键1307 N1 {' k) T* ~4 z0 D! w
7.2.2 Regedit131
. D+ q) j% f) i* I, F% u2 H) g7.2.3 自启动程序1316 e' z( P9 {7 G- r
7.2.4 常用注册表函数1310 S" n+ V1 w) f  W2 d9 K
7.2.5 练习分析注册表操作代码132, T8 q8 j+ }% P; U; s
7.2.6 使用.reg 文件的注册表脚本133
$ @$ m) R& o+ P1 U" \/ |8 S8 O7.3 网络API133; l4 L' f3 |: d+ B- P
7.3.1 伯克利兼容套接字134
/ q: h. G# H0 T4 r7.3.2 网络的服务器和客户端134
0 C4 c5 x- L0 n" V* U7.3.3 WinINet API 135. T$ s$ x5 `0 c3 ^
7.4 跟踪恶意代码的运行136
) Q  i& h$ x) {4 t7.4.1 DLL136
2 ]9 `! W4 z( _+ c7.4.2 进程137
  t  l; W- b5 c" @7.4.3 线程1399 B) |+ e) k, e; s
7.4.4 使用互斥量的进程间协作142
$ L1 z) L1 k3 S& w" x; m. R# }7.4.5 服务143
7 [% Z$ j* j, s# B7.4.6 组件对象模型145. |2 J  W' X1 r# _4 M7 R3 u
7.4.7 异常:当事情出错时147% G1 w" w2 c- k8 @9 @, E
7.5 内核与用户模式148; a; l0 O7 A8 ~5 h7 R& y
7.6 原生API149
8 d0 S5 i, N& W$ B7.7 小结1516 Y% p* d7 ~9 f) A" P/ H) @4 V
7.8 实验151
: x/ S  E' o+ J) C; |$ h
& X% Y; r& H7 v) d( b. z- Y( M; H* l+ F5 w5 A5 n+ q
第 3 篇 动态分析高级技术篇
7 ^2 p8 p8 Q7 C5 A0 K0 C1 B: H$ n" ?" B- Z0 G& t
第8章 动态调试 154

1 {4 ]  o3 r* X0 Q
, @1 W2 }, Q/ r# D8.1 源代码级与汇编级的调试器1540 V% ?# v% t9 ^2 n( {' h
8.2 内核模式与用户模式调试155& w& v; H  S7 _/ i2 z: K: e
8.3 使用调试器155
' b. x- Y' ^" d% P! Q& t7 o& ?8.3.1 单步调试155
) M3 Y; J0 {& e7 X8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156) E. P$ v# d  l- D2 N5 X: h
8.3.3 用断点暂停执行157/ C5 T5 \" v, J, {
8.4 异常161
7 Q  I2 p( [8 g" x8.4.1 首次和二次异常处理162
5 J, ]5 f6 s) w- m, a! x7 ~. h( k8.4.2 常见异常162. Y! s3 v  I" ]% L) z
8.5 使用调试器修改可执行文件163& d* ?! w( \9 Y* \' M
8.6 修改可执行程序的实践163/ c: z; R4 O, I7 |+ Z* d
8.7 小结164& [% Y  d" s+ H7 Z) Z

) n4 {  p, T6 m& t% p第9 章 OllyDbg 165

  k  N4 v9 V3 s% ~! M1 A+ A; s. R) t- J) Q5 H. S7 Y/ U4 g
9.1 加载恶意代码165+ V6 F1 H2 I3 K6 _0 h* j
9.1.1 打开一个可执行文件165
8 A+ a; {0 g* y% d# U& `  n& I$ |0 K  w9.1.2 附加调试器到一个运行程序166
; P5 W' Q( e5 r) x9 P9.2 OllyDbg 的接口167
) j  y9 H$ O3 D+ j2 a. w" R9.3 内存映射1684 ^( I1 B5 W: h- k
9.3.1 基地址重定位169
; `1 V+ k* o2 z9 U9.4 查看线程和堆栈170
2 A7 _+ |- V2 S, c# r9.5 执行代码171( X6 g% `7 T; [* G5 j2 B
9.6 断点172: C0 {2 b( O. O7 y" K5 J: R
9.6.1 软件断点173
* O! a) ?# f& Y. r6 e# g2 R3 P9.6.2 条件断点174
3 ?& {8 f$ `- y+ F9.6.3 硬件断点175
0 C! M: w# w& ~2 Y, O; f! W9.6.4 内存断点1751 \  O* N+ r* c! H5 C  I
9.7 加载DLL176
7 l$ V" D& C4 [( l9.8 跟踪177
( `% r8 C+ b, {9.8.1 标准回溯跟踪1776 {# z% R$ {% D: U+ L2 t
9.8.2 堆栈调用跟踪178/ Z' O! D/ q' J, P& j
9.8.3 运行跟踪178  T1 B1 Z% G- X) N2 l
9.8.4 跟踪Poison Ivy178
$ b# T' T. }, X- T, c  U9.9 异常处理179. _( W6 y2 G  A) F
9.10 修补180
& G0 Y' g9 P; W1 [5 z9.11 分析shellcode181
+ f1 W4 K2 H5 c9 ~: w9.12 协助功能182( u) f: y. {- n$ V1 |
9.13 插件182
" M7 E5 u1 `4 S- m9.13.1 OllyDump1839 \& ]+ ]. W: ^. L$ {* }2 v
9.13.2 调试器隐藏插件183
- ~9 X$ c9 @+ k9.13.3 命令行184
; b# e8 {% Z9 G0 p% K9.13.4 书签185
# Z. ]6 U% l$ J: Z9 g9.14 脚本调试185
$ n4 S1 w- X- P+ Y& k9.15 小结186# \$ e' w9 V( @" [
9.16 实验187
) a( s( {/ l1 k7 |4 g* ]
; r( g. Z7 D. k- i: T第10章 使用WinDbg 调试内核 189$ \* N: z+ P$ m4 @- Y

" c0 v) ]- m  n8 G0 r2 H4 F0 c) G9 [10.1 驱动与内核代码189
1 y" e; s; n2 _- Q' t, S7 _, M10.2 安装内核调试191
  k5 i% Z+ |3 R$ d$ R10.3 使用WinDbg193* c' D* [- A, r; a7 f
10.3.1 从内存中读取194
$ l1 _+ o# a) M1 s- y! a# D10.3.2 使用算术操作符194
5 @+ G' K- J* @0 _- N10.3.3 设置断点194' z  G' _, E! n  W" n
10.3.4 列举模块1956 u- I) e6 h3 j- Q) b2 h, R
10.4 微软符号表195
; \5 l( W; H& `: t2 a# _10.4.1 搜索符号195# o* ], v; W  R) k' |+ _
10.4.2 查看结构信息196
$ J% @: b  I; s" @0 {8 H9 F10.4.3 配置Windows 符号表198$ `* g, z. b, i3 }
10.5 内核调试实践198
8 A, S+ }! K; C' R10.5.1 用户空间的代码198
8 x% A! L: }9 T; E5 O10.5.2 内核模式的代码200
' N9 X8 v# v; z/ f1 x, D10.5.3 查找驱动对象2037 n5 }+ }& z8 ^1 ?0 p( O9 x' L
10.6 Rootkit204
) ?& f3 ~1 j, ^! o, `" r6 M10.6.1 Rootkit 分析实践205
: H9 ]( Y7 o5 B10.6.2 中断208
: |. F* d) W9 S  `10.7 加载驱动209
8 u2 B  r7 j+ F! I+ I10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
% H8 w! q3 S  [+ |7 z6 d& x10.9 小结210
0 X0 e1 t0 O2 L0 l9 H# m10.10 实验210
( l. G0 v( V1 d  Z/ F
7 i" r% L- A; x  e* c4 ~- i
$ E2 R  s$ Q- V第 4 篇 恶意代码功能篇
+ Y' I* |0 Y( L6 k( [* s3 a/ k: W) z0 c, Z5 W2 e( h" a
第11章 恶意代码行为 214
& w' x) x' D$ B3 \  [- v$ b( O
  @% @4 ]& g9 j0 i11.1 下载器和启动器214
: w; T3 w8 r+ u8 V! ~) Z3 j$ J# B11.2 后门(backdoor)214
- p8 q8 c: _; ?: n11.2.1 反向shell215% a  b8 `. Y5 f& }! ], @
11.2.2 远程控制工具2166 T8 \+ p* e6 L- L1 u+ m$ C
11.2.3 僵尸网络216
6 {# E* n7 R4 R- ]* O1 P2 J7 R11.2.4 远程控制工具与僵尸网络的比较217: i& B7 j4 l# k8 D; |& U1 A1 Q
11.3 登录凭证窃密器2177 X6 ]; N6 g, L2 l4 }: Z: p
11.3.1 GINA 拦截2177 r* ^" i: R- ^1 \! h
11.3.2 口令哈希转储218
2 q( [8 w' @( N  n11.3.3 击键记录2210 u% X, h+ S2 |5 ~  Y
11.4 存活机制2231 S4 `& l' s4 D; a' X) @2 L
11.4.1 Windows 注册表223) _" {) S6 ^  Q2 k3 L
11.4.2 特洛伊木马化(Trojanized)系统二进制文件2257 ?4 ~- e* ^7 ^! ]9 R3 ^2 _( n
11.4.3 DLL 加载顺序劫持227
$ |. ~* [' F, l" ^% ?  B11.5 提权2289 a& J! B8 g8 [- t: Q# U# |
11.5.1 使用SeDebugPrivilege228
$ N+ \5 c; I; f( N3 J1 a11.6 隐藏它的踪迹——用户态的Rootkit229
! |- [3 D7 k( _; @11.6.1 IAT Hook 230+ F' }( O6 }0 I9 h! e! w9 V6 d: R$ E
11.6.2 Inline Hook 231" P% B' N1 L% |/ C% K
11.7 小结232
3 q5 c" V1 }$ _8 e; h) b- d11.8 实验232
3 S1 }( C& q! n: Y$ J
2 t3 p" C& X; q+ g第12章 隐蔽的恶意代码启动 234% g( Y9 u3 X$ b% [2 c% N

/ k+ J, {6 V9 {7 F" S12.1 启动器(Launcher)234
! `$ Q$ ?# q# r, n  v12.2 进程注入234
( a5 Z4 B1 W6 u' w, n1 B) {2 E3 @5 ?12.2.1 DLL 注入2357 s# }) y" `2 {/ F+ E; Z, H
12.2.2 直接注入237
& v0 V" H& Z8 V# R% F12.3 进程替换238- e& z9 _+ `$ x* G+ R9 R
12.4 钩子(Hook)注入240
0 O: \8 V; e, F! d12.4.1 本地和远程钩子(Hook)240
3 F  U! m+ N$ d* i* h+ ?% _12.4.2 使用钩子的击键记录器241. y' {# q6 T" d  O3 S9 e
12.4.3 使用SetWindowsHookEx 241
$ g" }+ \& s( I+ u12.4.4 目标线程241* B# u& `. b5 W8 F0 N0 B' ^. Y4 \
12.5 Detours 242) [  ~# x$ C/ C
12.6 APC 注入243$ u8 ]! @, ], ], b
12.6.1 用户模式下APC 注入244
: s: ]& \' k4 n% R12.6.2 内核模式的APC 注入2451 h8 j( ?& ~$ e
12.7 小结246( P9 L8 M9 ?2 e* Y! A
12.8 实验2465 C6 [& w5 |( Z- s
: B' f0 d, b, H4 R1 m/ k' e0 E9 V
第13章 数据加密 2483 T; @$ K$ g" j

4 S" ^4 r" v' c- }% q1 J6 D13.1 分析加密算法的目的248/ d: q3 F' a, P1 m/ T# a
13.2 简单的加密算法248; X' k' Y- y# |' j
13.2.1 凯撒密码249
; u* i& F8 @( \% `( q13.2.2 XOR249( D# L! E- t  K1 ?7 @# T9 ^
13.2.3 其他一些简单的加密策略2548 u. Y. `: D( q4 s
13.2.4 Base642554 v* ?0 l. G5 b
13.3 常见的加密算法258
  {- D3 q; x1 v) ?/ A) e0 s13.3.1 识别字符串和导入259
4 _5 U/ Q7 y9 f0 k3 ]# n13.3.2 查找加密常量259) g6 O! e; V+ O* Q) ~* T
13.3.3 查找高熵值内容261
8 p3 b( U  L6 P5 {13.4 自定义加密262
0 ^  ^  ?9 V6 x9 T' C13.4.1 识别自定义加密263
3 ?6 W# |: m; V& H: h13.4.2 攻击者使用自定义加密的优势265/ k3 H- f; ^9 H0 {: k- ?
13.5 解密265" R' o2 G" O7 `0 h0 d
13.5.1 自解密265
- Q) D; u$ i% b( x* g13.5.2 手动执行解密函数2669 y* T* \: J( v: o0 O8 K% M
13.5.3 使用通用的解密规范267
9 @! a/ P- m. W% H13.6 小结270
; v3 F5 b7 U' r- X. y: q8 t; O13.7 实验271, m3 V8 x1 M$ |6 b& D
  c8 ~+ d- ]6 x* ?
第14章 恶意代码的网络特征273& ^3 A; C1 T' e
8 s6 M+ N' w8 f2 c  z
14.1 网络应对措施273! }7 o* x  F' z% x& ~$ F1 c; B
14.1.1 在原始环境中观察恶意代码273
/ ^3 ]* ?5 s( {+ a5 [14.1.2 恶意行为的痕迹274
  a' T: v5 U- e8 J14.1.3 OPSEC=操作安全性2756 j! C1 t6 n) A/ @
14.2 安全地调查在线攻击者275
8 D7 \7 L8 Y8 P7 x14.2.1 间接性策略275; y& K- V. J% I# x% `) ], S; I
14.2.2 获取IP 地址和域名信息276
( c' {) @7 ~3 m$ l14.3 基于内容的网络应对措施278) J" Z- E2 f3 d0 |# B: r5 ?& M
14.3.1 使用Snort 进行入侵检测278
5 m- X9 O: p( o8 H5 t) w14.3.2 深入观察279; U$ u- z/ B2 i
14.4 结合动态和静态分析技术282
* H' _  H4 K" Z7 y. _  u9 P' Q1 D# S14.4.1 过度分析的危险283
8 w! g6 d2 r: }+ ^6 h$ z14.4.2 在众目睽睽下隐藏283
* N9 w/ ~0 X( ~8 D14.4.3 理解周边代码286, k/ h3 c) z4 V. _
14.4.4 寻找网络操作代码287
& S  [$ M- M$ p7 _# V, f$ k# U( c, v14.4.5 了解网络内容的来源288& P/ P; }0 K* a
14.4.6 硬编码数据 vs. 临时数据289' `2 w1 ]- k* @! g$ k
14.4.7 确定和利用编码步骤289' p8 E1 P3 Q- I6 J( E, l
14.4.8 创建特征291& ^' j* h$ }- U9 e
14.4.9 分析解析例程292
7 l6 `5 _: _* ]. \) e* K14.4.10 针对多个元素294& w+ P& g: {3 w2 D* |7 T! k. r
14.5 了解攻击者的意图295, N" ?+ f: d7 P1 L
14.6 小结296! B3 t7 i* A6 o3 p/ `2 P
14.7 实验296' O: Z7 K; n6 M; F" m

4 {9 }. `- }4 ?0 G$ z! T6 ?) M
. U- N, i! _' p6 o第 5 篇 逆向工程, `6 |; s+ `  d4 r/ y# l2 f9 `

9 E4 a9 `# j1 j第15章 对抗反汇编 300
- [9 P7 Q" T. Z1 a( ?# ~5 d, G
2 C# g; @; K( L15.1 何谓对抗反汇编技术300
/ k0 S* j% [0 y2 g8 V* o15.2 挫败反汇编算法301
, q# `! B( U9 W+ G# R; V( ^6 L15.2.1 线性反汇编302
3 \; V% E+ v2 C+ ?( G1 f( J" p1 h15.2.2 面向代码流的反汇编3030 R' p  v6 m5 ?1 [
15.3 对抗反汇编技术306
- X4 `% c6 G  C2 @) i0 M* y2 v1 P15.3.1 相同目标的跳转指令306
' G% I  ]  t6 a& c15.3.2 固定条件的跳转指令307
6 [4 H+ q/ d0 |/ I9 j15.3.3 无效的反汇编指令3083 f+ N, G0 k; G9 ^* r
15.3.4 用IDA Pro 对指令进行NOP替换311
% k) ]' ]6 o) E: v" L; H15.4 混淆控制流图312
2 t7 {( ^+ U( t15.4.1 函数指针问题312* }* @" r  v& K1 P& R
15.4.2 在IDA Pro 中添加代码的交叉引用3136 C2 c3 ]5 f9 [6 Z) |- B/ e
15.4.3 滥用返回指针313
% _. w. R1 n; n: E; j15.4.4 滥用结构化异常处理3157 `' K2 V4 O! i* a' ~- x
15.5 挫败栈帧分析317, j: u$ b* y$ g/ m, w
15.6 小结320: x3 Z3 _  t; P* e0 O% k, Z0 O( o
15.7 实验320+ d0 V4 U1 ~- I
2 j/ Q: O" q- `+ }
第16章 反调试技术322
' z. H8 u' L0 [9 \* i- n8 Y: W4 y5 Y* l9 H! @( X# u
16.1 探测Windows 调试器3220 u+ w+ m1 T9 e% U5 u
16.1.1 使用Windows API322# }9 r9 ^' |# y9 ]$ N
16.1.2 手动检测数据结构324& }- _  H) @. I" Y5 C
16.1.3 系统痕迹检测326; R7 u" L# ~% G  h8 c8 W7 M
16.2 识别调试器的行为327
& x* B9 W  Y4 a1 {+ q# `4 N16.2.1 INT 扫描3275 v& U* s+ C* {/ _0 P! a$ u
16.2.2 执行代码校验和检查328
  U6 c* S7 p" U$ P$ {16.2.3 时钟检测328
! A, S$ x" y( M5 I, o+ t( N- e/ d16.3 干扰调试器的功能3305 v# @, Q/ h8 y3 _9 N* U
16.3.1 使用TLS回调3309 z' d" E1 @( Q  i" Q3 z  K! H
16.3.2 使用异常332! f7 {) {% j; f# y: k
16.3.3 插入中断333# d2 Y/ Z( j: M, a3 C) Y3 t
16.4 调试器漏洞334
3 E4 S' {) I5 b% ~4 D/ m+ U16.4.1 PE 头漏洞334
  V5 F6 s8 l7 @4 R16.4.2 OutputDebugString漏洞336
" M8 P4 {6 l6 N9 ]16.5 小结336, ^4 L% |' q& Q8 ]( g
16.6 实验336
) Q; \9 _' y  m
# L$ W2 [8 @1 X$ ?: b第17章 反虚拟机技术 3380 }/ T- d3 n- i+ s. `2 k) y* |
7 h, R: C  i0 A
17.1 VMware 痕迹3382 H2 v4 h+ V% d
17.1.1 绕过VMware 痕迹的探测3406 @& d: X# Q' K. g& H
17.1.2 探测内存痕迹342
4 P5 V  U& K& y( S6 a! A17.2 查找漏洞指令3424 ~. R5 D, n3 V: {/ e& p
17.2.1 使用Red Pill 反虚拟机技术3439 }& m3 ]3 p* L: K4 j* |: w1 B
17.2.2 使用No Pill 技术344& Q9 d9 u4 Y) ~
17.2.3 查询I/O 通信端口344
  C/ ^! V8 \. u6 ]+ z; f# D) A- o17.2.4 使用str 指令345
0 }9 s" {4 B* }0 \17.2.5 反虚拟机的x86 指令346
8 u9 V7 M2 M6 \. U+ n7 s17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
# ]. ]* r& n* A9 w17.2.7 使用ScoopyNG347
# l- ^5 K7 q4 u  v17.3 调整设置3484 o% K9 W& [8 y' G+ L7 _/ N
17.4 虚拟机逃逸349' t, }  d# A) N3 e" x" ]
17.5 小结3491 V% c, W0 y: K& u' w) f3 x" T( v" e( W
17.6 实验3493 [  P% Z: T. ^" W) D6 a( G9 B% v% G
' u# m# J5 Y2 }  E, L$ x: B1 p
第18章 加壳与脱壳 3525 v( n! X- ^9 ~" y3 i
+ J) I- J7 }& d8 g( e
18.1 剖析加壳352
6 ]$ n/ ]1 z' ?1 i% K18.1.1 脱壳存根353
' p$ j" c; q. f9 t3 b0 I; }18.1.2 加载可执行文件353% g' H- \! ^' d2 t6 _
18.1.3 解析导入函数表353: J& _! t1 B- E/ y, U% n5 _
18.1.4 尾部跳转354) a5 K0 u, e( v* V, ^6 Z7 J' E1 B
18.1.5 图示脱壳过程354
5 p9 X# v* G0 r: P: o- i( M; b: N18.2 识别加壳程序355
# [- Q1 q" p9 }( q18.2.1 加壳程序的标识355
, ~. N  t2 {' G18.2.2 熵计算356
, z3 M- R7 k. [8 U& e18.3 脱壳选项3563 A( Z. t$ h' n( n* v4 j
18.4 自动脱壳356
9 y+ W  H: V8 B' \! C0 [$ s  f  G18.5 手动脱壳357
; D% M' L9 }# z1 d: E8 D18.5.1 使用导入重构器重构导入表358! ?6 u. @: }$ y/ k. H
18.5.2 查找OEP3591 ~2 z3 r* y1 [' K: E1 P9 t0 y: ]" a2 u
18.5.3 手动修复导入表363
) @# s8 r. B8 q# ]) F18.6 常见壳的技巧与窍门364+ c8 q3 n  i) X6 P& C5 ^% S& H
18.6.1 UPX 3644 A4 T6 {, A; I
18.6.2 PECompact 365
7 L# k  G' n. B# p5 w18.6.3 ASPack365$ ~6 B% q) i( C4 u
18.6.4 Petite 365
, |: X6 m( o# T' c18.6.5 WinUpack 366, X9 v% ]5 F1 ^3 `9 [- s
18.6.6 Themida367
2 H6 J7 J4 V: E. m1 ~1 a18.7 不完全脱壳情况下的分析368. W7 \2 R. l1 k7 h* T
18.8 加壳DLL 368! G0 M+ l, V& `- {8 f) ?2 N
18.9 小结369
0 x1 P( y: Z& u5 }  g18.10 实验369- P; ^5 `- T* S5 z' R+ z; p

$ e$ u" y. ~( O
  K4 Y3 c7 w. @/ @第 6 篇 高级专题0 s5 S8 i% K% @4 q' I1 p" H

- t# z' ^* n& j4 w$ T) D第19章 shellcode 分析 3729 X3 K: V  N) P* l/ t3 u0 r9 `% `8 |

- t/ {8 P8 O7 P( w, I7 a- D7 r19.1 加载shellcode 进行分析372
3 ?& H: B$ e5 R! P9 w0 @19.2 位置无关代码373
) S6 c1 X+ i( e/ N7 C/ n, w19.3 识别执行位置3735 t# p+ ]+ q/ R# T/ s
19.3.1 使用call/pop 指令374
& C+ y5 u- p. o4 m. i19.3.2 使用fnstenv 指令3767 M, H& Y! Q! {. @
19.4 手动符号解析377
' c  S5 Q1 d" V  p19.4.1 在内存中找到kernel32.dll378  X. e, j6 c6 N9 c  K! I; M
19.4.2 解析PE 文件导出数据3809 v& C# r2 B- {+ V' h$ `4 d* n
19.4.3 使用散列过的导出符号名382$ T/ L( d4 u* _
19.5 一个完整的Hello World 例子383/ r7 e: w  q/ h9 j2 b+ D& g6 W
19.6 shellcode 编码385
2 U/ D. G$ P4 M9 h; d) t19.7 空指令雪橇387( `8 i( B& i# ^) J+ }4 s; J4 L
19.8 找到shellcode387" o; L: N5 P6 d
19.9 小结388
/ A) F+ M% `* y# A5 Q19.10 实验389, w3 j, f0 \; B6 K+ \, @! F$ j/ O3 a
% N. S: ^2 @5 J. V$ S9 }
第20章 C++代码分析 391- T2 s/ t6 a1 E& A' q& y8 B
7 [. c) C5 G8 r) K' G- T6 o
20.1 面向对象的编程语言391
, {& G/ N, Y$ A' {9 }# l: D2 u# o20.1.1 this 指针3922 ?3 z9 h) l3 e6 L, [  E) j
20.1.2 重载与修饰3944 s) Q  o0 ]% P) Y+ b
20.1.3 继承(Inheritance)和函数重写(Overriding)395
$ K- |) ~# n8 @9 G20.2 虚函数和非虚函数396
. I# p' h3 X3 b: [8 m20.2.1 虚函数表的使用398( T( X+ I1 P7 @, h4 |, [
20.2.2 识别虚函数表3996 E, a6 D6 j9 v, D6 k
20.3 创建和销毁对象400' a4 j: X  F5 O1 q
20.4 小结401$ c# B( z/ c  w; [
20.5 实验401
3 Z# y2 y/ @# A5 Y1 `! W
9 c! H9 i& f- @1 e- E/ o第21章 64 位恶意代码 403
. N# {& [6 U0 O) j( E  \
9 F! P) @: E/ i0 c  e) Y6 g7 I21.1 为什么需要64 位恶意代码403
6 Z7 H3 W8 d; @& v. I" e; E& \' }( r21.2 x64 架构上的差别404: e7 ~& w& G& Z! Q
21.2.1 x64 调用约定和栈使用上的差别406
: H. Z8 ]% d3 N0 R21.2.2 64 位异常处理408
) K# }9 T+ ?( i3 k1 f21.3 在Windows 64 位上的Windows 32 位408
  q: n. u% U  g21.4 恶意代码功能上的64位提示409
/ \4 I. J* s5 B$ A1 X) y21.5 小结410
* [" m- [1 V# X% H4 \* }! N# x3 m21.6 实验410, m3 q# C1 T8 K. u* U: Z. w) \7 T
3 Q: d, t" ?! e! ^3 W: U5 Q" W
附录A 常见Windows 函数列表 412
# W* B1 ]4 H9 m
' Q4 ^2 D9 {9 x! F5 U7 n6 s附录B 流行的恶意代码分析工具列表424
/ v7 q; }& N! d* m' V& t
/ A% F( ~# E) N8 a( D3 q附录C 实验作业参考解答4359 ]" g* [% ^- N  [$ Z& O

9 D; r8 e9 Q* @1 a" u附录D 致青春,基础软件开发的中国故事 691
/ p3 ]9 q3 z6 A' g8 v, ^" A  z. @# c' y7 k: b
附录E Syser 操作入门 6956 [+ m) k9 P% Q4 k, }$ |
" X, |! e( O/ @+ S+ E

! t1 ~8 U2 v% L5 L# x9 i, l" g7 _
想知道小甲鱼最近在做啥?请访问 -> 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:510 A3 b4 Z6 P2 m. ]; e
什么编程语音写的?

" j: ]" E8 g; g1 n$ \! q% e什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-7 20:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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