鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
7 h1 U/ @' y  c/ }$ O; R

3 d- E' Y. u* ], ~* ^4 N" I- Q- ~" w书名:《恶意代码分析实战》  v, T$ L5 j& a% w$ B; G
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)9 _& p8 b3 k1 k9 O( O# M" y
译者:诸葛建伟,姜辉,张光凯
5 h- p1 N1 l9 w0 o* J) V出版社:电子工业出版社
' U6 e4 Y/ O/ N9 c* G6 [/ M出版年:2014年4月1日(第1版), |( Z; }- G* e6 s/ o
定价:128.00元
' ~7 s. y3 |3 S+ S装帧:平装3 U) i' S2 L! O
ISBN:9787121224683
, `# Q$ ]! B3 p" I) F  j/ i: D, _% B4 N+ t  g: R: A) l
购买链接:! o, I6 H& |6 {: m0 ~6 m$ s
( P$ h2 h: E7 a

# {1 m/ |& D" `: S4 Z5 y/ Q
亚马逊 -> 传送门. `! K9 F+ q; i) s$ u7 x  K

) M) ~5 I0 w1 d# }& T当当网 -> 传送门5 D5 g& L0 y8 a$ c8 f9 i
4 j2 E( f: j$ _' w( i! [
京东 -> 传送门7 @4 {2 |5 L( \  ?
0 O" g4 o& i2 Q& j
天猫 -> 传送门, e' _: F* y3 l. |) f0 s% F0 q0 P4 x
  Y, C/ E% ?  q4 Y
2 E/ i5 {# ^: c# j& R* C5 _; P' z
内容简介:
  {" }9 V5 t1 K8 M- r' W1 V5 D. ~$ _# E2 e$ [4 e' s

4 K- ?: w- d5 `" w5 c
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。, g% D# b$ X9 J+ r4 u
0 c% ^, r( t" f# a# o" M& m* q
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
9 i$ C  l9 U. s& A% p6 T, r& U/ t9 v% x: L
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
7 c0 X8 N9 v& X针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
/ u. h( M0 {7 M4 p
5 ]8 B; Q- W& B3 q9 Y- A/ M目录:
9 [1 a8 q" r7 q8 ], g' J, t1 w( q# {0 P3 c

, S+ I% [! R  ~1 r6 N) Y& ?' V+ }
第0章 恶意代码分析技术入门1
. p% d4 q- K! U8 D% s- e8 G, G% i- y( @4 Z, O$ a
0.1 恶意代码分析目标1
( r$ P/ b  ^  z, U7 ?0.2 恶意代码分析技术2
0 [2 q% B) r, T( X0 ~0.2.1 静态分析基础技术20 l/ H0 f. W/ G5 H4 W
0.2.2 动态分析基础技术2+ m5 b" e2 c; }- T
0.2.3 静态分析高级技术2
# O6 M/ C+ y5 @, T0 W& K0.2.4 动态分析高级技术2
/ J. T' @2 ~, X: k0 f0.3 恶意代码类型3( U8 R* n) W- [5 w
0.4 恶意代码分析通用规则4
/ ?- y& P) N0 q: W' F1 E) l* f0 M6 }* {# P- [* p
. I. D7 _7 T" `4 ]& i
第 1 篇 静态分析
# @7 q+ _8 {$ z: r: q7 V) b8 [$ J  K% Q( O4 u9 M, {' R
第1章 静态分析基础技术 68 ^) m3 X+ W6 a1 M# @

' R- O& l7 I3 y5 p$ ]" h1 b1.1 反病毒引擎扫描:实用的第一步64 `7 P8 u9 @1 I# a) g) y
1.2 哈希值:恶意代码的指纹7
5 l2 [- x& \. L* d1 P1.3 查找字符串7
- g& Y2 E' {, @1.4 加壳与混淆恶意代码9
% X! b& I% S5 D$ q1 o1.4.1 文件加壳10
0 k2 \9 j# G7 v- f+ l# X1.4.2 使用PEiD 检测加壳100 V% M0 e* p! B& a) {5 X
1.5 PE 文件格式11
0 e/ d) T; F* s9 s1 C) Q1.6 链接库与函数12
' M! _- ^9 T! _: B" D& h1 h) n1.6.1 静态链接、运行时链接与动态链接12! a3 C( @& E6 W, I* I2 l' x
1.6.2 使用Dependency Walker 工具探索动态链接函数13
9 H  l" Y4 z3 h. i4 y" m# _1.6.3 导入函数14
6 q, t/ D3 i6 O1.6.4 导出函数15
* i2 w0 o8 _6 ?: }" W* g1.7 静态分析技术实践15
. k0 r$ ~- q& h# ]4 N, W1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
& N, [" S9 {. O' n1.7.2 PackedProgram.exe:穷途末路18  i: R$ o, @! w! `2 N
1.8 PE 文件头与分节18
  L; _; [! J6 n9 M0 V: x4 r1.8.1 使用PEview 来分析PE 文件19
3 O) l7 ?# @, s$ q% J9 G1.8.2 使用Resource Hacker 工具来查看资源节22
* K/ o$ q6 a1 u4 ^' R1 z' i1.8.3 使用其他的PE 文件工具235 ^! K& |+ o. C
1.8.4 PE 文件头概述23
) q) y% [- d: w( Q& X+ z# E0 E1.9 小结246 d1 s/ J( b7 s- p5 b
1.10 实验24; D( ^4 O* U( }  z
' \- K; n& e( D
第2章 在虚拟机中分析恶意代码 27
2 u3 u% [) l# W: g( C9 l4 `; H4 Y9 v: ?  o: }
2.1 虚拟机的结构279 A+ r, o, C! _# |, y7 m! O( A
2.2 创建恶意代码分析机28
8 Q3 u1 [# J2 Y* u! p2.2.1 配置VMware29
1 e& {2 G/ J) y- ^, b2.2.2 断开网络30
2 ]/ O" Y+ P4 @8 E2.2.3 创建主机模式网络30/ O; }: u* y$ }, ^  I, o
2.2.4 使用多个虚拟机30
3 t3 q; H; e: D* M1 S' t" d% B2.3 使用恶意代码分析机31
8 V1 ~9 e' i4 X2.3.1 让恶意代码连接互联网31
4 l$ I/ u/ _: ^+ W# f/ T2.3.2 连接和断开外围设备32
' R  a8 o0 _: |" S" \! B. P' ^7 x9 |2.3.3 拍摄快照321 |% I& x% b' n8 K. q
2.3.4 从虚拟机传输文件33
6 [/ g' q7 s0 [" e2.4 使用VMware 进行恶意代码分析的风险34* u, [" F9 ~! ?
2.5 记录/重放:重复计算机运行轨迹34* R' K5 {0 r4 m; k, A  G) ~$ A4 g
2.6 小结35: y( o5 O: |# D) r. e4 U! J1 J, P: D7 C
2 h- u1 a7 ?, w7 Z
第3章 动态分析基础技术 36

- r* y/ T8 L5 O  N* v3 y
, j2 b/ {; o  r/ T; g; @3.1 沙箱:简便但粗糙的方法36
8 r5 E7 h( e+ o% t8 L, R- @  z: e7 i3.1.1 使用恶意代码沙箱360 R, N' o0 S0 u  O( p* ^( Q
3.1.2 沙箱的缺点37
' o" ]3 X7 n9 ], v  [3.2 运行恶意代码386 H0 `2 }/ ^2 Z# }$ Z' p, E
3.3 进程监视器39
/ q+ t/ k- a  A* d3.3.1 进程监视器的显示40
7 B4 `/ ^  B) J  k$ v  Y+ X3.3.2 进程监视器中的过滤41
1 j: F. F( x- F4 ?3.4 使用进程浏览器(Process Explorer)来查看进程43
7 A2 B1 a( x& Z- v/ [3.4.1 进程浏览器的显示436 m4 q# k) i5 }7 q
3.4.2 使用验证选项44; @3 y% H% H/ F/ }( g
3.4.3 比较字符串45' L1 |. a+ z) w9 `, }  i6 G: U
3.4.4 使用依赖遍历器(Dependency Walker)45
+ ?# y  Q6 ]" Y+ k* G( W! ^* ~3.4.5 分析恶意文档46
0 o0 V5 Q4 V- T3.5 使用Regshot 来比较注册表快照46
& H8 Q7 R6 Q( j: d* o  |3.6 模拟网络47
3 s" r$ i5 ^- B- v' r5 |  e8 e8 }3.6.1 使用ApateDNS47
- c! i9 Z; k- m! q+ y3.6.2 使用Netcat 进行监视48
0 T0 o, i1 C5 i  i; e4 T) a3.7 使用Wireshark 进行数据包监听49
$ K( z- E8 D% B& M) m" U, f3.8 使用INetSim51" t5 t9 p- d- k; r
3.9 基础动态分析工具实践52
9 G2 z  i" C9 D& C, S  y3.10 小结55
4 O6 G5 P9 f, Y% R3.11 实验562 B! B% I  @5 F5 ~3 t" |7 \2 Z

5 u$ p: G+ R; ~2 G! e' [) h% o: b& d9 N2 c* g/ D
第 2 篇 静态分析高级技术篇
, v0 N9 D2 t' T1 |+ y4 O+ F. c
& Y) }  X5 E2 G1 l9 d! L7 f第4章 x86 反汇编速成班 60
. g5 l. y. l& w" n! g
) _! {0 C/ ]( J1 h1 Y4.1 抽象层次60" D2 [9 C4 g3 K5 ]
4.2 逆向工程62
! e8 ^- z. }/ b$ P5 s7 u7 a* w" L/ t4.3 x86 体系结构620 F' {/ \) c: E; J" K
4.3.1 内存632 j* @4 O  q* s1 S- [; c
4.3.2 指令648 W- _2 b6 @7 w5 ^
4.3.3 操作码和字节序64
7 S7 [' u: |  o0 K% N5 w4.3.4 操作数65
  x/ w2 P" n8 c* L; h8 `6 A4.3.5 寄存器65
; G/ b# F9 _' A' w9 n4.3.6 简单指令67
* Q. E8 G9 g: [& l) ^4.3.7 栈701 a! F/ v: @9 {+ n. X  P" _4 _
4.3.8 条件指令73( C0 P9 y/ V( t$ d, q( j9 O+ b' i
4.3.9 分支指令73
. d1 x. j! b! X% h( U4.3.10 重复指令74
# Z$ V7 F9 M; J7 K; c4.3.11 C 语言主函数和偏移76* L, ^: ~+ O- w! r2 [
4.3.12 更多信息:Intel x86 Architecture Manual77
& N. y9 E+ R+ a! `2 f  v  S4.4 小结78
5 ~9 X7 N. o3 u
9 W: R+ O0 ^- d& J第5章 IDA Pro 794 V. g+ K* k9 W% I' f8 P+ `# ]7 I, R

  t5 }/ f1 p/ I% \# ^: T# i* @5 |3 h' r5 @5.1 加载一个可执行文件79
1 p/ G9 \3 c' Z+ X) t% ]5.2 IDA Pro 接口81
7 c& M* b# S7 H! ^$ f5.2.1 反汇编窗口模式815 M$ s  Q+ V$ Q) o
5.2.2 对分析有用的窗口83& Y) Y: M' ]: }$ b% a( t1 s
5.2.3 返回到默认视图83  H4 ^: x& d* O9 J
5.2.4 导航IDA Pro 83! ~. ~  A# o( `. E* A
5.2.5 搜索85  N3 y4 A# Q  \1 G
5.3 使用交叉引用86
2 K* |$ b1 C0 q. f5.3.1 代码交叉引用87
; |' B: ?* d; u# Q' B3 m5.3.2 数据交叉引用88# l1 \( g2 z, t; _2 w
5.4 分析函数88+ k( i2 W- W" F1 z5 w0 N4 i
5.5 使用图形选项89
# l' ?- x( H4 j; W5.6 增强反汇编917 E" K6 x7 H* Q7 [2 r* v& z! H$ V
5.6.1 重命名位置91
" E& a; Z+ D' X" Z5.6.2 注释92
3 ^5 @8 k5 W' S( d5.6.3 格式化操作数92
5 ]+ N" F+ [' R+ j5.6.4 使用命名的常量93# k% D, s, H/ n- y' Y* t# p
5.6.5 重新定义代码和数据94
, H8 A4 P3 @# R' I5 }- y( h7 K. h5.7 用插件扩展IDA954 X* |( I7 o! F. F* I7 ]) `' ]4 n
5.7.1 使用IDC 脚本966 ~- z3 O/ G# ^9 P$ S
5.7.2 使用IDAPython97
) `7 V) ~+ P! W" G5.7.3 使用商业插件97
6 b3 [% h5 d1 X6 f5.8 小结98) g5 o- o% Z) u. b8 N1 K
5.9 实验98
" W/ y! x. S' D  ~: t- S, K- e; r( o9 I( y* w' b
第6章 识别汇编中的C代码结构 100
" {0 V; H7 N+ ]2 n2 I- }
7 A! x; v+ D2 c5 i* @! }6 [
6.1 全局与局部变量101
4 ?2 R$ m! M/ w" ~3 r" M6.2 反汇编算术操作102
, A) o" J4 M( H: L: v6.3 识别if 语句104. S4 b! `0 p3 u. J1 N! d" t; Z
6.3.1 用IDA Pro 图形化分析函数105
4 j3 M7 L3 s" G: P7 ^6.3.2 识别嵌套的if 语句106
) R* n4 {- g- m8 Z+ H. z- y6.4 识别循环107. f: S( z! G$ D5 `) q
6.4.1 找到for 循环107! ~/ m9 P) W. D: `
6.4.2 找到while 循环109" D* F6 ?& z7 c- k. `5 @
6.5 理解函数调用约定110' r5 S' O; ^# }2 l+ v- k- ^7 {' V" U! @
6.5.1 cdecl1108 j  D( M3 b$ L0 O% X2 ?5 b8 K
6.5.2 stdcall 111
, y0 Z; i9 O8 n9 t6.5.3 fastcall 111- l9 {) Q" g" Y$ i& V
6.5.4 压栈与移动 1117 [. _# X9 D: r7 I1 u8 d% ^
6.6 分析switch 语句112" P6 g# E" j8 F. `+ l
6.6.1 If 样式1129 j4 t  k! S) t# @
6.6.2 跳转表114
9 y9 @! S1 o/ t9 T' G6.7 反汇编数组1181 s9 {, F6 c/ I" T" S
6.8 识别结构体119( x/ C1 d# Z: @" }$ p1 }
6.9 分析链表遍历121
7 [: l# |5 E7 O5 v6.10 小结123* m9 s, q$ h/ N
6.11 实验123
% |0 w2 u! |" i  T5 Q# n; d7 S5 B# J9 o
第7章 分析恶意Windows程序 126

" w% O  H; P/ A6 P- ]' {/ j
% q3 S" Z& l3 i7.1 Windows API126
/ m) R6 I4 y1 Z* s% @- [) m; b7.1.1 类型和匈牙利表达法126
, P3 ^. _% o8 G0 I' C# u' Z7.1.2 句柄127! q- N" r* s. R9 f, d+ }
7.1.3 文件系统函数127' {7 m" v( |" ]* F5 I
7.1.4 特殊文件128
& P* o8 h3 o8 s8 ~* Z' m7.2 Windows 注册表129* _* J; y( u5 S( b5 g
7.2.1 注册表根键130% q) g1 }' r; j' N
7.2.2 Regedit131' Y9 O* @& z% f
7.2.3 自启动程序131
; P: a" v9 V7 L; _8 f  R! @7.2.4 常用注册表函数131
$ g1 d& F% R$ f7.2.5 练习分析注册表操作代码132! S$ o4 m7 x% t& [' @8 A' G% m
7.2.6 使用.reg 文件的注册表脚本1337 J/ H' J1 z9 M2 G7 X  \6 Y
7.3 网络API133/ Q5 [( W) w& \
7.3.1 伯克利兼容套接字134& t. n$ k$ O, R$ Y$ j/ t1 K
7.3.2 网络的服务器和客户端134( ?* \6 g/ B6 ]
7.3.3 WinINet API 135
/ C: F5 O  Q5 s( [7.4 跟踪恶意代码的运行136( A: @* v2 Z) W: W& A, s6 M2 w; W) |
7.4.1 DLL1362 L9 l  j! w, `6 Z0 S
7.4.2 进程137' ]6 K6 b9 D6 h0 g" ]! `
7.4.3 线程139/ M' S' k# I* Q6 A9 k
7.4.4 使用互斥量的进程间协作142
# ]  A; j8 o& }0 w. V. N6 g3 b7.4.5 服务143
+ [  H# \7 _& Z* q8 {; ?7 o7.4.6 组件对象模型145; y6 ], V9 o& M2 F  s& L3 ]; B2 l2 ?
7.4.7 异常:当事情出错时1472 ~! d0 g! u+ V# B- _
7.5 内核与用户模式148
) c2 E! ~$ L+ L" K7.6 原生API149  |0 X" |& `! l" l. u8 L
7.7 小结151
" [4 Y- T- [$ k8 i. Q' J7.8 实验151
$ M0 A* b" p; p4 f# x: P' y' A3 a4 N0 ~$ \- r! k( G

  z. g, Z$ ~  |" t第 3 篇 动态分析高级技术篇
, M6 \# s# N0 x! H8 v: D5 }* [& U8 e# `& ^; b; {8 N# U
第8章 动态调试 154

: d; X5 @' o5 V+ N" y
3 [4 \2 ]. F% o! D5 E* y/ P7 Q0 }8.1 源代码级与汇编级的调试器154
' f+ _1 K! p) }2 k8.2 内核模式与用户模式调试1552 |: D  l' Y0 l8 b- E
8.3 使用调试器155" o5 u5 G7 N. S% @4 V, ^( C
8.3.1 单步调试155( R! a0 ^! E' @8 h8 E- Q" @
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156' D9 @$ ~# `: p6 z. r. {- V
8.3.3 用断点暂停执行157! k% B  J" c0 w1 ]
8.4 异常161; h- @/ G9 R. _, ~/ e9 _! m
8.4.1 首次和二次异常处理162
1 n# i2 k1 h! S8.4.2 常见异常162  [- R1 Q5 z7 r% P) x6 M
8.5 使用调试器修改可执行文件163
6 I, R: p( D: d+ v, E! l8.6 修改可执行程序的实践163
: x2 X4 \$ `, [8.7 小结1646 u" L" ~8 W  {

8 C& ^  N8 B- @* b9 p第9 章 OllyDbg 165

& r4 `6 l$ n1 a: n. a$ [& K* O  E. o+ K0 ~. _3 S4 _4 i
9.1 加载恶意代码165
0 f  K+ u- N# N  h( t9.1.1 打开一个可执行文件1655 h  _+ V( }  d# V& ]: `
9.1.2 附加调试器到一个运行程序166
- _. n% A4 i' G+ q! u4 d0 y9.2 OllyDbg 的接口1671 ?3 m  v6 @- j5 _# ~. f
9.3 内存映射168
) }3 p* t( A/ H5 _" K2 }8 ]9.3.1 基地址重定位169
7 e$ Q* Y( ^5 O; R. I' g& z1 ~9.4 查看线程和堆栈170& d7 J9 k# Q" `) b- V
9.5 执行代码171
: y* }6 ?2 Q5 l: H9.6 断点1723 v0 K+ ?2 |0 C, c1 L- r  Z
9.6.1 软件断点173, k2 Z' M: p; S, `% d% J0 q
9.6.2 条件断点174) C2 n0 m: G0 F0 S( S/ ?
9.6.3 硬件断点175
* M9 q9 u' o3 k3 v9.6.4 内存断点175
1 [! }  D# ~' R1 {9.7 加载DLL176
; O8 V. E+ H* L2 l; F2 n& ]5 \9.8 跟踪177* u* T2 C: _' ^7 f
9.8.1 标准回溯跟踪177
6 l' D  C+ t6 j7 _9.8.2 堆栈调用跟踪178
! R9 `2 e+ z0 e+ @9.8.3 运行跟踪178
, f8 C! d9 t- y; Z' ^7 P9.8.4 跟踪Poison Ivy178
: a) T8 A$ m0 j9.9 异常处理179
6 c" C; d# V# N- n0 v9 m- `& S9 G9.10 修补180
) k. ?4 X  }8 c% Y$ O9.11 分析shellcode1819 A: Q/ \8 G. k
9.12 协助功能182
  w) p- p2 n9 ]. D0 ?/ r: N! u+ t9.13 插件182& Y2 \5 d2 P- N6 ]6 I* e
9.13.1 OllyDump183
% n- T  V7 y7 x  e$ \9.13.2 调试器隐藏插件183' x2 O$ Q1 W. v9 I
9.13.3 命令行184: U+ f: \0 k0 a1 m
9.13.4 书签185
# l" B( w: x; [5 U) k: i9.14 脚本调试185- S# U! V3 `7 T! X5 o* U
9.15 小结186
4 u+ X! E+ H- D0 H1 u% s2 [- _3 c9.16 实验1872 `; n: w/ c% [) h. i# w  G% M
+ Q2 X. s8 Y: V2 @4 F6 L
第10章 使用WinDbg 调试内核 189
+ Q( ^5 f! c- t
/ f3 w( a& D9 M4 q8 A10.1 驱动与内核代码189
' O+ m2 U3 N2 X% J10.2 安装内核调试191/ f. V4 B$ k: d& ?& N; ]# ]
10.3 使用WinDbg193
2 ]9 y5 \* k; E1 s+ T: i10.3.1 从内存中读取194
: V0 s( h% S( z/ x  K; [  ~  H10.3.2 使用算术操作符194
% X: G5 E8 K! s$ R6 w10.3.3 设置断点1944 i+ Q8 b9 D0 F2 J3 `4 E
10.3.4 列举模块195" H8 K- v0 {! @6 N
10.4 微软符号表195' V) B  K2 `  ^! J! O: {
10.4.1 搜索符号195
- e- ?% `4 D$ W10.4.2 查看结构信息196
- H  H  |' C1 h10.4.3 配置Windows 符号表198
' H6 T! W. @2 Y2 t* U( L10.5 内核调试实践198, Q9 o2 v7 r9 X  H8 }. x, R
10.5.1 用户空间的代码198
! _( s5 s: }* o6 ^1 j10.5.2 内核模式的代码2000 w+ u7 Q* w7 D& y$ C1 X6 j4 Y8 K
10.5.3 查找驱动对象203" I( {% e+ b, A: {0 b7 H2 J1 ~
10.6 Rootkit204* ]# D, F9 S7 d: H9 M' q: r" j8 k
10.6.1 Rootkit 分析实践205
- ]) |9 p. y/ _8 d2 S' \: a% ]# B10.6.2 中断2088 P' ]) |& L  \- I* x2 E% z, e
10.7 加载驱动209/ i- W) E6 o% S+ I# p. n5 F6 X
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209) q0 {9 s5 w5 i& M* q1 |* b
10.9 小结2100 C6 F1 V+ R7 A( t% i
10.10 实验210
& S# i( R% `8 v% Q& d. @4 M$ R" B: G  n/ ]/ b
2 m& m  p- M" m" b. H% ?9 g1 b/ Y
第 4 篇 恶意代码功能篇  E- \, d+ g% y" A

4 X$ M( }! R3 g1 {% _第11章 恶意代码行为 2141 H- f- o  o/ J7 ]% l5 `9 @
- U! e8 F2 K/ }! }
11.1 下载器和启动器2141 j3 s, |8 H' C" `$ H* o" @
11.2 后门(backdoor)214
# t. Q* u& [; H5 J+ t# c11.2.1 反向shell2153 Z% u; l* I& h# D
11.2.2 远程控制工具2160 Z& i7 S7 V/ o! @. K" c
11.2.3 僵尸网络216
- H  q% r) p' M$ R11.2.4 远程控制工具与僵尸网络的比较2173 A9 l2 N& W# M
11.3 登录凭证窃密器217
" [" D3 A( C; P! ~4 z+ E11.3.1 GINA 拦截217
! @) p) a5 h# ~/ z11.3.2 口令哈希转储218! e5 j0 h0 e. |" Z" I0 F
11.3.3 击键记录221* I0 E0 @2 G8 l( P
11.4 存活机制223
5 l! _  ^1 w% U! `) T9 C11.4.1 Windows 注册表223
& L6 Y6 `4 t$ b0 F) U7 `" q11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
: m! F8 U% _/ v; f- A" [# a+ I11.4.3 DLL 加载顺序劫持2272 N  d3 D9 K7 C% @( ^+ K
11.5 提权228( t/ Q5 t+ g( m$ l4 @/ Z9 D
11.5.1 使用SeDebugPrivilege228& C0 d" n3 L9 y0 E' T
11.6 隐藏它的踪迹——用户态的Rootkit229# z( d1 x9 \) X* z' [
11.6.1 IAT Hook 230
9 l  J$ h% D; ^$ e11.6.2 Inline Hook 2318 E& E6 E% s& W
11.7 小结2327 E  e# {9 R' w9 Z. C
11.8 实验232
) F- S7 @; E4 a4 _  ^0 P. n  B
1 U3 \- X; h: s, ~' r6 I& y第12章 隐蔽的恶意代码启动 234
2 B* [% [1 p! T: C0 @4 Y2 w8 ~( w$ B
6 r' e2 r) R+ I, K12.1 启动器(Launcher)234
/ v- }0 _( t3 X* _! f12.2 进程注入234/ P4 }7 z1 a; b( M9 X2 u0 ?
12.2.1 DLL 注入235( g* g6 k! J9 k$ F
12.2.2 直接注入237
' [8 j- Z3 c6 _$ |12.3 进程替换2387 K+ K% L& O' S/ A5 }% Y- Z
12.4 钩子(Hook)注入240
3 }5 j8 q* z1 o* F+ I5 W3 u12.4.1 本地和远程钩子(Hook)240
% I6 e+ k  L. G$ I2 B12.4.2 使用钩子的击键记录器2411 ]7 g  ]; |% N
12.4.3 使用SetWindowsHookEx 241( t! y4 x& _2 m
12.4.4 目标线程241, H0 }5 L5 C+ n. c$ x6 q0 H
12.5 Detours 242! [: l0 U5 F5 C4 l
12.6 APC 注入243
% ?9 z" ]7 P- A" m1 N1 h$ j6 P12.6.1 用户模式下APC 注入244' M5 J, x4 L# T" H' F: a7 r  }7 r
12.6.2 内核模式的APC 注入245+ t7 Q* B, f; ~, M6 Y
12.7 小结246
3 }( z1 g8 I5 q! u9 v9 X/ j12.8 实验246- T6 Z6 P( @. M+ ?3 ^( W
/ X: D, @; n- [
第13章 数据加密 248+ Q+ |0 y" J. Y! U1 ]$ B0 Q
5 J$ G$ n0 |$ m! ^' l& j6 V8 l  Y
13.1 分析加密算法的目的248
* P! e1 k- s2 _13.2 简单的加密算法248
0 m' @( S# q  y4 B1 Z& D$ c13.2.1 凯撒密码249$ y) f( }7 Z4 O# @0 ?
13.2.2 XOR249( P: R8 }1 |/ E) M' N
13.2.3 其他一些简单的加密策略254, h0 r# t8 M! N8 c" Q, D. h; ~9 u
13.2.4 Base64255
& y- D; N: N$ X7 @! h- w13.3 常见的加密算法258
% {" [( _: w4 J9 g4 M13.3.1 识别字符串和导入259* d. C% Z$ X1 v2 N8 m5 Z- [3 W) a
13.3.2 查找加密常量259* i/ @" r8 q7 [$ W+ y
13.3.3 查找高熵值内容261) A! S+ E2 {3 r1 w
13.4 自定义加密262* L% V- ^3 k9 f  W( o
13.4.1 识别自定义加密2638 N; @& H! p8 y
13.4.2 攻击者使用自定义加密的优势265
2 ?# R8 w6 r) O) [" _1 m: w2 k13.5 解密265
. K& Z7 t$ N+ B) Y& b( f13.5.1 自解密265- o4 A" D! e2 Z0 g6 a
13.5.2 手动执行解密函数266
4 G! S% g4 W6 \# e% h3 {13.5.3 使用通用的解密规范267+ |  w% E4 s2 ]- n  }' ~
13.6 小结270
5 u3 s7 q0 ~4 O$ B% o13.7 实验271* A' T' w+ U  \  T* g! |' O! j
2 ]. F; i4 p; v6 e1 J, S; \
第14章 恶意代码的网络特征2736 H7 e/ z4 P3 X2 S7 p- ^" q
+ m& J* |& c3 I4 P* ?: o( E
14.1 网络应对措施273
6 n; E* g. I' C! k( U14.1.1 在原始环境中观察恶意代码273& O# u! M: }' `2 m6 ^* |: W
14.1.2 恶意行为的痕迹274- x% }( s: v2 Z, i
14.1.3 OPSEC=操作安全性275
* D( e% F7 }" m8 ]( A14.2 安全地调查在线攻击者275
$ Q4 L5 |* y- h/ z) u14.2.1 间接性策略2758 C% r# v7 a, a
14.2.2 获取IP 地址和域名信息2760 l2 }. \+ Y; d
14.3 基于内容的网络应对措施278
' c6 v( {5 `# |, I  y14.3.1 使用Snort 进行入侵检测278, B. u7 h# F' w7 d8 U4 U: t
14.3.2 深入观察279
/ y* U5 z, C9 n14.4 结合动态和静态分析技术282
) Y/ ]3 U9 u; S& v14.4.1 过度分析的危险283+ v' L9 V0 I6 ]) [3 i8 L% A
14.4.2 在众目睽睽下隐藏2834 n3 v& l1 l, V5 {, e, t: f( x
14.4.3 理解周边代码286
" x# N' p( a0 M6 ]) N14.4.4 寻找网络操作代码287
- f8 Z8 D: i- X14.4.5 了解网络内容的来源288
; f7 h! a( p" }14.4.6 硬编码数据 vs. 临时数据289
' |& A1 d! s3 i14.4.7 确定和利用编码步骤289* f6 ?2 Z! h0 X4 |4 u1 S
14.4.8 创建特征2917 r- @6 O5 Z/ Z6 R$ W
14.4.9 分析解析例程292" b0 x' ], F: |8 J$ u
14.4.10 针对多个元素294$ k6 F& _- ]! `; _( p/ p
14.5 了解攻击者的意图295" w4 J. h0 i+ F  U
14.6 小结296
* e& R1 b; [( c' K3 _14.7 实验296. o- d. s# I- n

6 M' P3 a7 `3 n$ @
( e; q& [( W, t3 Q0 r0 R  \第 5 篇 逆向工程
/ H/ j- e/ D1 g0 L$ _
2 C6 \  O& w' D, X第15章 对抗反汇编 300
( Z8 k9 l: @! o& h2 G+ `9 j
3 ]6 P" _& v6 S15.1 何谓对抗反汇编技术300
# Y, T( B7 @* O3 i( C2 _9 m  t5 V15.2 挫败反汇编算法301
7 @9 ^: c* @. p; u' N' N; [; T15.2.1 线性反汇编302
! V7 I& j; A1 \! G% J7 C15.2.2 面向代码流的反汇编303/ N& J1 ~) h9 }5 h- |: b
15.3 对抗反汇编技术306
& D/ k" U$ p0 t5 w' Y/ [15.3.1 相同目标的跳转指令306/ K8 R' Y1 j7 Q' N3 E5 Q2 N8 m
15.3.2 固定条件的跳转指令307
# {. ]  J1 O. t! z15.3.3 无效的反汇编指令308
8 @/ U: O* _0 y4 T2 C9 a- U: q( c15.3.4 用IDA Pro 对指令进行NOP替换311) ?8 m; {( x7 J( w5 O
15.4 混淆控制流图312
% ^2 _# G5 U* L4 s) [7 w15.4.1 函数指针问题312
: Y% i$ T4 n7 j: v) L15.4.2 在IDA Pro 中添加代码的交叉引用313
* i- C9 U2 w# V8 n. O15.4.3 滥用返回指针313
; N3 M9 f+ y. ?5 M& z# i15.4.4 滥用结构化异常处理315
  K- a6 x2 r3 n! @: \1 L/ d15.5 挫败栈帧分析317
* k- Z/ S% `* ]! N8 w  |6 I8 K0 N15.6 小结320
. u/ O1 M( Z' P6 [15.7 实验320, F' B0 s7 t& y) d) W$ x* m2 b% V

  i! F; Z0 w! Z0 [. ^第16章 反调试技术322. y( e" y& w2 N9 r2 f; C/ O

' f' t0 H& U, E3 _16.1 探测Windows 调试器322
) G) R5 x! h, b/ p16.1.1 使用Windows API322: V* y: u; A# }2 b: t0 v- B9 o
16.1.2 手动检测数据结构324
! a, F8 ]* {) j$ N" {16.1.3 系统痕迹检测3265 ~! M; w' s( C1 f( d) \, I9 x
16.2 识别调试器的行为327
, _: T" T% r1 ~16.2.1 INT 扫描327$ h1 H3 t! i; {3 I
16.2.2 执行代码校验和检查328
* r. m# x( o, ~9 _4 B16.2.3 时钟检测328
0 {& l# v0 O5 M, @/ Q16.3 干扰调试器的功能330
. q$ K3 ?0 O, @+ x16.3.1 使用TLS回调330
( S+ Z2 p% J, T& t; G16.3.2 使用异常332
* Q4 D9 l; \8 d4 ~# A16.3.3 插入中断333
2 u9 b6 y; N$ _! ]* `16.4 调试器漏洞334: m5 u0 R/ ^* B# B+ }3 S: W
16.4.1 PE 头漏洞334
, k! V  `, [, [, c$ v7 C16.4.2 OutputDebugString漏洞336
- v( k( _/ k' K% g, x, t16.5 小结336; o0 [6 k9 k5 }4 |+ L) t
16.6 实验3364 o# A+ H" m6 R8 x( I& \3 ]
( x+ F! x9 p- x9 A
第17章 反虚拟机技术 3389 ?3 g/ f/ I9 X( C; m9 M: O
7 J8 S; V+ ]6 _) d) M9 G: K
17.1 VMware 痕迹3386 P& \* d4 E$ c9 p' r
17.1.1 绕过VMware 痕迹的探测340
. o3 g2 ^' Q+ T3 y1 o$ @& e: I17.1.2 探测内存痕迹342
" E  G# v) q; @( J( t17.2 查找漏洞指令342
0 ^! n6 ]  |, \  W- N17.2.1 使用Red Pill 反虚拟机技术343
0 A- x9 c* Y6 q, d7 P9 }* {17.2.2 使用No Pill 技术3448 b0 l2 {# o. E  b' e1 P9 f
17.2.3 查询I/O 通信端口344; o( S- a& i5 f, |3 w. G
17.2.4 使用str 指令345" X# y0 J; B) n
17.2.5 反虚拟机的x86 指令3469 Y4 q6 l. Z$ q* ]
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347" e: k$ i/ k1 r: F" q$ o
17.2.7 使用ScoopyNG347: M  _& M6 F6 I* f  F6 X6 Z5 T
17.3 调整设置348
6 w% K5 {. K& n/ L& e2 E17.4 虚拟机逃逸349+ J1 w7 U( a; `& S* Q5 ?
17.5 小结349* `5 G1 S2 k0 b2 l3 J, g8 X6 N6 }
17.6 实验349
% t2 D" X8 i6 A7 G, r* S# o
* O$ ^# ?/ e  `3 V: D( Y第18章 加壳与脱壳 352
/ l$ g9 Z* m- ~# {6 ~( Q* U8 y
1 `3 q  B9 L7 |9 ?) M18.1 剖析加壳3529 U; w$ [5 Z% k
18.1.1 脱壳存根353' B9 f0 P7 J! m/ |/ C0 f
18.1.2 加载可执行文件353
8 G: T: l- h. d" W18.1.3 解析导入函数表3539 M. J0 `% G! c9 o* y  Y$ \/ a
18.1.4 尾部跳转3545 J8 Q$ O; A% z& a0 e8 C8 c
18.1.5 图示脱壳过程354
' [* u; K$ n! X# _% V$ z- g18.2 识别加壳程序355
2 q. m- E7 n" X2 S  K& R18.2.1 加壳程序的标识355
& L8 p: r$ t& v; C, [' Q18.2.2 熵计算356
2 o% z: |2 y, ^8 B: L* \18.3 脱壳选项356+ P  w" }) M" Q% _' I+ V& }
18.4 自动脱壳356
( k! y) j" R5 X, G2 s9 M5 r18.5 手动脱壳357
1 W. O5 x( O6 U  i% f6 Z; v# b18.5.1 使用导入重构器重构导入表358
4 N% |% ?7 o/ m$ x5 I  N4 e/ |* m18.5.2 查找OEP359) S3 E5 B( K( w/ A* Q
18.5.3 手动修复导入表363
! a0 R( B, l& z: C! S18.6 常见壳的技巧与窍门3644 w1 ~& H$ i+ h5 h
18.6.1 UPX 364+ N; j) N* o7 Z, h+ a& t! i
18.6.2 PECompact 365) L. G9 B. B" C7 F: P. I
18.6.3 ASPack365
# r- B' `& a. g! q6 B18.6.4 Petite 365+ Q0 R) ]) q, h
18.6.5 WinUpack 366$ b9 z  P: T1 U, H, u/ ^
18.6.6 Themida367
- v8 z  J. [' @( {18.7 不完全脱壳情况下的分析368
% n1 x; A5 L+ C7 h, n* P( b18.8 加壳DLL 368
' O4 K( i0 N/ [+ t5 u' K0 `18.9 小结3695 H& x* [+ O& b& m+ Y
18.10 实验369
; @* l( v! k+ l$ a6 ]
3 T. c# e2 V5 T0 }( t; K4 K5 Y/ H  e) m1 x  W2 F9 {0 V
第 6 篇 高级专题- r9 V& }1 z7 N2 j( a4 d8 ?
$ t* I) b0 j# [
第19章 shellcode 分析 372  w/ z/ K4 D: F6 K1 h
! o- Z& j! J; u: u8 [8 i2 b
19.1 加载shellcode 进行分析3724 e% U$ X! K3 c6 K1 X
19.2 位置无关代码373
+ g! V. N5 j, G19.3 识别执行位置373
! V: z, O8 d% ~+ K/ t9 A19.3.1 使用call/pop 指令3746 I0 ]) P/ L+ J+ \5 h
19.3.2 使用fnstenv 指令376
# s" }( Z5 d& }' S  x' |  I* t19.4 手动符号解析377) i$ s% X7 K' [, e( y
19.4.1 在内存中找到kernel32.dll378! k, \2 ^* Y! U
19.4.2 解析PE 文件导出数据380
) b& O- Q* t# p& i19.4.3 使用散列过的导出符号名382
6 H/ e/ u- b  G$ L3 }19.5 一个完整的Hello World 例子383
2 ]7 S9 {: Q0 u2 j' [19.6 shellcode 编码385
, W$ s+ U2 A, z+ G* |19.7 空指令雪橇387
0 K9 Z0 ?: t  l; |7 `19.8 找到shellcode387: q, n' P0 }* _9 @; E
19.9 小结388
. ]" D7 A7 g4 K& x6 k19.10 实验389: e' M8 Y# l. e; s
1 J( m( x% C( ~" K4 b
第20章 C++代码分析 391, G( \" f# U+ U% [, s

7 C# p* _/ d& V2 C# m. D20.1 面向对象的编程语言3913 _; y& R, _) g3 `8 [- b
20.1.1 this 指针392
( Q! @2 W0 N: `/ p* v+ A, J20.1.2 重载与修饰394
  P' j" e; c  ^. x20.1.3 继承(Inheritance)和函数重写(Overriding)395$ w5 }+ W- K# D( {, r' L
20.2 虚函数和非虚函数396
5 _, V3 U' Z: {- d20.2.1 虚函数表的使用398
2 [6 O1 o" z8 w' m9 b20.2.2 识别虚函数表399
+ d* V' y9 E7 U& n7 O  `# Y) }20.3 创建和销毁对象400% `4 O3 _% ~( }) J6 v* ^# V
20.4 小结401) M. l, S- T9 @$ `8 n3 g
20.5 实验401: K8 _7 E- ]- L( J2 w7 A

% Z- T' ^( ~, L) j第21章 64 位恶意代码 4038 J$ p/ G& X& X$ R; Y

* D5 ]. X% k/ @! H21.1 为什么需要64 位恶意代码403& s6 I$ [! j( ~& X0 D( C
21.2 x64 架构上的差别4047 w5 L; c) `- s& R
21.2.1 x64 调用约定和栈使用上的差别406
7 p; j0 [/ m6 _1 S) K21.2.2 64 位异常处理408* [% h) b: b. w
21.3 在Windows 64 位上的Windows 32 位408, D6 @7 ?" e/ t2 O
21.4 恶意代码功能上的64位提示409
! J  v0 q. E! m7 g21.5 小结410
) h9 E" k' f: k# }6 Q21.6 实验410
- f& h1 t; [8 d2 O
  t! b/ |8 W! O( O附录A 常见Windows 函数列表 412
* @2 z% C( r) H# o) p8 b8 [/ p* r8 Z* z7 _  q
附录B 流行的恶意代码分析工具列表424
- f/ e" T6 ~, k6 n" X
1 q4 w9 F6 @7 w5 L$ W$ P( c附录C 实验作业参考解答435) F: A  H  b+ W+ ]* T
! W( T' d0 y% C
附录D 致青春,基础软件开发的中国故事 691
6 }3 b9 O, s  @$ I: K* S4 |8 o1 r+ ]; n
附录E Syser 操作入门 695
# m2 M& u! s7 c+ ^# P) D8 F( y/ c2 G" k  m5 u# x7 @/ W2 J' D) P8 D# c! H
) M& k- |" X: m% @3 y7 n$ l
想知道小甲鱼最近在做啥?请访问 -> 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:515 B; k4 }# p4 Z& r6 [2 w
什么编程语音写的?
, w; b3 S' }; U, V- `
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-1 21:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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