鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

4 X* ~. r% {! ]! m6 W+ q% O; t& G" L/ a& j; p
书名:《恶意代码分析实战》
7 r) |; c) g/ o3 d2 Y作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)2 t' I2 l6 t5 X  |+ J
译者:诸葛建伟,姜辉,张光凯 6 i2 C; e$ M% S- d, f0 H
出版社:电子工业出版社+ E2 i, c$ c% j8 }
出版年:2014年4月1日(第1版)8 Z$ |) p. w' s. A0 N. R
定价:128.00元
" J# i& E" _7 a% n& w7 D9 a装帧:平装; n9 Y- J1 _3 I; ?3 H
ISBN:9787121224683# F; \& [* o1 t( F6 H8 J

  x3 o. W. y2 p购买链接:) w# e0 h( Z/ l' |- u5 Q

- M. j" L; H, V+ ]7 O" W2 c, |

. C$ t& Z; ^1 \/ N, K6 D亚马逊 -> 传送门- T- [$ w0 Y) M% [1 r* Q
- z& m, I/ g) P- |
当当网 -> 传送门1 N; K- V( i% E& B' T

1 ~0 f7 b4 a5 p" \2 L/ W京东 -> 传送门! z7 n' d) m1 h# s4 j

; J$ p4 n( }/ k1 Q, T- b% H6 c. `$ W天猫 -> 传送门
! T; |0 k/ {: M( h8 a# l
5 e! _, w$ d1 u- X: |1 Q. @" p+ X* z# n# Z+ P8 H4 Y1 k9 z
内容简介:( _1 ~( s8 @: m( l6 j) a6 {
1 w) j- Q- h8 J0 a; y1 t


1 `: g& `: K+ ]2 [《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
# A: ^& D* n; ]% G
& V9 k( t" k/ U0 d# l* A《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。7 l: T* i9 e* u! }

; O8 R7 U0 v  s# j( f9 k针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;  b6 P4 J( B; L% R$ `! d
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
2 N5 Q0 _0 X- A9 j: \* U1 ^
5 x" @2 j$ n$ K: D' t; @目录:8 I! v' c8 k. S

* q* x4 l+ d$ G# j) q# l. j% o0 t8 ~

0 _5 F2 i' j7 P5 f3 l* @0 O第0章 恶意代码分析技术入门17 V# U6 f+ c" K% T$ e3 v
+ f5 g5 v5 `' j3 T4 c- x2 x+ g
0.1 恶意代码分析目标1
; }4 [/ r# |5 S4 Q/ E0.2 恶意代码分析技术2- V: H+ F  f+ n. P$ i- f% B
0.2.1 静态分析基础技术2
% G, C" v. Y: u% Z7 o8 w' E# U. H0.2.2 动态分析基础技术2
$ o4 Q. v  `" b! H. T0 g3 R0.2.3 静态分析高级技术2& `+ s: W' E  m3 j$ ]/ `. |
0.2.4 动态分析高级技术2
3 M  z( N& E" l+ d" i* `2 n0.3 恶意代码类型3' T& A% Z, r/ M8 x% R- Q8 e, {
0.4 恶意代码分析通用规则4
9 k) N/ m4 z# z4 z# t1 X* E+ ^$ H. l, u/ o
$ R! h  k( s2 i/ k9 q! F$ D
第 1 篇 静态分析  B; p, \6 O5 f- L- p" F
: n( ?/ @5 I/ h) W2 T
第1章 静态分析基础技术 6$ Y! ]8 Z1 D& k
+ ?( a; r# T' `6 ]
1.1 反病毒引擎扫描:实用的第一步6' J3 X1 C+ O: i7 [- M
1.2 哈希值:恶意代码的指纹7( ~$ L& t6 {2 g- C" j, T+ v6 I
1.3 查找字符串7$ q1 \, e# e# h1 a5 }7 v- A
1.4 加壳与混淆恶意代码9) R- o* ]' \8 [
1.4.1 文件加壳10
$ f% e$ m$ }: K3 o" l1.4.2 使用PEiD 检测加壳10. L2 O# B2 V9 F; o6 J/ r
1.5 PE 文件格式11
2 m6 U3 B8 M) v- w' w6 u1.6 链接库与函数12/ v9 I8 Z% d9 l1 H
1.6.1 静态链接、运行时链接与动态链接126 F$ e" x) M, E
1.6.2 使用Dependency Walker 工具探索动态链接函数13
! }* k5 p1 D* Q5 \; \9 L7 f1.6.3 导入函数14% `1 }- v6 g1 w1 f' I% Y- f
1.6.4 导出函数15
5 g) J* c& P+ ]1.7 静态分析技术实践159 T" j8 U; B9 j- H5 ]  ^+ U8 L( @  D
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15: g7 v0 \5 H# t; {" P
1.7.2 PackedProgram.exe:穷途末路18; T' H7 }7 N5 u  C. z7 F
1.8 PE 文件头与分节18  Q" T& @% s0 w& a
1.8.1 使用PEview 来分析PE 文件19
6 Z7 p! `5 `* g- [" P1.8.2 使用Resource Hacker 工具来查看资源节22
: S* D) o2 F) w* N, A& O! o1.8.3 使用其他的PE 文件工具23
/ v; t+ o9 o% Z( r0 g1 {- D& Q# l1.8.4 PE 文件头概述23! p7 ]; ]+ H0 e
1.9 小结24* Q( O( o: k7 \. D4 c4 F3 H" o
1.10 实验24. ^4 N0 j/ n) A: `% H/ C
* C5 q) B( s! x2 v  s/ e: z
第2章 在虚拟机中分析恶意代码 27# c5 X- i' E" W* g  j/ N
* q7 F# q' B7 \
2.1 虚拟机的结构274 ~2 u% e0 }3 e# M) ?/ X0 I
2.2 创建恶意代码分析机281 }. D) q# l5 o$ s. W
2.2.1 配置VMware291 p8 s& x; Q; t' a# q
2.2.2 断开网络306 e' \( b2 t* {* }
2.2.3 创建主机模式网络300 |1 D3 N, v. T  j  `! w$ J$ X
2.2.4 使用多个虚拟机30
& \. D% [& P  b- y# F2 _5 A( i2.3 使用恶意代码分析机31
7 }$ M, r3 y. {% ~2.3.1 让恶意代码连接互联网31: G. [1 p, E" g3 V- \2 {3 z6 ^& h
2.3.2 连接和断开外围设备32
4 L: F, \* @) a* B* ]: f2.3.3 拍摄快照32
- m7 N2 A  _) B3 j4 p7 [2.3.4 从虚拟机传输文件337 G2 R* o- R8 L# c# x
2.4 使用VMware 进行恶意代码分析的风险344 e: z2 h; ]. C, ?/ [* s
2.5 记录/重放:重复计算机运行轨迹34
+ a1 L0 t6 Y# a5 }2.6 小结35( b0 m6 D" D3 e$ d! ?/ R: i+ I

/ f( _9 F$ x+ _1 g第3章 动态分析基础技术 36
% b; a- Z- Y+ o2 j: i

4 H/ M7 H0 t4 n$ Q6 `$ S" y* o3.1 沙箱:简便但粗糙的方法36
7 P7 _- a. u0 b! n3.1.1 使用恶意代码沙箱36
; c' K+ d' t, D* r3 K! l3.1.2 沙箱的缺点37
; B4 w% F% }8 J  R" \. c5 @3.2 运行恶意代码38% \; S' H0 ^9 d" h* h6 [" U) b  `, R
3.3 进程监视器39
/ K- w- X( x% n7 @! V' p: \3.3.1 进程监视器的显示404 a* y3 N. j0 L# G) q
3.3.2 进程监视器中的过滤41
5 J  ]2 ?& Q5 [9 D1 ?* S3.4 使用进程浏览器(Process Explorer)来查看进程431 W4 o7 A* m/ R" y3 h: ~6 b# A
3.4.1 进程浏览器的显示436 Q1 t4 M) w$ i" s- ]' x% H
3.4.2 使用验证选项44: Q* |! i9 n/ l4 B1 O
3.4.3 比较字符串45
/ l9 V7 m4 a) j" v' X. r& K9 y0 a: M1 X3.4.4 使用依赖遍历器(Dependency Walker)45
( B% c" x2 G5 n3.4.5 分析恶意文档46
( ~$ J( a4 D3 f0 Z/ L* Q3.5 使用Regshot 来比较注册表快照46
( z8 e, J" m$ f3.6 模拟网络47& X4 i: U# S3 f" m
3.6.1 使用ApateDNS47; O0 s; H" ^9 `- }
3.6.2 使用Netcat 进行监视48. [, Q( K# L- e  w0 U& X
3.7 使用Wireshark 进行数据包监听49
; I  o5 z" M$ x3.8 使用INetSim51
$ ^; ]2 G2 B: t4 e+ C7 S" A7 G3.9 基础动态分析工具实践52* y3 Q4 {0 w' e* e$ |
3.10 小结55
9 O  y9 c  |8 L3.11 实验56
5 @2 T6 w; M" M9 P( r+ |! a
- l6 U* |4 Q' l) ?% X$ O  G9 y. {/ i6 ~+ f* W) W4 l
第 2 篇 静态分析高级技术篇$ ?: u6 E9 ~" W) y- g# w

& Z4 G2 d- k. G6 p1 U9 W0 t第4章 x86 反汇编速成班 603 E" a$ K5 j3 N% m' j: v8 x

! Q& m& F* y: T4.1 抽象层次60/ Q% w/ m& |5 `
4.2 逆向工程62# U! \6 V8 A7 g) \0 `
4.3 x86 体系结构62
: t$ p. s9 Z3 o0 V, u6 L4.3.1 内存63, y7 k# i0 |/ U' S9 ~6 A( H
4.3.2 指令64
/ X; ~& x- r! r8 J( [4.3.3 操作码和字节序643 w; F5 Z/ q" v0 ]5 a
4.3.4 操作数65; I" M& b0 X* W
4.3.5 寄存器65
+ i* w3 n1 d# X/ ~- R' m6 k: f, n4.3.6 简单指令675 \+ k0 q5 K' p7 o
4.3.7 栈70
* G: c0 \2 u( J4 I8 n1 e, D6 d4.3.8 条件指令73  _8 j( Z; i2 h8 H
4.3.9 分支指令73. |# h, z" p0 I( e7 V2 J4 R
4.3.10 重复指令74
4 q( P0 j* [! y) w9 n  s4.3.11 C 语言主函数和偏移765 X" u5 D; N8 }' c. s# X$ _
4.3.12 更多信息:Intel x86 Architecture Manual77
, ~5 @& t8 @! K8 x4.4 小结78
0 t5 R2 D2 S3 p, F" {6 K# W( b' H% F/ E. R' {- @
第5章 IDA Pro 79& x1 X8 P4 ?+ C. l! [% m0 |. b) i

- U1 H/ g/ {+ X2 K- u6 Y5.1 加载一个可执行文件79
  \' ^0 ]+ [. c  E3 y) T- I, u5.2 IDA Pro 接口81
6 u3 A' S- b" @* }: v8 Q. k5 l! v5.2.1 反汇编窗口模式81! ^1 [) ^( n* g  b, P
5.2.2 对分析有用的窗口83) Z' J7 k9 _7 F2 G$ F& M1 r  Q4 F
5.2.3 返回到默认视图83; `3 N# p5 @9 `3 `8 |! {+ c
5.2.4 导航IDA Pro 83
$ q/ w0 k& X% Q0 L5.2.5 搜索853 L1 g8 Z( ]. ]) M% T" Y
5.3 使用交叉引用86  \6 i- Z# X: {& \
5.3.1 代码交叉引用87" k3 d  ^! v0 f; Q6 r
5.3.2 数据交叉引用88
) X( x. v" B  D; r  X5.4 分析函数88  n' B  b+ @$ a0 Y# L4 S' ?) w
5.5 使用图形选项89
. u/ {( s8 }+ F* B& A9 x5.6 增强反汇编91' e, X- R- P; k
5.6.1 重命名位置91: a. ^! ~% X1 m& ^" ~/ `, i
5.6.2 注释929 q. \+ b; F* J! z6 T! {
5.6.3 格式化操作数92
; [9 e9 v! I% R8 |5.6.4 使用命名的常量93" M9 F8 p; Z% R
5.6.5 重新定义代码和数据941 e" f0 B8 H' F9 ~4 X
5.7 用插件扩展IDA95
" S4 `/ Q' x3 `; T) t" Y# U0 J; N5.7.1 使用IDC 脚本96
/ o2 x- D& M- z5.7.2 使用IDAPython97
2 o% _1 C* D$ \$ V5.7.3 使用商业插件97+ @+ L/ r9 }2 N) p
5.8 小结98
- X0 `4 ?+ X2 J5 z1 k5.9 实验983 T0 {$ ?8 i3 b

0 U9 B" t/ v) C) u! Z+ X0 H2 h第6章 识别汇编中的C代码结构 100

6 z7 k8 o/ L2 [) f$ S
3 o9 v9 [3 p0 D( T6 P6.1 全局与局部变量101
! m1 D& V4 O" c8 i; t* L' q0 O6.2 反汇编算术操作102% @' N' x* l/ S6 p$ i2 W3 V5 `0 W
6.3 识别if 语句104
, d" Z# B0 g6 K0 j* \5 P6.3.1 用IDA Pro 图形化分析函数1051 Y% e( }  N$ B  |% F2 u( Z
6.3.2 识别嵌套的if 语句106
$ m" G2 }# F$ F/ w0 }5 R! ^0 L6.4 识别循环1072 c2 p( M" E* h* {
6.4.1 找到for 循环107
0 ^$ f8 o) y) I1 }7 p: b, w' Q6.4.2 找到while 循环109
0 y0 g# i8 w$ L  S6.5 理解函数调用约定110. u* _3 H; a' h4 ~, L
6.5.1 cdecl110  v9 @0 T& Z; D0 A; |) f% d
6.5.2 stdcall 111
* R- ~: ~0 k" I9 D4 E% S- u! ?6.5.3 fastcall 111
" J. P4 L1 u4 X+ x( k7 m( n% [# n* A, G6.5.4 压栈与移动 111
) C- y  P4 i# [; c, {! F6.6 分析switch 语句1126 o) S3 B! M! l' o9 D
6.6.1 If 样式112
! h5 m2 m+ i7 d8 C4 S& h6.6.2 跳转表114
3 Y, _) m: N4 ]6.7 反汇编数组1188 B4 |  n( Z4 V& |& X3 X( F
6.8 识别结构体119
. ], V4 P" e+ t) W* n9 R6.9 分析链表遍历121* G9 m  ]( ^) h* b
6.10 小结123
9 @& O4 C6 D! @" j6.11 实验1233 N" h% ~& A0 z3 O9 p; _; m/ L  y
9 s# Y/ u- ?4 E
第7章 分析恶意Windows程序 126

2 u3 M& R# V! l+ L) h; G' E9 {& u: P4 |7 V
7.1 Windows API126
* \/ K, b+ v3 K7.1.1 类型和匈牙利表达法126, ~) I' c9 w: G# m4 R3 V
7.1.2 句柄127& d9 k5 Z5 @- \+ R) Y! p* v
7.1.3 文件系统函数1271 @: O6 Z. Y2 K) w6 t
7.1.4 特殊文件128; D) _/ Q  q  ?% w2 e
7.2 Windows 注册表1294 l8 Z% C1 q3 q% ?* ^' d3 q
7.2.1 注册表根键130
" W& F  W% I/ T' H; w/ A7.2.2 Regedit131
' m. E/ g7 L$ e- a7.2.3 自启动程序131; Q  w; t0 |5 n% u6 b
7.2.4 常用注册表函数131; W5 X9 Y3 \/ R0 r3 G2 G
7.2.5 练习分析注册表操作代码132, X# S0 W6 ^0 y2 |+ V9 l# Y# S( y
7.2.6 使用.reg 文件的注册表脚本133
7 V; ?  P* i# N9 a8 L7.3 网络API133& s* E, u6 u" K6 J$ n& d! ]/ b
7.3.1 伯克利兼容套接字134& Q! l$ y% k* X7 m- R9 H9 \
7.3.2 网络的服务器和客户端134
2 I! Y. G, e, `7 A+ o7.3.3 WinINet API 135
4 C. S& Y. X$ u$ w. I: ]7.4 跟踪恶意代码的运行136
* y; w1 g9 j1 Z& ]: A  r, {/ K2 |" f7.4.1 DLL136
8 R* W2 u. Q5 F) Y9 }7.4.2 进程137
" s/ ]. _6 S% x3 Q7.4.3 线程139
7 z: [+ e2 g' K+ ]) j7.4.4 使用互斥量的进程间协作142
6 u; B7 a; c3 o- b8 Z; I# d; C7.4.5 服务143
! Y( S: h& D6 \7.4.6 组件对象模型145+ Q9 w) j  S; ^* ?; Z/ m8 j4 }
7.4.7 异常:当事情出错时147& z6 Z  h9 Q- e- m+ \9 E- L" h: w
7.5 内核与用户模式148& r0 M. Z6 m: D
7.6 原生API149( z" \- U; M( a) V: z: C! F
7.7 小结151
3 O6 }2 i3 Y% V8 f  |1 G# w  I- Q7.8 实验151: V0 M6 X6 v+ d; v6 ?: `  N
5 T. L! P( P9 G8 u. o) ^

+ q5 T7 l9 J+ @8 [) P4 S) h4 c第 3 篇 动态分析高级技术篇* U$ {" B! }, l( |5 K; e: R) Y

% d- z6 v$ r3 _第8章 动态调试 154

4 P" w6 `1 j1 V+ S- n3 f
3 j" d7 p" Z5 _& d# B' l, d) i8.1 源代码级与汇编级的调试器154+ T, h3 e9 E% O
8.2 内核模式与用户模式调试155
/ N( Q0 S. Q7 K3 ~5 \7 X: \$ ?# V; ?/ z8.3 使用调试器155& |$ k5 l9 z/ F% |8 k* @& @
8.3.1 单步调试1555 l; K8 t. s/ j6 i4 n
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156' R) k- i7 d! S+ C
8.3.3 用断点暂停执行1572 r0 |/ I! Y4 g
8.4 异常161
- G) a! }& x# E8.4.1 首次和二次异常处理162
1 k9 L! L! l8 p8.4.2 常见异常162# _8 _8 V6 v  ~
8.5 使用调试器修改可执行文件1630 A8 m- i& m% v
8.6 修改可执行程序的实践163
4 i, ?# B( e! m8 r8.7 小结164
& c% Q0 ]( B  Y6 S  }3 d( r
7 p. y; O) }& ~7 x第9 章 OllyDbg 165
+ w1 L6 l  a( |) _* ?/ `
  F: \% Y9 d% w/ L/ b
9.1 加载恶意代码165
5 Y% j9 t, x1 C! E; s' x  C+ d" h9.1.1 打开一个可执行文件165# S% M+ z" ]' r. w7 Y% _+ r) n
9.1.2 附加调试器到一个运行程序166# E& y7 n3 }  P. m- e% e
9.2 OllyDbg 的接口167. z( Y- Y4 N4 Q8 m# o$ r* C8 d
9.3 内存映射168
  `, x' l* K  V8 u% S$ G9.3.1 基地址重定位169
