鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

- s& r: |" i0 h
% o  V# }  d4 E书名:《恶意代码分析实战》
4 B0 N  u/ \5 p& k) t作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)8 Y, F( q1 e1 h& j- \* q! E
译者:诸葛建伟,姜辉,张光凯
  r4 J7 D( x5 A6 F  W* }8 G2 i  T# n. U+ N出版社:电子工业出版社+ R5 j8 `+ R2 \8 h* e6 o! N% w  \
出版年:2014年4月1日(第1版)5 B8 q$ h  a% `/ e: c) V5 o5 O
定价:128.00元
# C/ J+ K5 \3 C; U装帧:平装% {/ V8 ~( |% z
ISBN:9787121224683$ N; j4 j: U4 S5 D/ O

5 ^  `& [3 q4 k0 i! v" ^购买链接:
* E' L9 ^3 ?9 t* ?+ h" y( {/ Z7 H
4 [+ \" |) L( J* b! t

1 h* W" e8 x" K# V2 c7 r' ~亚马逊 -> 传送门
1 U, N' H; h5 G$ j& N) a! g' i
; T  S7 V) i3 R6 @当当网 -> 传送门* l( Q8 C3 J" F" W, w% R/ Q
9 W0 D& K" q- w3 [9 b. ]1 _
京东 -> 传送门
5 a5 G5 \! O% A9 o# q0 }2 y3 s  C6 A) v3 |" p. }8 f
天猫 -> 传送门
5 e" u+ {/ |( ~; K' T) ]6 J
! y8 ]  x3 ?; n% O' D9 Z9 o5 q: P2 m: G* q6 c" Q' u6 x8 t" X8 j
内容简介:
2 M0 f$ [1 ~& u0 @8 _4 d, \1 @
4 z4 Y6 I  e+ A8 ~! i/ M$ Y% I8 ^
/ C' l3 {  r, {
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
5 b2 `% o% Q- E  V6 @2 a: C$ |* u+ }' }: H
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。9 ^/ e9 Z# N' X4 r# j
, H, q+ [; F* N% O  t' t) _
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;4 @2 T8 u0 q/ t
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
0 v9 ^/ W% {8 E3 b$ b" d3 d0 A: L9 @# p- G8 v: |
目录:9 U" `& \7 G" C( k

$ @3 v  c* w# a0 g  p5 o! {# C
0 D! b* B$ O1 h- j5 E0 r  Z
第0章 恶意代码分析技术入门1
: z( S5 Q2 v5 `# c, H  M) q% h$ c8 v- x& o+ ^7 m; w
0.1 恶意代码分析目标10 w& y) k9 _5 ^+ W
0.2 恶意代码分析技术20 Z7 T! A$ F' G3 ^& j& h/ I
0.2.1 静态分析基础技术2
; I4 _- t" ?# E6 w: E0.2.2 动态分析基础技术2/ N5 n( S* d( B
0.2.3 静态分析高级技术2- E0 d2 E4 j  B" E  S
0.2.4 动态分析高级技术27 q2 S3 W. L, d( a4 k) n' G
0.3 恶意代码类型39 k6 f$ ]! F2 I% G# M
0.4 恶意代码分析通用规则44 \( |2 @9 s) R/ ^* q+ ]4 U
; z$ ]9 B: h9 p' b

* k: h* d$ [, i/ v  o第 1 篇 静态分析
  Z1 I. L0 A' d! q& L  K4 z- r6 o
6 P4 G9 w) N; E' s( G8 z第1章 静态分析基础技术 6& e- b+ D! {/ P6 p0 h" \& ?- F1 G
2 R3 A. n+ p; h$ ^
1.1 反病毒引擎扫描:实用的第一步6
8 o8 H# i5 `4 [* W2 g1.2 哈希值:恶意代码的指纹7" o7 x  B4 `/ d1 i0 O  P
1.3 查找字符串7/ A: L- N! E+ Q
1.4 加壳与混淆恶意代码9
- z8 k/ Z6 W: ]2 v1.4.1 文件加壳10
+ k6 p) r5 m, R1.4.2 使用PEiD 检测加壳10
; V- ^: u( ~4 w4 B; t1.5 PE 文件格式118 C+ W# p: j7 ~; v4 n
1.6 链接库与函数12
9 K5 s& y2 o0 W& a2 N1.6.1 静态链接、运行时链接与动态链接12' W* Z" B+ M* m/ w; b8 o5 D
1.6.2 使用Dependency Walker 工具探索动态链接函数13- {+ p( w, u# Y6 p# M
1.6.3 导入函数14) k4 f- D, w7 L) U5 Y6 C1 X$ F$ ^
1.6.4 导出函数15
2 _8 _1 r/ [# F; V! r1.7 静态分析技术实践15' U7 L1 l, E- x( }. E. {2 }! @$ b
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
% T. W6 q1 W# Y" r$ ]5 t/ w1.7.2 PackedProgram.exe:穷途末路18
% O* y* N/ j7 V! Y1.8 PE 文件头与分节18
; k/ C7 i$ s4 Z  G5 Y1.8.1 使用PEview 来分析PE 文件19, d8 y. ?8 i% W, {- \9 K- b
1.8.2 使用Resource Hacker 工具来查看资源节22
0 j( H* {8 Y  {( q4 E- r! s1.8.3 使用其他的PE 文件工具23/ Z4 q3 P7 |+ P3 ?& O2 ~$ X$ G
1.8.4 PE 文件头概述23
2 ]; w4 A" X+ |- g" d; K, @1.9 小结24: S9 a( H" q2 r) a! v
1.10 实验24
( N' k7 a# Q9 Z% k! ]
! }% A* D% t+ z/ N  `' x第2章 在虚拟机中分析恶意代码 27
6 J+ g* N* n0 b& a+ E  q0 f. i3 b) D$ m* j
2.1 虚拟机的结构27
1 m, I7 W3 f! q5 z+ s6 [3 s2.2 创建恶意代码分析机28
# n& n5 O+ [2 c$ c, Y2.2.1 配置VMware29
0 @  }& L8 ?7 V0 w2.2.2 断开网络30
8 q- {! p, |2 C2.2.3 创建主机模式网络30- q$ P3 M: Z8 j. [6 ?4 A7 `
2.2.4 使用多个虚拟机30
9 ]5 W. n5 [- d5 I2.3 使用恶意代码分析机31
3 Q. g; k( T" l$ S. i+ c9 a% l" L, v2.3.1 让恶意代码连接互联网31
2 x; S. ~  K& \! @$ ]1 ^2.3.2 连接和断开外围设备32
  I5 m% o& Q$ R$ W) J+ n2.3.3 拍摄快照32
9 N0 I, M( g/ Y7 l0 y2.3.4 从虚拟机传输文件33: W- a& }* E$ [0 ~$ t
2.4 使用VMware 进行恶意代码分析的风险34
& T' j: T2 O8 p9 c1 n' g4 {  ?" c2.5 记录/重放:重复计算机运行轨迹34
( ]  ~  ]5 R7 o$ ]9 T2.6 小结35; b' B! g( L& g! o

  ~2 c2 Q3 |3 b' u+ {' a. \4 Y第3章 动态分析基础技术 36
/ t7 M; n2 \' v$ F  `
2 G( ]6 g9 Q1 X; J; M3 L; G
3.1 沙箱:简便但粗糙的方法369 n$ x% M6 G" r6 |; h4 H& N
3.1.1 使用恶意代码沙箱361 O" u6 I& i; d7 N+ o+ Z$ F2 M
3.1.2 沙箱的缺点37
9 Q! J; a/ a/ @+ u3.2 运行恶意代码38
2 D# J$ i' X& s7 p9 J! M3.3 进程监视器39
( y' `6 n% N% z- m+ ^+ c3.3.1 进程监视器的显示40
: ]8 T7 }  ]) L) r3.3.2 进程监视器中的过滤418 N: G3 j& C3 Y" v, ^/ a
3.4 使用进程浏览器(Process Explorer)来查看进程432 x/ @* ?1 x( Y% Y. ^) U8 d
3.4.1 进程浏览器的显示431 `9 \- r- V. M" O0 g
3.4.2 使用验证选项44
5 f3 j. V* Q* G) o9 V) w3.4.3 比较字符串457 f$ m) @8 a$ F# a
3.4.4 使用依赖遍历器(Dependency Walker)45
$ D, S# ^- d8 z& F! b3 ?9 b4 W2 a3.4.5 分析恶意文档46
' B# e2 l/ j9 ]& F% k3.5 使用Regshot 来比较注册表快照46! ~; p( J3 I9 f3 W2 O; Y
3.6 模拟网络47
0 I' f. `$ X2 M! t4 I2 z& n6 ]3.6.1 使用ApateDNS47
. N7 Q7 k# E/ X) C& \: D4 m7 G! A3.6.2 使用Netcat 进行监视48
3 d6 ]3 f8 \. n) k0 X5 i2 ]3.7 使用Wireshark 进行数据包监听49
+ ]8 n. g0 k- A4 |* P* k3.8 使用INetSim51
) z, s" G/ m( P* P5 b$ ?- ?3.9 基础动态分析工具实践52
7 \% H9 N9 \3 E) a! p, ^3.10 小结55& v  I. N" m, N( y$ n: n2 F) L
3.11 实验56# D( T- G. Z6 R9 }( V3 S