- |" M2 Z0 [5 S3 b1 b$ _% j9 f9.4 查看线程和堆栈170" Q; X+ r. P6 U5 m5 P
9.5 执行代码171
* ^- A! P' ]# q& P5 z9.6 断点172
- o6 I& J- P+ y2 z7 e: D3 V9.6.1 软件断点173' j* I" f7 p- H+ m
9.6.2 条件断点174
* [; W. }7 K" ?0 o+ W& v9.6.3 硬件断点1753 k  L3 F+ _& z1 F
9.6.4 内存断点1756 Q1 A  O1 V6 E9 ~
9.7 加载DLL1766 j% y$ @) Y" g; t" ~5 E, ~
9.8 跟踪1777 O% L$ `, H! z4 H1 Q; ?9 z
9.8.1 标准回溯跟踪177
% K* ]% I; Z- |9.8.2 堆栈调用跟踪178# ?1 D& }- @3 `% ]
9.8.3 运行跟踪178
5 p1 C+ ]4 M0 t; ?4 `7 B3 M4 m9.8.4 跟踪Poison Ivy178
7 u& I4 s; H8 o( v% z9.9 异常处理179
+ D0 U4 ?4 e; w9.10 修补180: K3 Q. E, r8 w+ T: m& J
9.11 分析shellcode181
+ V' I- Z' h1 }" T4 U9.12 协助功能182
, Z! d# v# C. v/ ~7 l  p& k( a. f0 K9.13 插件182
' b. p0 Z; e) W8 D1 a8 t3 |# F) e4 C& X9.13.1 OllyDump1831 p2 C0 J3 p3 y) d: i; g
9.13.2 调试器隐藏插件183; W! f% d. z0 f" z3 z$ b
9.13.3 命令行1848 a' A# I/ C- _4 k0 }1 {
9.13.4 书签185% [' q* }/ F) w# e: G6 z/ i
9.14 脚本调试185
% q8 N  S) W7 c% A  W1 ?  K# z9.15 小结186
" _1 j2 d  _8 z; D7 S9.16 实验187
& l0 q/ B( f) Q0 H
) @$ u0 u$ B7 X5 X  J第10章 使用WinDbg 调试内核 189
4 t2 O- B( A, ~! M" q& B; g' @1 U# O" j( K) V' `
10.1 驱动与内核代码189
7 H" F2 [% X5 x2 e& S4 k3 s& E10.2 安装内核调试191+ {5 X; Q2 `/ D0 d5 O" s
10.3 使用WinDbg193; F. `  W/ s4 Y" K( x
10.3.1 从内存中读取194
1 c0 v! e6 ~" O% n10.3.2 使用算术操作符1943 V- |* X" `2 w' e9 h$ C
10.3.3 设置断点194
3 \9 U  P# z, U+ r5 a0 Z2 F) k7 L10.3.4 列举模块195, @2 }- _% o$ f! }" {7 D# Q  J1 q
10.4 微软符号表195; y% U+ x8 [* H: G! ]# |6 _4 J+ K
10.4.1 搜索符号195
9 s# P( C1 Q2 Y/ A% O8 Y10.4.2 查看结构信息1960 k2 R( \! ?& i2 D: T! j
10.4.3 配置Windows 符号表1983 d, |: D/ f# F
10.5 内核调试实践198
. o  P6 @% C# r  G10.5.1 用户空间的代码198) ]- ^1 D# O& H0 l  c
10.5.2 内核模式的代码200
2 a3 h$ j  i# U! a: T7 \10.5.3 查找驱动对象2033 O, e3 r3 L: Q8 W* g/ l
10.6 Rootkit204
2 c) v( k0 H+ `) X) R* _10.6.1 Rootkit 分析实践205
0 K9 X% M+ V' @( e1 q" U10.6.2 中断208, R3 r9 u# j" t5 U/ f. Y0 V
10.7 加载驱动209
# f9 K9 s- b! O( n+ u& ^, I10.8 Windows Vista、Windows 7 和x64 版本的内核问题209) A, U3 `' @+ d4 r$ f
10.9 小结210
! l* ~6 ^( W% g- {10.10 实验210
. O) G6 K3 w. N2 i4 V
- u; C4 ]6 X6 E0 F! P. O
  ^3 w4 B* y1 y( j8 z9 ~第 4 篇 恶意代码功能篇4 W# a( F; n, q+ T/ P

% B. g' L- u9 ]4 O- y5 _第11章 恶意代码行为 214
- c. i3 H+ Z# `' `' K  }; [# d( B
11.1 下载器和启动器214
' h  A2 {- H; b) _. @- o! n0 n2 R11.2 后门(backdoor)214' c( e) k9 f* O
11.2.1 反向shell215
9 d6 s  E5 w) G' W5 [, q  h- \; i11.2.2 远程控制工具216
" \$ M; o) |: c7 t' {& n11.2.3 僵尸网络216- l0 T* a- j' {2 J6 m* p) d
11.2.4 远程控制工具与僵尸网络的比较217
: m# O- Y( G' u% n11.3 登录凭证窃密器2176 z. K& g5 N% ~+ G+ C
11.3.1 GINA 拦截2171 o" l" g1 l: Z5 I- ^- `- Y
11.3.2 口令哈希转储218
7 a* ~0 M$ v# Y: G+ C11.3.3 击键记录221
0 D& T2 z1 |1 O1 l6 j11.4 存活机制2230 H( B! F, o- W$ p" y8 k( I& @) o
11.4.1 Windows 注册表223
8 [- X3 D. X+ E# m- |& _11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
* s0 N8 D, F' H11.4.3 DLL 加载顺序劫持227
" Q. [% [! ]9 _: D9 m" `8 ]: g8 Y11.5 提权228) e8 N. ^: J% o$ Z) U$ y
11.5.1 使用SeDebugPrivilege2281 m; g' J& d. ?) a0 V  _3 M% T) P
11.6 隐藏它的踪迹——用户态的Rootkit2291 F/ F1 f& o7 |6 i% l' v  @- [. v$ y0 v
11.6.1 IAT Hook 230) c9 N, D7 F/ O4 _. g
11.6.2 Inline Hook 231. G1 K* U- q5 Q) \* ?
11.7 小结232
/ H1 c9 r$ h' g$ F8 T$ L- D11.8 实验232
8 Z8 [3 M) ?+ F& `0 O
- @9 L4 i9 K& j第12章 隐蔽的恶意代码启动 234
0 W1 N* q0 g6 [0 h+ r
1 K. Q  \0 c5 }) w$ z! ]12.1 启动器(Launcher)234" j) U* _9 E7 ~5 A! p
12.2 进程注入234
3 ?5 S( `' ?/ _; }! Q) O12.2.1 DLL 注入2350 j, R7 q7 C- ?) b8 h% z+ ~. u
12.2.2 直接注入237
6 j1 ~4 Q( N8 _6 [1 ]5 E9 c' u) B12.3 进程替换238
" P( G2 z0 \- h9 r12.4 钩子(Hook)注入240
& c  u( N. l- a12.4.1 本地和远程钩子(Hook)240
- m) N5 {: V7 ]- ^1 L5 P12.4.2 使用钩子的击键记录器241
4 e# E9 C- d$ @  d, Z) ]12.4.3 使用SetWindowsHookEx 241
$ {1 `1 e3 L1 Q8 Y8 K/ T12.4.4 目标线程241! h" Q6 A4 R$ n5 D
12.5 Detours 2426 Y$ R8 c9 B+ m; W  L0 e- [
12.6 APC 注入243$ i5 q+ {3 M& w' T0 m* K$ [- w
12.6.1 用户模式下APC 注入244- V& P3 U; y2 f: v
12.6.2 内核模式的APC 注入245* r: u6 l  w: n' u3 i+ T
12.7 小结246: G8 B8 C& F+ v; h: [1 y! F0 \# G/ |
12.8 实验246
, L+ m" a* f1 \+ y3 L( z; ~: V# Y+ u
第13章 数据加密 248- D# l# H. N" X1 r

$ G! P' j6 T" q13.1 分析加密算法的目的248; j! T8 O; @. Y
13.2 简单的加密算法248. [& o/ E, y; |/ N' c  R1 }
13.2.1 凯撒密码2497 @2 H6 W+ I5 D
13.2.2 XOR2495 Y7 C) B5 I5 s2 `5 _9 a
13.2.3 其他一些简单的加密策略254
/ B' H( H3 f/ S13.2.4 Base64255
7 W) ?0 u0 q: K+ X& n; H13.3 常见的加密算法258
- b* T* }4 q8 G7 C; r5 F; X# b13.3.1 识别字符串和导入259
, V9 b! G1 @/ s( W4 t: ^13.3.2 查找加密常量259& E& d: ^" J* X% m4 V
13.3.3 查找高熵值内容261) \" s: h( L5 V# G! Z
13.4 自定义加密262
# V7 i6 ^! A: d$ C7 T8 `  o13.4.1 识别自定义加密263
* a8 T% j- Y9 l1 Y4 Y6 l13.4.2 攻击者使用自定义加密的优势2653 s2 I' Y3 o! W7 |/ d1 A8 i
13.5 解密265( [/ q& Z5 j- I. n  R3 E
13.5.1 自解密265
' ?9 x7 x; h0 z) n# _* D13.5.2 手动执行解密函数2664 ~; y0 P3 x# m- p
13.5.3 使用通用的解密规范267% z7 w* z( x8 _9 w$ k6 a% r
13.6 小结2705 o/ }1 E3 m- B. d4 E$ F6 w/ H
13.7 实验2717 u, c* \$ Y4 M: G, P
: V* r2 r) o) s, {$ o3 d3 Q7 i
第14章 恶意代码的网络特征273' m( n5 O2 u7 u( M/ n

% F" ?% ?% C- T  w9 ~6 p, ?: X14.1 网络应对措施2737 ~2 g( w* U8 I5 I2 K- R
14.1.1 在原始环境中观察恶意代码2730 I4 z$ b& v' u
14.1.2 恶意行为的痕迹274% n+ J; r$ n* `* O
14.1.3 OPSEC=操作安全性275
) `' c$ s9 q5 T8 W9 c& B: k1 _# E14.2 安全地调查在线攻击者275& N4 _7 H- P! X
14.2.1 间接性策略275
# R% Q7 K2 C; C3 w4 x; m14.2.2 获取IP 地址和域名信息276/ c6 {$ r& w% {+ Y
14.3 基于内容的网络应对措施2782 Y, d: B  @: c" g0 C9 |
14.3.1 使用Snort 进行入侵检测278
! r2 y8 H2 n: L" u- R14.3.2 深入观察2796 E0 k+ Y; j0 u: M5 a! q/ F" Z
14.4 结合动态和静态分析技术282( ?, R! x1 Q* n4 b& u( Q2 w5 Y
14.4.1 过度分析的危险2835 Y. X; ~. f0 S2 ~+ Y8 E% o" X( _2 L
14.4.2 在众目睽睽下隐藏283
5 O0 h1 {* L9 }. e) W- F14.4.3 理解周边代码286: Q% I" r! a/ B& ~. S8 E
14.4.4 寻找网络操作代码287% A7 P, p0 J# m  R1 T3 [
14.4.5 了解网络内容的来源288
, G# f$ {! S9 r. ?" F14.4.6 硬编码数据 vs. 临时数据289* g4 a. V# q% e7 _" n1 D
14.4.7 确定和利用编码步骤2896 z/ p8 j# U" b, S" i2 c9 ]5 m
14.4.8 创建特征291
* V# I' O4 S6 J" R; X$ W14.4.9 分析解析例程292- N: y( |( B/ ?6 Q# B- \' N$ l
14.4.10 针对多个元素294
9 L. \: c+ K5 M% V# x14.5 了解攻击者的意图295
; M6 n: b  @, K$ O! n9 q14.6 小结296
. {- D8 R$ @( z( T2 Z2 }14.7 实验296
6 f2 q% B6 C4 F+ E. S
: w/ J! w& b9 |; G0 H5 L& D/ u* t. r
第 5 篇 逆向工程; C* g5 m, e1 T9 @5 A; x
  ]9 t* {1 {8 c( `" q/ z
第15章 对抗反汇编 3008 }! h8 c. S/ }) O8 p
4 e6 i: n7 k( g! K: m/ x- c
15.1 何谓对抗反汇编技术300
5 ]/ i9 b5 ?5 q2 i0 x; @: f15.2 挫败反汇编算法301  l5 @( L' h7 B0 r- f* G8 r$ p
15.2.1 线性反汇编3020 |: ^! |; {/ H- H+ \2 B  w
15.2.2 面向代码流的反汇编303, k1 o) y9 Q  V+ L2 l( X6 {: I
15.3 对抗反汇编技术306; E6 ]- \" P7 o+ L  X& Z1 I. Y
15.3.1 相同目标的跳转指令306/ Z  v# Q  K5 L, J" N5 o/ ]
15.3.2 固定条件的跳转指令307
$ }. @- C( I2 u% l# J/ y8 B3 m15.3.3 无效的反汇编指令308
# |8 a' l9 U: A5 \15.3.4 用IDA Pro 对指令进行NOP替换311
1 r8 @. W* B& X2 R1 a$ c% a15.4 混淆控制流图312! X) i9 o) h' T& N7 U0 o- B7 j) l
15.4.1 函数指针问题3125 V% {$ u" h8 [1 _
15.4.2 在IDA Pro 中添加代码的交叉引用313' T4 A% N4 R+ |/ `7 |) }- o
15.4.3 滥用返回指针313
( `5 P' q: s2 Y% {! K; ^15.4.4 滥用结构化异常处理315
: M* E6 P9 D1 C0 w- s* x15.5 挫败栈帧分析317
$ [2 b/ E: F1 L4 v0 e15.6 小结320
- K5 X7 y6 s% J& k- M15.7 实验320
$ U5 ?7 I' }' \8 l. U3 ?- h' J& C4 a/ ^
第16章 反调试技术322
( n: Q# V" }# h, l; K
/ _; `) k) [: O: `0 N' o16.1 探测Windows 调试器322
0 v: M5 e$ j/ M/ w& `( M# w16.1.1 使用Windows API322
' D7 }- s2 }3 F16.1.2 手动检测数据结构324
2 X1 b3 C( D# e" L+ ~16.1.3 系统痕迹检测3266 n8 \7 m: S4 Z& G
16.2 识别调试器的行为327
8 k) Z2 u$ m3 K2 [3 }% B) T( k( ~# N16.2.1 INT 扫描327" _" X3 k6 y9 g/ }2 }
16.2.2 执行代码校验和检查3281 P2 h1 f+ x$ Z4 g( J6 h' v4 C, ^2 e5 d
16.2.3 时钟检测328
4 d; ?$ Q5 W% Y" m1 ~! I7 M4 u( Z% y' x16.3 干扰调试器的功能330
4 G% Z& S: c6 ^3 q16.3.1 使用TLS回调330
$ a0 x  `& h: U0 c- @) G+ ~16.3.2 使用异常332* l, a& H, K) D+ h
16.3.3 插入中断333
/ W: w+ U$ ]  R, z$ Z: V% {16.4 调试器漏洞3341 A; O  e9 O* T7 A; h! p
16.4.1 PE 头漏洞334
9 o& L! {% E/ D) ~( S) V5 J: }16.4.2 OutputDebugString漏洞336
) }3 {& u$ s3 g% u16.5 小结336
6 H4 z5 K/ t) E& z% H# ?9 N  b7 ~/ y16.6 实验336, m( e# e, F% [4 H$ u0 r5 n% W

0 m6 S+ ?6 E( T3 `第17章 反虚拟机技术 338
+ y( |: G/ h7 D/ d
1 e' F& l1 b8 I# Z+ \  E! P17.1 VMware 痕迹338
8 g% j* S2 V- ^# U/ X17.1.1 绕过VMware 痕迹的探测340
, U3 p9 o1 F0 z3 E! e17.1.2 探测内存痕迹342
, f" O* ]) O  F0 H  J17.2 查找漏洞指令342
6 o9 {: F: f! u! B- p* b& R7 w17.2.1 使用Red Pill 反虚拟机技术343
3 o( X' S$ {( |17.2.2 使用No Pill 技术344
/ r; h. f/ \) i3 O0 w17.2.3 查询I/O 通信端口3442 g. ^! ~/ \3 V- p- R
17.2.4 使用str 指令345
7 i8 i" {3 q8 k1 Q17.2.5 反虚拟机的x86 指令346, v1 k  P, i7 p+ o: H+ v
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347/ n7 q$ B) R6 ~+ q
17.2.7 使用ScoopyNG347# S& p8 s2 i8 T' B% p' \8 \* V8 ~
17.3 调整设置348
1 x7 j9 V$ ^  ?" c17.4 虚拟机逃逸349
' ^: s& \& {/ S8 K2 r5 `17.5 小结349: y7 }* P% r5 `, m8 }3 a
17.6 实验349
; S) ~5 O) u6 [, Q3 M4 h
4 X0 I: e" o2 y" D* t' J; H3 ^第18章 加壳与脱壳 352$ {, Z% |, t: ~

! T* I3 O4 y, f; d7 F18.1 剖析加壳352
  x7 d. h8 v3 r5 [( `% V* s0 H18.1.1 脱壳存根3537 e6 {$ y# h( l* \
18.1.2 加载可执行文件353
: I' C* \% A" \18.1.3 解析导入函数表353' o8 U& c1 r8 G1 B4 x7 c+ o
18.1.4 尾部跳转354
) J1 w8 D5 p3 p" p: u5 Z$ E18.1.5 图示脱壳过程354
7 ]3 ~' j" ?4 t7 m/ S7 L18.2 识别加壳程序355
) T; Z% E5 m/ w. X+ l4 \7 P4 x18.2.1 加壳程序的标识3551 g% c9 @. n: C- P+ }
18.2.2 熵计算356
. Z8 |, h9 m; y1 H3 ]# N18.3 脱壳选项356
% \, z/ M( M5 ^! @. r18.4 自动脱壳356
% ]: F2 r, O' n" S( O* P18.5 手动脱壳357& B6 K% |3 ~* D3 D
18.5.1 使用导入重构器重构导入表358
0 ]& i8 i! F) ^$ z, T* W18.5.2 查找OEP359
; I" Y* V% x7 b! g18.5.3 手动修复导入表363
% P1 b) t, Q+ y$ l- X" d' p18.6 常见壳的技巧与窍门3645 N5 n% p. \0 V  s
18.6.1 UPX 364/ c9 F7 Q( P  _/ ^. K, F/ `
18.6.2 PECompact 365
# c; b+ v; Q4 m# {, G; c18.6.3 ASPack365
2 X& k' z' m( b& h18.6.4 Petite 365
& a& P6 t6 l. f4 p1 l18.6.5 WinUpack 3662 W; h! |5 ]8 w% b
18.6.6 Themida367
# B+ |" y  m6 F18.7 不完全脱壳情况下的分析368) p# u, t  k" k$ q; E. j; {" t" r7 D
18.8 加壳DLL 368
) `" M# Z: l$ t18.9 小结369% m: n* c) l' u, q" i) ^  _
18.10 实验3698 X! J0 d: f! ?6 _) y0 a
9 \* |' Z  j( S) A
$ b7 S( b& X- F- W
第 6 篇 高级专题: x. p! e+ n4 o) b
1 p' ^9 ?/ Z8 n9 G
第19章 shellcode 分析 372
4 j# X3 ?+ x2 a6 W, g0 J& s' y( B3 j: l$ Q/ k
19.1 加载shellcode 进行分析372/ l' u2 S: F. q
19.2 位置无关代码3737 R: V4 ~* C# v, g4 G; X6 _
19.3 识别执行位置373
/ x! D( }' x- u, [4 ~" o! T19.3.1 使用call/pop 指令3742 ^( x- S1 {- J: n
19.3.2 使用fnstenv 指令376/ r( U9 ~& I& ]- q2 i
19.4 手动符号解析377
8 \9 m" L& H" \7 I$ ~* U* n7 g19.4.1 在内存中找到kernel32.dll378
9 ~* U6 K: \2 P. X5 o19.4.2 解析PE 文件导出数据380
# D0 @. ]( n; T' ^0 T; j2 o19.4.3 使用散列过的导出符号名382
- p" c) I  e$ J. ^! `( `19.5 一个完整的Hello World 例子383
& D% M$ x3 J% {% ?  {. d19.6 shellcode 编码385* k% e+ B$ r3 w6 B9 A
19.7 空指令雪橇387
! z3 G0 F8 {2 j& D19.8 找到shellcode3873 s/ b" q- x  q- I
19.9 小结388. }& R( P3 x! i
19.10 实验389/ c2 N4 X6 A8 _: t
8 K* u+ u, Z' }) w( k' i
第20章 C++代码分析 391+ f1 |, |2 j5 M7 q
; N( w5 _9 Z/ J& T$ K% y
20.1 面向对象的编程语言391
" {  ]# a2 q, C3 t8 P) t2 m2 A% m20.1.1 this 指针3929 g: A' g7 a! o. O. X3 Y
20.1.2 重载与修饰394
: g' m* L: _9 F# i6 m20.1.3 继承(Inheritance)和函数重写(Overriding)395
3 q. d9 l" C; T* `) R9 ~, {20.2 虚函数和非虚函数396
/ F( v8 f( @* M7 w! f, U20.2.1 虚函数表的使用3980 @- Y% v% N/ ?2 K5 X! f
20.2.2 识别虚函数表399; P6 K! n* W9 C( F) i" S# E* E
20.3 创建和销毁对象400
& z- H* H9 [8 Q% k7 {% E. k" J. y20.4 小结401
; S* a# L$ S+ T; d# H20.5 实验4016 g2 |& y$ v) `: `: e

. P% X0 ]6 H) E# M# k9 {第21章 64 位恶意代码 403
' ~: e5 ?2 M1 u. P4 l1 D+ M
3 f* d5 L( b. J21.1 为什么需要64 位恶意代码403& r* _) V0 }1 y$ N) I
21.2 x64 架构上的差别404  _% I* a) Y8 I5 i
21.2.1 x64 调用约定和栈使用上的差别406
  m! e$ Q  B& T5 T* z( f21.2.2 64 位异常处理408
0 ]# s) v1 f! d: @0 Y1 `! v21.3 在Windows 64 位上的Windows 32 位408
, p8 R. Z8 F. v+ q# l$ I& P21.4 恶意代码功能上的64位提示4093 E; w' D( Q" H6 v
21.5 小结410
$ k; T& L/ z0 v21.6 实验410
. r; A3 H) |- P- m6 K( e* E5 q/ R: |9 O7 ]
附录A 常见Windows 函数列表 412
0 d5 S& R  K& R* B$ C1 `. r4 Q( E- K% _
附录B 流行的恶意代码分析工具列表424
' m- g" U( ~" s) I* f+ }1 u+ _' ~- u1 j1 q
附录C 实验作业参考解答435
8 {  G7 g/ l& `* W5 V& |: ~8 `% V3 l4 V! G* i1 g. _
附录D 致青春,基础软件开发的中国故事 691
& }0 M! _3 Q0 a. L3 k
5 \* Y  j9 m0 c( _5 K; w/ r  K附录E Syser 操作入门 6955 Q2 }5 F( Z" v; t# P* t! Z6 y" e

/ R1 Z$ ]  s3 Y3 D0 A$ \/ U7 d( o  E/ }) F
想知道小甲鱼最近在做啥?请访问 -> 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( f, n, I5 x7 F# _1 Z3 `
什么编程语音写的?

- |$ z( e3 L& H: X, ], @# 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 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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