8 S* W. l2 i! [1 X
* m0 [* t- l) y( Z& j第 2 篇 静态分析高级技术篇' w# Y+ E. k4 L' _. V+ ~
5 i8 x& d$ O/ r" V! K
第4章 x86 反汇编速成班 60
4 N7 A+ k" {7 Z5 M4 ^, |: ~' F# O2 S5 k7 J/ j
4.1 抽象层次60
0 n0 v9 w9 [+ A; s1 E4.2 逆向工程62
7 [& s7 P+ d# [) s4.3 x86 体系结构62( \8 g7 i6 Q4 B# Z
4.3.1 内存63& n) w( X6 q# [, c6 `2 q
4.3.2 指令64/ T) }/ \  O* {
4.3.3 操作码和字节序642 @% X5 P" i/ N' X1 o+ }
4.3.4 操作数65
: S5 J. R4 E9 E8 t' U( L2 @4.3.5 寄存器659 H; ?5 g2 A0 M% P1 A( e7 ~6 K
4.3.6 简单指令67
* \$ i. Q6 ^  t4.3.7 栈70
7 W* X" Y3 g! z- ?3 v% R4.3.8 条件指令73
1 f; a9 X. T9 V) ]! A. [8 V( }4.3.9 分支指令73" s8 g0 d2 o2 ]0 r3 [7 E
4.3.10 重复指令745 O' q3 m* y$ y  @: {0 I
4.3.11 C 语言主函数和偏移76' J. {0 j  J2 K3 t# b' {* z( A
4.3.12 更多信息:Intel x86 Architecture Manual77
) \4 h" }  r+ b9 l1 ^( j4.4 小结78" S: ]% p6 A& U8 v

6 b( m' t; v. ^8 ^. V8 ]第5章 IDA Pro 79- o. g6 s) d' u' _0 W7 n7 s
, T9 P0 h+ D6 X- i4 T
5.1 加载一个可执行文件79
& U* z9 {  a6 x( F2 R% B% y' k5.2 IDA Pro 接口81
* o2 J" S, g2 u5.2.1 反汇编窗口模式81
' k2 C4 E# b% V! u' t5 M5.2.2 对分析有用的窗口83
) W2 u. z# ^# a" M9 ~5.2.3 返回到默认视图83& T3 T: ^) k' U  V: N0 f' q
5.2.4 导航IDA Pro 83/ p. Q$ r3 Z* q
5.2.5 搜索85
5 r. C% W; Y! Q8 P5.3 使用交叉引用86; N8 r& o3 j5 y
5.3.1 代码交叉引用877 t3 K& y; l4 X* H
5.3.2 数据交叉引用884 u5 V# u1 s8 A- ^
5.4 分析函数88
' m: W- S" u, e: t1 n5.5 使用图形选项89; F- M, i: w- o& J! r9 D8 T0 ~8 A
5.6 增强反汇编91# ]. h; H7 R9 C. L: P7 H9 t
5.6.1 重命名位置91( n( [  }( u( S) O
5.6.2 注释92
! f7 I3 I5 t- c6 ]! J8 W5.6.3 格式化操作数92
& V, T& s' j9 Q! [, t' `# Y3 _5.6.4 使用命名的常量93
% F% x1 ?  h; V- @( s4 Y+ J- U5.6.5 重新定义代码和数据94
  y% F% D$ @/ U( }( [5.7 用插件扩展IDA95' X! K$ m' P. k+ ^3 O# S
5.7.1 使用IDC 脚本96
- t) z: F$ H, S! g+ X- W5.7.2 使用IDAPython97
3 h) [" y  O& ]' o0 T. J# G! t5.7.3 使用商业插件97( B/ n/ D8 A. _2 `! ?( {4 X
5.8 小结98: c2 @3 P, @. ~; Z) X2 [, b
5.9 实验98# |+ W& d$ D0 n% x5 ^9 Y

& n! N, V, k2 Z, w& _6 C6 h$ I第6章 识别汇编中的C代码结构 100

* \  ^) o& O; Z' d6 B8 T: i* N+ K
6.1 全局与局部变量101
! M  f1 a. X& I3 }0 d/ H6.2 反汇编算术操作102- C& G! O9 A' z; }5 n( Q; ?
6.3 识别if 语句104
) ~0 h. K6 L; P6.3.1 用IDA Pro 图形化分析函数105
7 b6 Q2 J, V* @& B" W1 P2 O6.3.2 识别嵌套的if 语句106
; L! {, g  x: n6 ?" O/ ~' u6.4 识别循环107. r$ ]; c. |, Z+ Y$ v
6.4.1 找到for 循环107
4 }* m% c" T. X5 H6.4.2 找到while 循环109* Y: q* i) G; B, z0 T
6.5 理解函数调用约定110
& z' y" a$ e- A8 T- R* D6.5.1 cdecl110
; u% z! \: @$ t3 F; ^: I# Z6.5.2 stdcall 111
9 @4 h% T3 J3 _' ?, D/ W3 E3 ^$ D6.5.3 fastcall 1115 j' J) O7 a( s4 m9 {( L) C
6.5.4 压栈与移动 1119 Z- a: P0 b5 q5 ?7 r
6.6 分析switch 语句1127 C  K! x* u% G( y0 p
6.6.1 If 样式1125 n/ _8 r6 l: a
6.6.2 跳转表114
* g% U+ H9 {7 o' j& k3 w0 J) y6.7 反汇编数组118
" V* n& {7 Y# d9 J3 d  v& I6.8 识别结构体1195 \! H( S8 x4 o5 d7 ~4 r
6.9 分析链表遍历121, H' M( T# ]6 @" }
6.10 小结123
  A& r  E, j2 S" Z! `5 F8 G6.11 实验123
* c3 }$ u" O0 L7 `6 M. I& G% z
( f- |5 ?; X2 h/ V/ R5 `第7章 分析恶意Windows程序 126
9 g  o: U1 T6 {' l# C

1 d  q: @' g! U3 }* N7.1 Windows API126
: N2 v) B2 T* V7.1.1 类型和匈牙利表达法126/ ]8 E: c$ D, g6 U! v; S3 ~
7.1.2 句柄127
) G- _# p+ z* V7 S7.1.3 文件系统函数127
! i$ ]: ~' @0 P) [: Y: N) s7.1.4 特殊文件128
9 V! P, t1 U0 F% A7.2 Windows 注册表129, C6 O: }/ f( j9 [" Y$ {
7.2.1 注册表根键130' [  O1 R( J& f1 L
7.2.2 Regedit131
3 n4 z' e' O; u5 y& D6 e% P7 @/ D7.2.3 自启动程序1311 C, I. y, J. a/ m+ y; Z1 P: a. N
7.2.4 常用注册表函数131$ i% ^. s; ^, n7 L
7.2.5 练习分析注册表操作代码132
8 f0 `% \! ?/ w$ A9 {7.2.6 使用.reg 文件的注册表脚本133. [* q, y& X' x, `; H6 ^5 H
7.3 网络API133
. ?* R+ W+ k7 V. b9 D% R7.3.1 伯克利兼容套接字134
2 G9 Y8 h3 K/ b6 p7.3.2 网络的服务器和客户端134
4 @; \8 M4 k9 U8 x+ _2 L; s5 j, ~5 P7.3.3 WinINet API 135
; [7 m/ v$ _" y- n8 {* z! o7.4 跟踪恶意代码的运行136
6 R/ P! a$ x8 }0 Y7.4.1 DLL136
) {/ p& J: X2 ~5 Y1 p' D. a7.4.2 进程137
7 A2 W0 l% F, I8 |! i0 Y7.4.3 线程139
% Y. F6 M& M. m" P* D7.4.4 使用互斥量的进程间协作142
4 i6 @8 d' o; R  a; ]7.4.5 服务143+ {- S- Q- s* e' L
7.4.6 组件对象模型145) {' s) u+ E% ]  g) {8 \/ G
7.4.7 异常:当事情出错时147' Z7 T; Y4 y4 x7 p: v6 r5 C) s
7.5 内核与用户模式1485 Z/ r" d8 e' t! g2 S
7.6 原生API1498 }& q0 ~. Q1 `
7.7 小结151
4 L$ J& {' U& \+ H: O+ \: B+ x7.8 实验1515 A: g; F7 p1 S

, [3 T' T5 i5 @6 ^
' [' n+ E# n* G, [: C/ G第 3 篇 动态分析高级技术篇, ^: ?- h% g! I5 U6 @9 ?5 J

7 L1 J% I/ y- e1 P2 w( v) b4 v9 W第8章 动态调试 154

# _+ G( ?- c7 P2 A) H9 l. l$ q7 O) o: `8 ]4 Z
8.1 源代码级与汇编级的调试器154
+ r& Y, \6 T1 i, q, W3 R* T8.2 内核模式与用户模式调试155! [, `9 h4 D& w& M! H
8.3 使用调试器155
! w! @: ]7 j. |+ p5 U7 Z8.3.1 单步调试155
  V. G/ T- x; u* @3 V# V8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
7 q7 F6 k! [5 t8 V" I, G: ~8.3.3 用断点暂停执行157
  I3 r# `/ Q8 `7 b7 R8 C0 ?' y8.4 异常1611 L- ]; F' P0 Z2 O
8.4.1 首次和二次异常处理162
. S  C+ O2 d" c) m8.4.2 常见异常162( C6 g, o: I- J; `% D1 t
8.5 使用调试器修改可执行文件1639 \7 c% K8 o% O6 o" p
8.6 修改可执行程序的实践1639 y9 \! D' ]) W! a, l/ C
8.7 小结164/ ^) C& D7 Z; w8 m9 ~# }$ E6 q3 |- ~
8 T" [- U; t/ t  m
第9 章 OllyDbg 165

# K0 x& l% ]3 l; `6 d6 D1 s, M3 E
9.1 加载恶意代码165
8 g# A1 q8 H: a! Z) H( ^9.1.1 打开一个可执行文件165
! z- G( V8 o( m7 `( f( y$ t9.1.2 附加调试器到一个运行程序1661 ]+ Z* g2 {+ E- i4 c* I
9.2 OllyDbg 的接口167
5 V7 u8 E. z; L# t9.3 内存映射168
" q% Z# ^; d# S2 [# p9.3.1 基地址重定位1692 I: u/ A4 W' p$ P- S" P% i
9.4 查看线程和堆栈170
) j6 a9 Y9 [2 w* o( k# V; V9.5 执行代码171
% V6 M( M( n  H1 H6 c9.6 断点172$ Y' P) n' O( ?9 M8 h
9.6.1 软件断点173
1 F, E* Q. Z, R/ ]/ p+ N2 R: p! I" w9.6.2 条件断点1746 J. a3 B) E0 S/ T; X3 b
9.6.3 硬件断点175+ i* O, Y% p. R0 s; V
9.6.4 内存断点175
  K8 C) I  J7 e4 W2 v. Z9.7 加载DLL1762 i& L. t9 c( {, C( q$ k
9.8 跟踪177
/ K5 W" }5 M7 R7 K! y! P  y9.8.1 标准回溯跟踪177
) T$ l2 b, k! p  K$ v4 ?! q9.8.2 堆栈调用跟踪178* n4 e# q) A; w) `/ N( V1 a
9.8.3 运行跟踪1785 ?; c% Q- _1 `; O! P
9.8.4 跟踪Poison Ivy178
- ~  f8 J1 S7 N5 V9 \7 B7 |9.9 异常处理179$ I# @. X/ y( O5 Y7 G) c
9.10 修补180
! L! M- R# N/ l% T1 r* b. z+ A, C9.11 分析shellcode181
1 q) ^. G# Q- Y9 {8 G! S9.12 协助功能182: a6 f- {' ?5 s. @8 P+ M8 A
9.13 插件1828 q: N0 k7 k- n1 [% L
9.13.1 OllyDump183* c% R% G' Y. d2 w
9.13.2 调试器隐藏插件183
6 M. t3 A6 H: u: R9.13.3 命令行1840 @$ s  \$ v3 i( t$ h3 w
9.13.4 书签185) T, c# A8 A0 h: Z! |/ o$ t! r4 d: z
9.14 脚本调试185! h: Q5 a! l1 N% f5 V8 w( x9 A/ w
9.15 小结186! Y4 T4 p5 F9 n  E/ b
9.16 实验1873 U: ]- _3 W9 a0 V

/ i' M& T4 X5 r) _- q% y第10章 使用WinDbg 调试内核 189
* }6 ?  \' M+ t! O" @5 S. y
+ K1 T2 _2 {' x: }5 y9 h: K3 p% x10.1 驱动与内核代码1890 N! `5 b2 a; x
10.2 安装内核调试191* A* s8 l& O" u. Q0 a6 n0 A% g% w
10.3 使用WinDbg193$ R8 L) n: |' b: z9 W
10.3.1 从内存中读取194
! S; Z3 i) S& J10.3.2 使用算术操作符194
% d5 K# k) ]3 S4 y* q10.3.3 设置断点194
4 t: k! K9 T6 K10.3.4 列举模块195
( b% l# E% i, n: \+ \  h10.4 微软符号表195
1 e" T3 P/ W) S# E10.4.1 搜索符号195
" K- Y1 {. d# s+ e$ u" t10.4.2 查看结构信息196
, v/ _! @3 X! I10.4.3 配置Windows 符号表198  Z1 ?" ^& O( B# C* T
10.5 内核调试实践198; o! l  W1 P' [# o* J: w8 s
10.5.1 用户空间的代码1983 l/ D3 ~4 ~8 d1 b3 ~; R% d1 X1 j
10.5.2 内核模式的代码200
7 N4 |! F! N! B" S1 s  V10.5.3 查找驱动对象203/ P# z, o: X+ N: f2 |
10.6 Rootkit204
0 F) S9 I8 `8 h9 O# ]3 \10.6.1 Rootkit 分析实践205
: G: _2 Q2 [* a6 A( H) {10.6.2 中断208
5 }' {0 g9 [2 \# R7 q9 k/ v0 \& F10.7 加载驱动209
! t6 |& y) }+ j5 R1 m, d  E1 m10.8 Windows Vista、Windows 7 和x64 版本的内核问题2097 P1 D9 o/ ~, D3 d6 A) s( V8 @* u
10.9 小结210) }. f# J0 h0 i$ G* |: G. P
10.10 实验210
" v, Q. j1 `# F' h( _  V, ~! ^" _8 z, N1 c+ i( ~$ j% w# \" t
5 X, s* ?! N3 U- _5 L
第 4 篇 恶意代码功能篇
! q4 g6 u2 L2 K9 \9 H' K: w8 l4 _$ D3 S7 x
第11章 恶意代码行为 214( x8 u' A* ]3 R( s. ^
* y- G7 K3 H1 A+ H) A" K
11.1 下载器和启动器214* q& ~: t+ _( j; f
11.2 后门(backdoor)214
0 Q! g/ d$ X1 |; g% c11.2.1 反向shell215
1 w; R" L; p4 `4 T' K" j, C11.2.2 远程控制工具216/ q! ?2 n$ v2 }9 |0 }
11.2.3 僵尸网络216' ~9 J& l( G6 X1 x% _, n) |7 M
11.2.4 远程控制工具与僵尸网络的比较217
+ g' U& L7 r" X& ~( M11.3 登录凭证窃密器2173 z; [  z0 U. n; l4 `: ^& }4 K4 d
11.3.1 GINA 拦截217
' e& e) _! p' Y' ]  e11.3.2 口令哈希转储2185 @. m! @$ k) `0 f2 Y" }
11.3.3 击键记录221
8 u; ?$ B4 [" `, j1 R# A& j& g' ?11.4 存活机制223% j7 [6 G! F3 X" w) E& W
11.4.1 Windows 注册表223
# Z3 ~( u1 V: X11.4.2 特洛伊木马化(Trojanized)系统二进制文件2259 e3 E  X8 b* Y" n( |# a0 d+ c
11.4.3 DLL 加载顺序劫持227
( S& v7 p* K: r4 u2 s11.5 提权228
3 q% ]3 K  R6 g1 t11.5.1 使用SeDebugPrivilege2288 T0 u$ S# \- c
11.6 隐藏它的踪迹——用户态的Rootkit229; c8 M  _) q2 P$ |
11.6.1 IAT Hook 230
$ @' M3 F1 n3 `& p. I' X! H; f' |! n0 Q11.6.2 Inline Hook 2316 O' c8 l' [( `1 z
11.7 小结232. A% B5 g9 ]) |; X/ V8 }
11.8 实验232
" e: Y5 V) [$ H3 F9 g6 f" R4 X
$ k9 }* j  e" u  |- s2 V5 u: h6 z第12章 隐蔽的恶意代码启动 234  J( f& j0 n3 _2 W  U' n
9 k8 ?+ M* F! T7 X3 {! p
12.1 启动器(Launcher)234
( v, }6 c7 I& Y8 G4 C9 v12.2 进程注入2347 U3 F, v8 i8 s/ `$ a
12.2.1 DLL 注入235
7 C; J: _  A( U12.2.2 直接注入237+ B, d* }: m0 a1 y) L
12.3 进程替换238
; K  O& k; u/ D  N8 ^. Y5 q& Y12.4 钩子(Hook)注入240
! c/ K  c- V9 e1 z/ ^( x12.4.1 本地和远程钩子(Hook)240( D& b2 r( T2 n3 u" {# o+ b9 y
12.4.2 使用钩子的击键记录器241
2 [; u; f2 S, c4 {3 W7 I12.4.3 使用SetWindowsHookEx 241, N3 k7 z5 D- V* _$ ]
12.4.4 目标线程241
' D' D- ]( N1 p' o6 B* G12.5 Detours 242
* s1 t! ]+ Q: s2 s1 B12.6 APC 注入243
  J) C! y8 I: ^: n12.6.1 用户模式下APC 注入2446 y. u/ [7 r4 `: K7 Y* {
12.6.2 内核模式的APC 注入2451 w$ K+ t) ]4 H$ y# V# x
12.7 小结246
7 p$ A. {( T  g) t' [12.8 实验246
( S# c$ L6 `* U8 V
9 l3 \& g8 p. n6 a9 D第13章 数据加密 248
4 c+ ~. M6 s5 [# W+ J& i$ b+ \
6 z) c7 j, b$ j0 J13.1 分析加密算法的目的248" x7 e1 v+ }4 }# Q3 F
13.2 简单的加密算法248
+ G8 n9 b/ Y- g5 `13.2.1 凯撒密码249: w; X  {( d) j  I2 ?) h/ j1 ?$ I
13.2.2 XOR249, z2 S- H$ Y7 h; G+ r
13.2.3 其他一些简单的加密策略254% l. e5 v/ X, \4 E! P$ b0 r
13.2.4 Base642554 I, I- o2 b0 {2 N2 p9 B
13.3 常见的加密算法258
0 e; g1 w. K! G0 k13.3.1 识别字符串和导入259
- ^- U& z4 d8 I13.3.2 查找加密常量2598 t& |% {4 d# a: @' U
13.3.3 查找高熵值内容261+ N* {2 B; b7 I/ P* L
13.4 自定义加密262
5 O, m) o4 H4 K9 d# g; A13.4.1 识别自定义加密263' M5 C* u4 X) A3 w- l3 S* c! u6 N
13.4.2 攻击者使用自定义加密的优势265" j& b$ Z2 O- ~+ e5 b
13.5 解密265
: o5 B, y$ E* _' F. m5 ?) ]3 Q13.5.1 自解密265
- b, @9 f/ b; k% y3 |3 Y13.5.2 手动执行解密函数266, S7 i  w; g; b8 V
13.5.3 使用通用的解密规范267
+ O6 v( W7 n4 P. K1 T( ?13.6 小结270% W, U+ b$ ~  f5 X% `
13.7 实验271" U) c; S! h8 z+ P8 b
& t, o; A. }6 R  o- Z- I8 o# @& d2 e
第14章 恶意代码的网络特征273
+ d8 a& d* l# c9 g# V
( H' v4 H1 c; l3 I' B7 O14.1 网络应对措施273
% d, b1 f) }$ `! q7 S/ N* S9 _: T14.1.1 在原始环境中观察恶意代码273
% X4 L2 ~6 ?9 a0 h) a14.1.2 恶意行为的痕迹274
) V. f/ W6 h5 Q& [6 a0 h* E/ X14.1.3 OPSEC=操作安全性275
0 Q5 k% t4 @1 I3 h' ^: Z8 G2 {14.2 安全地调查在线攻击者275: D) \" r! x4 k) J. G; x
14.2.1 间接性策略275( G6 E: ]0 ^" g% p* n8 P, H
14.2.2 获取IP 地址和域名信息276$ \4 M0 l1 Q( t
14.3 基于内容的网络应对措施278
/ i  B( C; f3 q: ?1 ?9 ^8 V14.3.1 使用Snort 进行入侵检测278$ G8 V. h) L' S
14.3.2 深入观察279
+ X5 h, _- a, S" s; b8 ?/ p14.4 结合动态和静态分析技术282# s1 T8 U8 |# E4 F* `
14.4.1 过度分析的危险2835 V4 Q2 c, h3 V( W$ F) U
14.4.2 在众目睽睽下隐藏2836 l$ M3 r5 d" j
14.4.3 理解周边代码286
1 w3 I  ?/ Y+ j! a7 ^$ B1 c' W14.4.4 寻找网络操作代码287+ Z4 G/ \) z! V3 S- }5 r
14.4.5 了解网络内容的来源288
8 ^' z+ S' t1 l14.4.6 硬编码数据 vs. 临时数据289
( i/ j$ T1 E" A; u" ~) A14.4.7 确定和利用编码步骤289
" R- w, s+ N( N% }3 B! ^! g2 q5 h14.4.8 创建特征291
8 T. ~: v& d  K/ R9 k14.4.9 分析解析例程292
6 C/ N8 B, b- S. d" U  x14.4.10 针对多个元素294
) Y+ U7 t/ u& P6 x0 G0 F3 O. L* G% K14.5 了解攻击者的意图295# Q& P/ w$ K) T
14.6 小结2964 c; ~5 f5 o4 w9 T" p( d
14.7 实验296
1 x( |7 v" E8 P8 r* |) G; k! ?) Z7 Q- }( K3 Z1 O) P

: ], z. x4 f& d8 V3 {第 5 篇 逆向工程* \& h; `; |7 i- V( s) C: ~& {
' d( U7 c7 [4 Z; `$ P! N9 {8 ]
第15章 对抗反汇编 300
+ `, t+ M! E9 }+ ?$ c6 Y' P: ^0 c# A( [4 j" ~* G, h% {
15.1 何谓对抗反汇编技术3003 Q( x4 j5 X4 f8 @
15.2 挫败反汇编算法301
" I% P' d6 \3 D* U; R8 j$ |# B15.2.1 线性反汇编302: V) _, Z+ z* N  i  L. O; M
15.2.2 面向代码流的反汇编303
! D/ q; \0 {1 f) o! Q% u15.3 对抗反汇编技术306: e+ f7 t$ C6 y$ Y. k
15.3.1 相同目标的跳转指令306
; p! N  g' k6 r; |15.3.2 固定条件的跳转指令307& q" s) D) Z0 ^3 z
15.3.3 无效的反汇编指令308
" g( K: n! x6 U7 z15.3.4 用IDA Pro 对指令进行NOP替换311
" b; O" H$ z/ x, {* ]# P9 K15.4 混淆控制流图312
& J- C; n5 e) B15.4.1 函数指针问题3129 q, D7 H) q5 l
15.4.2 在IDA Pro 中添加代码的交叉引用313. [) Q& G" f. Z2 X9 A8 o# y$ G
15.4.3 滥用返回指针3136 p0 S" i, R, p& J1 m% H" N+ b+ x
15.4.4 滥用结构化异常处理315
1 V. s& i& G5 y, d( Q15.5 挫败栈帧分析3177 I1 l$ H& ~- \9 H8 c( a$ s, K
15.6 小结3202 @1 I) g0 y% D) w5 s: w
15.7 实验3204 M( N3 O# I7 c3 B% I- n

; q- H" \, t3 X( y  H: z第16章 反调试技术322
4 g' f. `0 N+ e# i% D; H2 Z) ]) _6 x
16.1 探测Windows 调试器322
7 L0 V/ ]7 {  M2 W6 F16.1.1 使用Windows API322$ ]8 B( A- r# Q; _
16.1.2 手动检测数据结构324
4 w5 m  a8 G4 H  b! @16.1.3 系统痕迹检测326# Z5 }. N3 C! ]
16.2 识别调试器的行为327
3 `7 m7 Q4 u% B8 w16.2.1 INT 扫描327
  {* N1 c# N: O  L6 C/ v" X16.2.2 执行代码校验和检查328
2 G, S; u; z2 D( z- l* `$ l16.2.3 时钟检测328
* D* g/ n: C! L4 g* h! Q16.3 干扰调试器的功能330: Y* u. t9 y+ Y2 ]) {
16.3.1 使用TLS回调330. s% L* R/ i6 }: A) z" v
16.3.2 使用异常332
: K, U, ^& M/ Y1 B9 V, l16.3.3 插入中断333
" R' D) U; e1 w7 J1 k0 c) p16.4 调试器漏洞334
- i* h+ I5 a( U4 ]16.4.1 PE 头漏洞3349 y+ u: H( z( q( u! j# d2 I& Y
16.4.2 OutputDebugString漏洞336+ N" E# m0 q# @1 U
16.5 小结3361 e% ^9 a/ o7 ~& `4 ~3 O. |: z
16.6 实验336
/ K. c& M3 r* O( N% h( N5 q) }! p7 d" N, e3 o7 f9 I
第17章 反虚拟机技术 338
+ l; e/ ~% z$ f& i
8 v) t; B5 o3 B2 @% ?! R& O( T17.1 VMware 痕迹338
7 X) m' x% R& V+ ?) q17.1.1 绕过VMware 痕迹的探测340- J2 H4 w( h" o9 S
17.1.2 探测内存痕迹342  I* I  }3 W3 F: B7 c: D9 |
17.2 查找漏洞指令342
3 o' H1 a- L, O9 f4 Z6 d) T17.2.1 使用Red Pill 反虚拟机技术3430 S! b8 o- K: B+ K+ o1 d! D: a
17.2.2 使用No Pill 技术344# ]# x( d. c1 l9 }& ~) H
17.2.3 查询I/O 通信端口344
/ ~7 C' g( ]# }" h  V17.2.4 使用str 指令345) t5 E  y4 E: o$ y. D
17.2.5 反虚拟机的x86 指令3461 D8 U' N2 `+ r; m
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347- `, z  |) z1 i3 Z" p, S9 i
17.2.7 使用ScoopyNG347
: o/ Z9 E$ R( p$ A7 n% K3 {17.3 调整设置348
; R$ |) ?+ _! ~, b; |17.4 虚拟机逃逸349  c: |2 p5 U6 {/ f' i
17.5 小结3492 Z: `" q6 J1 ]' v# l
17.6 实验349
9 o: {9 e5 y3 S5 I- n8 k! e: D/ j* m7 k
: b/ Y) a# b  x- Y7 k. n第18章 加壳与脱壳 352
  ]( o& k( {* u$ U& d
1 H' b- S8 G4 D8 k! Q+ c18.1 剖析加壳352. F; Y: ^; k% x" [2 D
18.1.1 脱壳存根353
$ p, e% G* }3 \8 X6 {! B% i18.1.2 加载可执行文件353- G, {( c. |3 N* J
18.1.3 解析导入函数表353, H6 l7 `: t9 M+ h3 s! H5 }% ~" H0 P
18.1.4 尾部跳转354
0 Z& R5 X* D2 W( f; m! j9 T. S18.1.5 图示脱壳过程354# V$ v- Q/ ?" D2 {
18.2 识别加壳程序3559 S/ w. p" x. u) S* s' Y6 I
18.2.1 加壳程序的标识355& v) I! t0 p( K) h8 F* K
18.2.2 熵计算356
8 }! a  i  M3 O+ |% ?* U$ }1 ?18.3 脱壳选项356
. e  S8 m& y9 Z! n18.4 自动脱壳3563 J1 q9 y3 N3 B( L
18.5 手动脱壳357% ?* {" y7 |! ?. {" _. P
18.5.1 使用导入重构器重构导入表358: k. R" q- ?/ f  u' e# B0 p
18.5.2 查找OEP359
5 D5 `8 t8 O4 I, l4 j5 u) T18.5.3 手动修复导入表363
1 z# ?3 R6 T$ Q7 t18.6 常见壳的技巧与窍门364
) }/ g+ Z/ M  v- V# _18.6.1 UPX 364
4 r$ l4 G9 T! ?+ Q18.6.2 PECompact 365
! Y! c6 n2 [4 E4 z  d& ~0 N18.6.3 ASPack365
! t9 O' `. U' B1 C: p& N3 J1 E18.6.4 Petite 365
1 Q5 z6 E, Z4 O- J0 F. C9 p18.6.5 WinUpack 366+ Q& }" W& v5 P3 ]: O7 L. `$ n
18.6.6 Themida3672 o1 i9 h# i: t4 N7 V  `* B3 P
18.7 不完全脱壳情况下的分析368/ v1 ^' s/ k) F5 T
18.8 加壳DLL 3681 G( x  W6 B1 B- C, m' \
18.9 小结369
, n/ ~0 C9 _# U' k, @. ^' m% |5 R18.10 实验369/ p; I- [1 c$ L6 z

- g( I/ d$ D: z. \5 k* \
' h- N( a' v0 Z  @; q第 6 篇 高级专题2 J% M9 D. A8 ~0 c6 L! P
1 y1 P  p0 [2 u
第19章 shellcode 分析 372
0 [1 O  i! \- p1 s2 e
5 W& M7 ~" T5 S/ }) A# f19.1 加载shellcode 进行分析372
5 b9 ^  [9 G$ h; u: @; Y' |8 Y19.2 位置无关代码373$ c5 ~+ f: F, Y) B
19.3 识别执行位置373* m" }  a* g7 k. X( d- j, U7 F( ?5 }2 V
19.3.1 使用call/pop 指令3748 a3 A' K2 u6 _2 m0 \9 R' G
19.3.2 使用fnstenv 指令376
$ Z2 C6 x, i) B) \7 D9 v) |2 W19.4 手动符号解析377, k6 M* q) d, M, y3 F* D* a
19.4.1 在内存中找到kernel32.dll378
( L4 x8 I) F! X  B19.4.2 解析PE 文件导出数据380$ j- E& ^' I. j0 F+ J8 y2 {
19.4.3 使用散列过的导出符号名3822 x9 ]% o. y8 G: g! ^; |7 g
19.5 一个完整的Hello World 例子3839 J* c/ _9 n" ?
19.6 shellcode 编码385
# A- V" {: C+ y0 c4 v7 H/ ]19.7 空指令雪橇387
- ~& e5 V# ~5 Q8 u19.8 找到shellcode387
( ~# P: Y6 m0 f, H- `0 h19.9 小结3889 J$ @7 W1 m4 J* M* `, L, S
19.10 实验389/ {& [# K4 M( M3 j9 p

1 I8 [- p3 W7 w% d+ V, g& X第20章 C++代码分析 391- b' }: E! ^- D6 _- b
! E! y, P, K. \* [4 S
20.1 面向对象的编程语言3916 v5 V6 a' t  T- |9 W
20.1.1 this 指针392
& o. J5 Z3 v; C9 z3 x20.1.2 重载与修饰394) n2 k7 K) M/ e$ b! L' ~
20.1.3 继承(Inheritance)和函数重写(Overriding)395
" H7 V2 y( c$ p: d, D, i/ W) T$ G20.2 虚函数和非虚函数396) H+ x. d& c$ A8 H' |! i
20.2.1 虚函数表的使用398
0 `' h% ]6 g) ?% ^% K% C2 J, T20.2.2 识别虚函数表399
1 f* B2 S+ C3 ^3 b4 {20.3 创建和销毁对象400
9 Y* h& w+ P. w  a20.4 小结4012 }5 g1 U  @/ y- p) W- ^
20.5 实验401
7 L% z5 S# H% i4 z: X+ F5 x3 G# Z" ^% r' ]
第21章 64 位恶意代码 403- z  K. j) R1 i- R( F4 F7 [

: y8 ]' ]. K  D  A21.1 为什么需要64 位恶意代码403$ }4 A$ |' ~# o% O
21.2 x64 架构上的差别404
3 I) m+ ?" ^) x; _! F21.2.1 x64 调用约定和栈使用上的差别406, p: A1 `% h' @# \9 x$ a: ^/ H
21.2.2 64 位异常处理408+ E: P1 I! A4 a4 _6 c, @7 ?7 N
21.3 在Windows 64 位上的Windows 32 位408# o1 Q' Z8 T* B" e* h$ g
21.4 恶意代码功能上的64位提示409
2 p7 v- X: c2 t, Q& b# A21.5 小结410, t9 d& z- S1 H0 C+ j
21.6 实验410! H2 \( H4 q8 @

! l: w1 Q1 f( @附录A 常见Windows 函数列表 412
6 t8 H- ]3 O5 c8 b! j
) }6 p6 D- E# J+ T' p9 c: U附录B 流行的恶意代码分析工具列表424' r$ v9 ~- B4 E! W8 P2 x

; A* N' l3 ?; Z$ M8 B4 z附录C 实验作业参考解答4354 M1 d+ Q6 x+ Q' F. r1 S- K
4 {! T4 E3 S2 Y$ v! L
附录D 致青春,基础软件开发的中国故事 691
* M' s% \) C2 M0 P! C/ {3 G+ J4 w9 p) {5 X7 A# C' g
附录E Syser 操作入门 695# \$ M1 u' j/ F+ }* V

! N6 {# K7 _6 S- j
* @/ g! a2 f/ B' F0 |0 |* u2 h
想知道小甲鱼最近在做啥?请访问 -> 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  R7 h$ W% a( [. t4 i' {8 @: }* O
什么编程语音写的?
+ r; k7 f6 J) z1 x
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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