鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

$ }* t: S# i+ c
; O# z3 z; {  i/ \书名:《恶意代码分析实战》  d8 \5 j- m! P$ ^" c
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)- o3 j% w( n8 W- g+ k
译者:诸葛建伟,姜辉,张光凯 + @$ y. Z: y$ @* n" |: J) Z& |
出版社:电子工业出版社
: s  d$ s  |. I  N$ `% D出版年:2014年4月1日(第1版)
  t( X) W0 Q8 B8 k2 p定价:128.00元! U8 D% t: F2 P
装帧:平装2 M& H4 L# H# g1 Q5 c
ISBN:9787121224683" ^; c7 l& V- B" L" o$ ^

- K0 g9 w7 c. V; H9 K9 K* ?/ t! S购买链接:
% ?% V& X# G. O" K; y4 M3 r9 n3 p+ C


  E% f  D: _) B& _$ F( b亚马逊 -> 传送门
$ n4 b6 n+ V4 t' X1 v. r: _+ |$ i
0 m+ l7 }& M- B" X7 P当当网 -> 传送门, `! w) y  t! S7 Y; G4 u6 m

. r1 t7 M( n8 S1 S6 T京东 -> 传送门
8 V# A4 ]/ R; V4 c4 K) g; z: \
6 D$ k* j7 h! H; n0 o天猫 -> 传送门  d- l( M3 E- O" ?2 [
$ Q$ {% G/ V/ ]4 D3 a( T7 u$ n% l- L

- r  t4 e  T& S# O内容简介:
+ M' x$ T5 F) B& @# o6 k* I# }( H/ n' ~" V" m% ~

( g. L) z* B/ P  {! U
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。: Z" ~8 \8 Y2 n# `; ^% H7 |
$ s% V+ o; O& @% Y9 r+ i0 M
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。  V6 @0 X8 F# r' A- q6 @
' D/ Q# ]: G1 Y& ]. P' {7 R
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
6 v1 \" u; T6 n9 r7 n针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。2 @& O3 Y: [6 h; D& n! M
4 ~( ^! S- d2 O3 O4 X: B0 l
目录:7 _3 v, n8 N' ^7 G, A. n

# H# }" o$ I/ D9 I6 u6 t

" [0 f4 S; p- `" Z" h. u第0章 恶意代码分析技术入门1
1 g8 r) L7 p. ^& p
& [* O/ R/ M: y0 B! i; C* T0.1 恶意代码分析目标1
8 T8 j4 q, U( J0.2 恶意代码分析技术2
8 O  K; u, \4 q/ p8 g0.2.1 静态分析基础技术2
1 t) U$ c4 ?: `0.2.2 动态分析基础技术2# X7 s+ L/ j. V8 C. c; \( O
0.2.3 静态分析高级技术2! L; g7 s- G& C$ {8 |
0.2.4 动态分析高级技术2" F- e) x1 b) {& \1 P
0.3 恶意代码类型3
6 u# B2 ^  [, W2 e$ u- e4 B0.4 恶意代码分析通用规则4
3 c0 K* W* w8 |
% ?: v3 E9 K! O: S0 p
! O$ {. c* d" O( p- r3 P第 1 篇 静态分析9 P3 M  ~% b/ L. I, s3 C/ y

3 _5 N1 F/ w& [. `7 x( G5 a2 S, c第1章 静态分析基础技术 6
6 t1 S( }7 b1 `- p+ x* G

  p" L% d# K' m  n% v1.1 反病毒引擎扫描:实用的第一步6
) G. C( d3 V% [+ }0 b1.2 哈希值:恶意代码的指纹7
+ r! D, O6 }& j6 H& u/ D1.3 查找字符串7$ O* p9 x# k% n+ s" G
1.4 加壳与混淆恶意代码9" |3 x  q* e- X7 E& V) Z) c# S
1.4.1 文件加壳10
+ b4 E2 y7 f; h" ^7 p1.4.2 使用PEiD 检测加壳10( F7 [$ r& l0 L+ L1 b3 X" ?
1.5 PE 文件格式11
: v, V% w! R. H1.6 链接库与函数12* v3 [8 u7 B! h  p& G4 I. |* i
1.6.1 静态链接、运行时链接与动态链接12
* Y5 r2 L; \1 y/ N9 t3 A4 n  Y& ?1.6.2 使用Dependency Walker 工具探索动态链接函数137 \" ~; d/ u- T
1.6.3 导入函数140 Y" p7 _: p7 e( v# w* b. x5 w3 o
1.6.4 导出函数151 Z/ z4 y4 y) r9 e6 ^
1.7 静态分析技术实践15* E  I8 d0 S& |  _$ m0 |( k, L1 s
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
2 A$ E1 U, y5 l* L3 X- ?1.7.2 PackedProgram.exe:穷途末路18  w. O% T0 f: i
1.8 PE 文件头与分节18
8 R( G; }, O9 y& f9 H  L5 A" }1.8.1 使用PEview 来分析PE 文件19
8 }# g+ A& q7 k7 U1.8.2 使用Resource Hacker 工具来查看资源节223 L% e! c: u  ^) t$ s( s
1.8.3 使用其他的PE 文件工具23/ Z7 H+ q0 A' |* J
1.8.4 PE 文件头概述23
) B" V' _2 P* R9 e! w/ A; m" `1.9 小结24$ f2 F, f# |7 \8 Z( K
1.10 实验249 P9 ]6 [$ \& K; J2 D! n! L# P
3 W# q# r" b; s+ H# ~! P
第2章 在虚拟机中分析恶意代码 27
! R5 O' d1 S6 s7 a  W! E" B7 g6 ~& s1 Q  q/ l. m: M
2.1 虚拟机的结构27
" ^: X4 V3 e' C2.2 创建恶意代码分析机28
. n& ?! Z. E7 ], A  x( e! @/ l2.2.1 配置VMware29
; p, s5 b, x8 y" `1 E3 U2.2.2 断开网络30. h* z& [: p$ Q3 E) h2 z/ O' T5 j
2.2.3 创建主机模式网络307 f. n2 i3 u8 v8 k) B3 K* c
2.2.4 使用多个虚拟机305 ]0 j3 ~+ w; v. F: T
2.3 使用恶意代码分析机31
+ e- v* M3 H/ ?6 B; W3 X) c2.3.1 让恶意代码连接互联网31
% {- ]# {8 s3 C) O7 K2.3.2 连接和断开外围设备32  a9 ~+ j7 [+ |5 z
2.3.3 拍摄快照32: @0 M. n: y) R
2.3.4 从虚拟机传输文件33
, |6 \7 x, z/ B! l2.4 使用VMware 进行恶意代码分析的风险34! [2 f5 {' o% ]' X( n% _
2.5 记录/重放:重复计算机运行轨迹341 Y9 E+ _) E% a! L
2.6 小结35
) @2 f" n: }$ @; u9 [# K. @  a* q
第3章 动态分析基础技术 36

3 Z+ B8 S9 R  a: J$ N- T
) x' t$ n4 h  o' p' V% b3.1 沙箱:简便但粗糙的方法36
5 ^6 [6 Y1 V2 M/ }* ]* C0 k0 K3.1.1 使用恶意代码沙箱36
, D& v" A: m8 C5 x3.1.2 沙箱的缺点37
' R' V( Y$ [! B7 b4 U3.2 运行恶意代码384 u2 O# l: x4 f3 m
3.3 进程监视器39& a/ p, Z1 G) Q; `$ Q4 H! v! c
3.3.1 进程监视器的显示40
$ i: b; ?* W% G: Z% V, a( N6 j3.3.2 进程监视器中的过滤41. K( f- t$ \+ a0 d9 y
3.4 使用进程浏览器(Process Explorer)来查看进程43
9 k- l. o# i9 B7 F" G  @+ P" V; C3.4.1 进程浏览器的显示43, `3 a4 c3 ?( I0 i* e' F/ ~2 ?! |
3.4.2 使用验证选项44
0 ?7 k9 b. x% f4 v* ~3.4.3 比较字符串45. B* h- c  Y( Z& \" y
3.4.4 使用依赖遍历器(Dependency Walker)455 e" x9 A8 [# k3 m! m8 s! B+ c
3.4.5 分析恶意文档46
9 }7 i, G0 @8 H3.5 使用Regshot 来比较注册表快照465 [5 }! F; q2 e/ b
3.6 模拟网络47* Q; ~  b" Z) ~, U0 U
3.6.1 使用ApateDNS47
% M3 w/ E* f7 X1 o2 n* }. D9 i1 b3.6.2 使用Netcat 进行监视48
/ K8 o5 b/ V6 r; V3.7 使用Wireshark 进行数据包监听498 _7 K" ~; ^* ?+ x
3.8 使用INetSim51
7 [, A3 i8 q7 q/ n3.9 基础动态分析工具实践52/ d3 F* d6 b2 d& V2 B
3.10 小结55
1 g8 t& ?4 Y/ x. k/ }" `. }3.11 实验56/ L! D! T3 f& L8 |

: K9 B0 {  p" c/ O9 T6 x( T' R" T) ^& |7 F
第 2 篇 静态分析高级技术篇" @7 h( i) b. _" U% D# q! W
" t1 c! ~% W) r5 s! e
第4章 x86 反汇编速成班 60: L: }" ~0 k+ P- j5 s% g
" ^4 i' H; g7 w! S$ y
4.1 抽象层次60' E; R  d  P; k* Y6 K
4.2 逆向工程62
; w" E) U) a: T9 @4.3 x86 体系结构62
* b  W$ g0 M" j% l& z* c! H4 ]4.3.1 内存63) y1 ^; T7 B& @. j
4.3.2 指令64+ J% v9 l3 F% c2 L- T0 |# k& u( G
4.3.3 操作码和字节序64. O7 o. A( v' u
4.3.4 操作数65
& Z# d  N1 `2 J" E* J# E. X0 C4.3.5 寄存器65
# F% ]9 ]. r; N+ s4 O4 ?$ p4.3.6 简单指令67
, g; v0 r( {+ X/ A/ r' r) }4.3.7 栈70
) ^0 s* X% \. W9 C5 K4 F! U4.3.8 条件指令73
( X( f8 i3 d( [0 y4.3.9 分支指令73% p7 q1 d2 G) N
4.3.10 重复指令742 h" ^, \. w+ k3 A& i! i# b- ^: [
4.3.11 C 语言主函数和偏移761 H6 v+ O% n. d( j1 t
4.3.12 更多信息:Intel x86 Architecture Manual77
4 `( a: M  v- O3 Z; \! r4.4 小结78
$ s$ l- G) C( n. _
, e8 u: [/ }/ ]第5章 IDA Pro 79
6 u' \2 j+ ], a3 ~( C  R
" W- u4 B2 T2 c, R; D: r# |! D3 Y5.1 加载一个可执行文件795 [# m: F3 l+ I% T1 J- s
5.2 IDA Pro 接口81; w% T) w7 Q! i& W3 u% V, e
5.2.1 反汇编窗口模式81% i5 H# U' r8 L* y1 B
5.2.2 对分析有用的窗口83
3 W- z% m0 {; l5.2.3 返回到默认视图83
% |2 O( A  G& I5.2.4 导航IDA Pro 83
$ `# t: z& a3 L$ r  k5.2.5 搜索85
9 P( A% s3 v" d+ }7 O% l5.3 使用交叉引用867 V& }/ F. Y+ P9 G& M0 F. ~; ?
5.3.1 代码交叉引用87! V7 k7 Z3 j) R2 Z
5.3.2 数据交叉引用88  X! f1 X! U# l" O& e% B
5.4 分析函数88
% t/ _. `  |5 m" P$ @) E+ J5.5 使用图形选项893 V& l* N/ l; h9 t5 X# s3 s; g
5.6 增强反汇编91
8 t$ A. C, x; @! {  Z* W5.6.1 重命名位置91
' y8 C# O, B/ o5 \8 V8 D; D6 R8 O5.6.2 注释92
9 |; M1 o" t, h  z5.6.3 格式化操作数92
/ R! V! K9 ~  y! ^5.6.4 使用命名的常量93
- a2 V' H3 n7 B+ A" p9 n5.6.5 重新定义代码和数据94
9 \( @5 U6 ?* _0 ~6 G/ v5.7 用插件扩展IDA95
6 J6 m1 \1 K( P4 D9 C9 `5.7.1 使用IDC 脚本96; C6 u! D% i" C3 w
5.7.2 使用IDAPython97  x* L( t; y; E, _( s. \
5.7.3 使用商业插件97& q2 d" @/ v& ?' C* q- E
5.8 小结98
; n/ r: r. E' S. D" B2 l$ `* P' s7 n3 e5.9 实验98& z/ B7 b" h& y9 ~% T

! E# i8 O# S2 L4 _第6章 识别汇编中的C代码结构 100

3 o+ _1 e) ^7 d6 V/ B2 k1 d) M7 j
4 I- [1 g9 R, h6.1 全局与局部变量101
" }& P8 T) u, a% L0 ^* T3 c7 N5 K5 n6.2 反汇编算术操作1024 d) S* [6 H7 I9 R( ~7 Z% N% K! ]
6.3 识别if 语句104
) j5 p# D" l( g) g6 |6.3.1 用IDA Pro 图形化分析函数1054 A2 z+ ?  F  z; s- q5 u
6.3.2 识别嵌套的if 语句106  x# C# y) d2 S2 L
6.4 识别循环107$ M% L* V5 v2 b/ a) {
6.4.1 找到for 循环107) B5 |( V( t3 n. z3 l
6.4.2 找到while 循环109
% ?) j8 }! p; a, U6.5 理解函数调用约定110/ r! @  R  P+ v) k* }
6.5.1 cdecl110
; ]2 N/ q1 B+ `; ^. G& H6.5.2 stdcall 111
- C2 v' ~' d1 f4 D6 U6.5.3 fastcall 111# U6 V( u: e5 n2 F$ J; N5 d
6.5.4 压栈与移动 111* q" |! W- x. q2 s- B: Z. b
6.6 分析switch 语句112
1 ~- F; i; w5 W; a6 N+ s8 ^# K) \6.6.1 If 样式1122 c1 S7 S0 `( ~" ^! t* }
6.6.2 跳转表114# v# f2 ^) C8 Y" v. a
6.7 反汇编数组1182 v2 Q: y  E' Q
6.8 识别结构体119
7 c- E1 D7 h9 I# h6.9 分析链表遍历121  a% x0 U' u6 _" Y
6.10 小结123: s0 l! L+ W  H: w; x
6.11 实验123
/ u; B7 c/ `& g+ c9 o) t' u& v( G' n  y: i4 x) E* e
第7章 分析恶意Windows程序 126

' N6 a! S4 Q# N# _# l2 y  \
1 Z7 L8 b; ~5 P0 G7.1 Windows API1261 D' }! K1 F8 L& G9 ]; {
7.1.1 类型和匈牙利表达法126# K& j( X  G, }4 G' A) [
7.1.2 句柄127$ F  N  i$ u7 ^* q) O5 I3 g
7.1.3 文件系统函数127$ ~4 u6 V) C. w9 r& n; |! Q  V) Q
7.1.4 特殊文件128& f: y" r9 B1 R& A9 }2 C4 }
7.2 Windows 注册表1293 ]% a; Q; l7 k% e+ Q" [
7.2.1 注册表根键130
" Q* Z) p2 Z, }0 X1 Y( I! V% V% m4 q7.2.2 Regedit1312 Z3 z0 i6 ]6 P. c
7.2.3 自启动程序131. K0 z6 C' h% I* T
7.2.4 常用注册表函数131
: h6 v5 @" B7 B1 k2 X1 I7 m7.2.5 练习分析注册表操作代码132
5 L+ n+ K; Q5 e/ U* U7.2.6 使用.reg 文件的注册表脚本133
- M& x) l8 i7 C- M5 ^7.3 网络API133* Q! V- n, G  [* l" f
7.3.1 伯克利兼容套接字1340 C, g9 B: D! X; N4 ~/ _
7.3.2 网络的服务器和客户端134
1 w* H0 \  G, k& v6 h1 R- V  i7.3.3 WinINet API 135
+ K5 V. K! |6 w) G: Z7.4 跟踪恶意代码的运行136
& y  f0 Y% }3 H- I3 U! Q7.4.1 DLL136
* n( H# E" J, w% p% U7.4.2 进程137. C$ G! d. u5 C4 @% U# o
7.4.3 线程139
7 o* L2 a: ^* C. I( S0 \7.4.4 使用互斥量的进程间协作1429 r# v. Z' b) E: u4 t0 J* H: B
7.4.5 服务143) _  e# J$ S* M4 C# Q, P, }  ^
7.4.6 组件对象模型145+ ]8 C% n6 o7 ?! O4 z$ r$ j' m
7.4.7 异常:当事情出错时147
$ A* [+ ]* m+ V: I" [8 c: d7.5 内核与用户模式148
& f1 D4 _1 {3 M; e4 m! r0 [7.6 原生API149& V9 L7 T8 {: l' t
7.7 小结151. D$ u; v6 |/ G
7.8 实验151" g( G4 |6 [4 ~- ?4 P: j& a9 n
, }- u& w4 b8 [5 S: _. N

, P  g( H& S9 U% ^9 z第 3 篇 动态分析高级技术篇+ `3 \& ?/ _) z4 `" x) t2 V
: T- F1 k3 p* ~6 m4 y
第8章 动态调试 154
8 l0 Q* o0 z7 r& `. S. }
9 p( N. t" D' p$ ?
8.1 源代码级与汇编级的调试器154
7 W1 k! m. l! a6 x8 |8.2 内核模式与用户模式调试1555 h) @: |- N! V
8.3 使用调试器155& z& }" q: B8 N3 j, J+ p* N7 r
8.3.1 单步调试155* ^% {1 O  U  D& C! k: Z/ d
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156$ a7 ]/ G, H) V/ W* }2 K" ~+ |. m
8.3.3 用断点暂停执行157) ?$ X1 e3 d8 h
8.4 异常161
6 u2 t- d/ I5 X- {8.4.1 首次和二次异常处理1629 Z, Y8 f& G; z7 b
8.4.2 常见异常1626 ], c2 U: i1 V2 `6 @. E" [1 n
8.5 使用调试器修改可执行文件163- V6 q' ~/ l! h6 Z( N' |
8.6 修改可执行程序的实践163
- d: p& \/ L6 u% r, o2 c" n% _8.7 小结164' j# k% b6 ~1 X4 t+ B

! d# N7 F0 t+ L1 S; h9 }第9 章 OllyDbg 165

+ O9 z" [' A2 V% i8 Q
, X% R9 W+ j- [: T. @9.1 加载恶意代码165
$ F. \( G' O9 e0 i/ e: r9.1.1 打开一个可执行文件165
2 t- K4 c4 m$ q7 R" Y, N$ U4 Q! u9.1.2 附加调试器到一个运行程序166
4 O4 @$ h/ [8 a. C9 C8 ~, T9.2 OllyDbg 的接口167
9 A7 M2 F1 S, l8 n- D9.3 内存映射1688 ?/ a! G: ]! U9 B/ I8 ]0 k
9.3.1 基地址重定位1696 a4 j$ C! `+ A( D
9.4 查看线程和堆栈170
% @- @) a% k+ q/ t( O1 C3 D8 y9.5 执行代码171
: D' r5 r0 D4 ?$ |* q2 Z9.6 断点172
6 L; I' {7 M1 j) H! a9.6.1 软件断点173
4 h8 D# C8 ^# B% ]$ |9.6.2 条件断点174
  L8 G& h1 y* H0 r9.6.3 硬件断点175) i5 v1 `; _; t, U/ h
9.6.4 内存断点1753 y8 M6 |$ u* w% |
9.7 加载DLL176
3 _+ J4 f' Z$ D, a& m5 b% p9.8 跟踪177* V) h$ H/ V8 O* B* u3 M( {
9.8.1 标准回溯跟踪177
3 Q6 Q/ I( Q( H; c3 v9.8.2 堆栈调用跟踪178
1 Z/ {* o! p" C' A" a9.8.3 运行跟踪178! d. @0 d5 _4 u9 S' w
9.8.4 跟踪Poison Ivy1785 x- L+ F; Y0 w9 n) i( E2 _
9.9 异常处理1793 V. V0 k9 F# h. F$ I& Y
9.10 修补180
& a/ P, T. _' D" I! m' h9.11 分析shellcode1818 e' Q' N: f1 U3 M9 n3 Q/ I* o& t
9.12 协助功能182$ W! x7 k! e6 o# e1 E
9.13 插件182: Z5 i+ N1 B5 x$ l% K
9.13.1 OllyDump183' t/ `$ Y- M2 E/ B- e
9.13.2 调试器隐藏插件183
* w# Q' K, S8 `1 S9.13.3 命令行1843 F. A$ t4 v  d* ~# @  i# s
9.13.4 书签185
% r. ]; R+ J  n9.14 脚本调试185
8 g5 \( W+ p+ s6 i( m" X9 p9.15 小结186
" G3 E& ^2 ~# D2 R' `. A0 P9.16 实验187
# [' O' X+ S) v& p* |& H, ]5 S8 f9 c8 j& x7 s4 W3 ~
第10章 使用WinDbg 调试内核 189$ T: T3 C0 ^" K: {1 j: a% A
& S3 p6 y  V3 C/ g! ^3 S% j
10.1 驱动与内核代码189
* h9 |7 h3 Z. Y# ?10.2 安装内核调试191
* w1 _" `* G7 A& Q10.3 使用WinDbg1938 f5 |  V: Y; v+ p# ^4 {4 {
10.3.1 从内存中读取194
8 Y4 T; m" s6 i! O' a4 @, R10.3.2 使用算术操作符194
- d4 w9 e5 t$ l: a10.3.3 设置断点1942 k# h6 O. X5 V
10.3.4 列举模块195
  X& l# m: E! {1 x4 e) Q1 l2 A10.4 微软符号表195
. A6 P& x+ ^" Q0 y10.4.1 搜索符号195" ^1 @+ s# g: }' J
10.4.2 查看结构信息196
! m3 o5 y: h/ r! G1 u- x3 \10.4.3 配置Windows 符号表198
& k( X  n/ O, D) }+ g10.5 内核调试实践198
+ j, ~% I8 V: m' a9 S2 v+ _+ j5 j10.5.1 用户空间的代码198; @+ N6 t: ]2 ]% ?7 f4 ^+ L
10.5.2 内核模式的代码200
: [) ^& z; `) W0 t1 b0 v10.5.3 查找驱动对象203; ~* P# e) h- h1 |
10.6 Rootkit2045 a4 l: T6 \  d" @, _* W( w
10.6.1 Rootkit 分析实践205
- U& O7 q" U8 A4 w10.6.2 中断208% ]4 w$ }) E2 b4 l$ S
10.7 加载驱动209& Q* a4 x8 a0 V/ J( |
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
: R' p# _( q1 Z( l1 m10.9 小结210) g! f& ]: A- c
10.10 实验210- M, l3 |4 }8 `
6 P( i* A, w: }" y: e
5 r9 m8 x1 x4 c. t
第 4 篇 恶意代码功能篇' I5 a- {3 y5 H- h  c# m
# f7 G1 H$ u" h- I* Q+ ?
第11章 恶意代码行为 214/ c1 j& Q" G: \, k  m4 ~, v: e- B

: V8 K9 W% w' T2 q7 b11.1 下载器和启动器214! S# f$ U! @' B6 ~. P  A8 R6 B- {9 v/ H
11.2 后门(backdoor)2146 l/ L. I& @4 m/ Q4 c
11.2.1 反向shell215( a% @/ e% a! ]
11.2.2 远程控制工具216
) Z8 l/ f# h4 o7 n11.2.3 僵尸网络216
! u3 k9 o: m8 x1 x- \11.2.4 远程控制工具与僵尸网络的比较217
6 |( `3 T' u6 ^5 u/ [11.3 登录凭证窃密器217* e6 m: l) r! D( y
11.3.1 GINA 拦截217
9 b5 N6 G3 Y: z4 z11.3.2 口令哈希转储2189 ^# C- l% z* T  H  L; I
11.3.3 击键记录221
5 p( x, K: j; r' J( Y  n; R11.4 存活机制223! X/ ?+ I4 ^, o! i; b0 h
11.4.1 Windows 注册表223( `* `4 }" D; V9 [8 X( k% ~3 Y/ y
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225+ h9 i( ]' Q! K% ?
11.4.3 DLL 加载顺序劫持2279 W" k  E' G6 T2 ~) e4 ~
11.5 提权228. ^0 F7 O* q) ?# W& }+ |2 d
11.5.1 使用SeDebugPrivilege228
, O( ?7 J  X0 _4 S4 ?9 H11.6 隐藏它的踪迹——用户态的Rootkit229$ b6 p# G4 ^2 w
11.6.1 IAT Hook 230
2 U! `  w1 A% c) e4 d; Q: q2 d11.6.2 Inline Hook 231
) L1 ?: d/ R  n( x! K) e' D  X11.7 小结2329 Q8 V" O$ z# \+ ?1 g- q
11.8 实验232
" o/ v% q) W  Z6 `3 O2 J& T/ E
( i* ]+ }8 t( i7 b9 B% N第12章 隐蔽的恶意代码启动 234
/ z  r4 O( t# d& T5 [- G7 A( n- \" ^. t
12.1 启动器(Launcher)234
1 N- A6 f- c; f' y+ p3 n12.2 进程注入234
2 }- U1 l) E0 f6 I/ O( V12.2.1 DLL 注入235
& P* ]8 m: _. Y5 Y3 a12.2.2 直接注入237* ~6 H+ P2 o1 Y1 n7 p8 f- K0 @" W
12.3 进程替换238/ X( i3 b: I* f( C5 @
12.4 钩子(Hook)注入240
6 y* X4 `! ?. H) [/ e12.4.1 本地和远程钩子(Hook)240& K. E3 t, B9 {) v. M7 Z5 O# F
12.4.2 使用钩子的击键记录器2417 }; _# j5 v1 }8 _4 h
12.4.3 使用SetWindowsHookEx 241; C  F6 E. [3 c, i. u
12.4.4 目标线程2418 q, ~' S: S. q" M$ i1 F( G1 b8 z
12.5 Detours 242
5 ?1 v7 ~4 l: R5 e; e5 O12.6 APC 注入243+ d% ~1 X0 d4 l. P
12.6.1 用户模式下APC 注入244
8 B' w( i- b. M- H2 t% E$ `; V; ]12.6.2 内核模式的APC 注入245
  T# s" f. b0 h/ a% y12.7 小结2462 V: u; f7 E- @* r0 F* {
12.8 实验246
) P0 j8 W* V& H1 p. {1 x  ?
8 W  {1 y: o7 c% \第13章 数据加密 248
* V3 o: U$ G- ]; `) Q
0 u# ~6 c3 u; B6 D& J- i13.1 分析加密算法的目的248/ t: @. L/ M; @4 |' v: k! g
13.2 简单的加密算法248
1 _4 u1 V, W9 F7 E7 f# o" W13.2.1 凯撒密码249
; T& w! D& x3 j: U! s3 Q. O7 \13.2.2 XOR249
1 A) r1 j  v! M, q13.2.3 其他一些简单的加密策略254" ]$ G1 ?* d. Y' g* E- f+ E9 e& K5 M
13.2.4 Base64255. c! ?0 r3 L( K) P% _1 S2 ~6 r
13.3 常见的加密算法258
) I8 M6 h, ~" m& t9 w5 _13.3.1 识别字符串和导入259- ~3 W) p! ?) s' `. [  ]
13.3.2 查找加密常量259. g! a6 F# i* h; W) x& d
13.3.3 查找高熵值内容261* U# Q3 @# G- E- E
13.4 自定义加密262! Y  z- _7 Q* a$ r$ c. ^
13.4.1 识别自定义加密2633 _( v3 `' \1 l5 o) I
13.4.2 攻击者使用自定义加密的优势265
# D1 k+ X5 N) G4 _13.5 解密265
2 N1 ?4 d) E5 j. d13.5.1 自解密265
: X- t% F8 `5 _, ~( B; y13.5.2 手动执行解密函数266
7 I) o- L( ?, t7 @+ @+ ^13.5.3 使用通用的解密规范267
' ^& t4 d% ]* r, d8 t1 s% f# M$ j4 S13.6 小结270% M) e9 I, z1 }4 Y& q$ p
13.7 实验271; n6 p' m  e1 I
( k; x3 K0 o' `0 l( l' v. z: G
第14章 恶意代码的网络特征273
1 r+ B- w: p1 e& G! [" e$ E# J0 {: k: p0 E. ?* d8 h
14.1 网络应对措施273; d* s6 `9 j- Q
14.1.1 在原始环境中观察恶意代码2733 y( Y6 @* j' E
14.1.2 恶意行为的痕迹274* J8 b1 t7 D7 _( S. m- a: t( i6 T
14.1.3 OPSEC=操作安全性275
; X7 I. M* l+ }; T+ c  o14.2 安全地调查在线攻击者275
  c8 c0 ?. {! D  n! s14.2.1 间接性策略275+ H- q0 `9 \1 i0 q: E3 C3 m- T
14.2.2 获取IP 地址和域名信息276$ g- M/ k: w7 |' e) `! E
14.3 基于内容的网络应对措施278
. d+ z3 o5 h; k* ^  U; r14.3.1 使用Snort 进行入侵检测278
; N' {, j8 G+ d6 a- k# N% C14.3.2 深入观察279$ W/ @' h" U8 g- {9 ^/ e, g4 k) f- v1 @
14.4 结合动态和静态分析技术282
+ Y# e6 E4 [/ N  w14.4.1 过度分析的危险2831 d: o( {9 g; i  q9 q- k! v3 e
14.4.2 在众目睽睽下隐藏283, }; D5 @, v, q( N* b( s
14.4.3 理解周边代码286% z3 J6 [9 R, Q' m1 ]6 M' J& N
14.4.4 寻找网络操作代码287
4 t5 Q4 k7 ]; p1 v" l7 o8 P- {/ h14.4.5 了解网络内容的来源288$ q! I" V* ~5 T# K2 g0 A
14.4.6 硬编码数据 vs. 临时数据289
! b2 v0 `# l6 o7 [: g6 K8 {! L14.4.7 确定和利用编码步骤2891 Y/ g( J7 B, y; J) w$ o
14.4.8 创建特征291! e3 W# K9 c( Q5 V4 m3 ~- m
14.4.9 分析解析例程2929 R+ E- `9 U" C- `3 y  ]( S' X  Y
14.4.10 针对多个元素294
, \6 g9 Y2 v6 ~: h, _! ]" f14.5 了解攻击者的意图2957 b! I8 T0 e( _' l3 ~
14.6 小结296/ [( D8 Y) y/ G( q, q8 O
14.7 实验2962 M$ l- `) m3 G/ B& J3 }) o
7 o) k! K# S8 b. n

0 p; F3 O6 J! c5 I第 5 篇 逆向工程
$ I' I7 u# t4 d) T! d
) z* ~& m! o6 ^9 h$ s第15章 对抗反汇编 300; k% j! d  x& @
4 ]8 L, g% Q4 t# Y& Z0 k' P# r& s& V- ~
15.1 何谓对抗反汇编技术300
2 Q) M" l+ c) M/ L" g- h# f15.2 挫败反汇编算法301
8 w/ Y* Q+ x: h15.2.1 线性反汇编302$ L" ]. V' e9 n1 `6 `
15.2.2 面向代码流的反汇编3034 z  f: U- {2 J7 Q  b+ G
15.3 对抗反汇编技术306
$ _% M# a, `4 f/ V$ q3 z, ?" o15.3.1 相同目标的跳转指令3068 v" n/ D, O2 [+ Y5 ^) N
15.3.2 固定条件的跳转指令307( F' @- d) h7 u  y+ P
15.3.3 无效的反汇编指令308/ ^" @" F8 D% E6 T. y0 |2 h; U/ ]6 w
15.3.4 用IDA Pro 对指令进行NOP替换311" _' e  S+ ^  }+ [: A. I
15.4 混淆控制流图312
0 q* X) _1 `& V4 E15.4.1 函数指针问题3127 W$ N2 ]" L* j4 D! Z
15.4.2 在IDA Pro 中添加代码的交叉引用313
" ^% o0 f& J  U- k7 i( k/ T15.4.3 滥用返回指针313/ T- s- V6 S0 Z3 @6 T
15.4.4 滥用结构化异常处理315
0 k1 N: D$ Z5 u7 K4 T5 @15.5 挫败栈帧分析317
. a, R# E9 a. G4 p0 F2 Y15.6 小结320
- a  f; e5 m5 Z/ Q" E0 |15.7 实验3205 R0 Y' H7 b& f% F. h& o" M
7 e- u! B* o: Z: g8 B
第16章 反调试技术3226 ]3 Y( ]( y, C9 ]+ }1 _/ P
2 Q' c0 O7 [8 `  `% p/ A/ }1 x* n
16.1 探测Windows 调试器322
8 z: ]& Z2 \0 E/ m9 x16.1.1 使用Windows API322
8 z$ L- A: H5 h) }7 r* D  t7 @16.1.2 手动检测数据结构324% A" G6 l3 s) h$ I
16.1.3 系统痕迹检测3266 u, z) T5 K0 j2 A% Z: ]
16.2 识别调试器的行为327
8 u9 P; G; Y, Q1 ~16.2.1 INT 扫描327
: z5 T# j' p( C16.2.2 执行代码校验和检查3284 T; H5 T, G/ T# {
16.2.3 时钟检测328( y+ n6 Y% h! f5 p
16.3 干扰调试器的功能3302 J0 r: C5 v# M4 y
16.3.1 使用TLS回调330( T5 {# Z' I$ x) z, _  a
16.3.2 使用异常332* Z3 a+ d' X5 r3 \
16.3.3 插入中断333
6 b, ?8 Q, ]1 s5 d1 \) l16.4 调试器漏洞334  C2 L6 X/ L, J# v* k8 g
16.4.1 PE 头漏洞334
2 I- x/ b1 v: O" k* d2 h/ ^" f16.4.2 OutputDebugString漏洞336( y( P+ Z+ V, Z* Q" p8 ~
16.5 小结336
! ]' u. S: |+ C. x" m# w2 a16.6 实验336
- j1 o5 |( B6 D3 x0 j& g; p6 \: i
第17章 反虚拟机技术 338
& A+ H4 l  d8 v. }/ z& r8 m* o  t' M! H# O- u# g$ D4 R% Q. ?
17.1 VMware 痕迹338
5 n4 S/ G# H5 i; l8 A" o17.1.1 绕过VMware 痕迹的探测340
7 s  y5 `2 G+ `; F17.1.2 探测内存痕迹342
& X5 {' [' C* w+ C7 H17.2 查找漏洞指令3421 e. H7 }$ ^( K, Q
17.2.1 使用Red Pill 反虚拟机技术343
3 o( N, _, A2 V, h17.2.2 使用No Pill 技术344/ f; _2 d5 u, }# u
17.2.3 查询I/O 通信端口344
- N# w5 e8 D+ r! H, T" v- ]17.2.4 使用str 指令345
" s% a# U8 s, h4 E  o/ E17.2.5 反虚拟机的x86 指令346
  Y8 I) n' k: L0 j* f17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
& D% B. ?5 x" F1 ~% r% `' z17.2.7 使用ScoopyNG347
7 A1 ^: J% c4 ^: e) O# E! g, S1 p% B17.3 调整设置348
6 `  b# A7 `1 Y9 a% {; m4 N17.4 虚拟机逃逸3495 ?" f  `* d- p2 n! z
17.5 小结349" W8 }( Q6 W, A7 @1 x! U  J
17.6 实验3494 C: r0 m) w, F& m* |
/ V/ k5 w* o- K6 a! ]
第18章 加壳与脱壳 352
3 o! e4 c& \, X. Y7 Y. \% u5 i% f6 L( h: D) Y9 y
18.1 剖析加壳352; i7 H3 h# v% r+ k% K6 C
18.1.1 脱壳存根353
2 M; q: L- m1 x# P8 V18.1.2 加载可执行文件3533 A+ H% x9 x3 d/ g* b2 c3 s
18.1.3 解析导入函数表353
' b4 J" p3 x: @( o) X; h9 n18.1.4 尾部跳转354
! _0 C- S  s, s1 h2 }18.1.5 图示脱壳过程354+ o$ p+ I; ~8 N9 e$ @. y! w3 A
18.2 识别加壳程序355( j6 k0 |3 _$ {, S5 ?9 \; o
18.2.1 加壳程序的标识355$ d8 s1 B* K+ s, f) s
18.2.2 熵计算356
" B' O9 r  A& }8 j: H; V( K18.3 脱壳选项356
# t! ]  G/ d! a' z; m& x- J( x* X18.4 自动脱壳356+ A' y' c( D$ y5 D% {0 F
18.5 手动脱壳357! D  j, T1 v! o# j9 c2 W
18.5.1 使用导入重构器重构导入表3589 v/ ?$ f( C% G$ N
18.5.2 查找OEP3597 j7 |0 r( I3 f! I, |  K) A
18.5.3 手动修复导入表363( A* Q5 D. Q8 R5 ?* Y: Y) Q$ h# b! [# d
18.6 常见壳的技巧与窍门364. M3 I8 V# ~7 h5 t
18.6.1 UPX 364( c! K6 N1 o  p: u( Y
18.6.2 PECompact 365( B6 K: g" f, d$ `3 J) H
18.6.3 ASPack3652 ~2 n7 Y9 L( z6 m
18.6.4 Petite 365' K) q7 L7 N; o) E5 k% [
18.6.5 WinUpack 3660 U6 R$ D: {# N; B* Z# S
18.6.6 Themida367
1 M6 ~( n* J% P* F18.7 不完全脱壳情况下的分析3681 }8 [7 I7 h. J" ~, z
18.8 加壳DLL 3689 t# p( d- _" j  h, S) z! y5 u
18.9 小结369* ]2 g$ c$ k' K1 V! O0 B# X
18.10 实验369
/ E+ D3 J( e; N! {, \+ I- U7 @6 ^0 S- C: B! }' Z" [: D& O' `
# X8 W* T8 S# S9 A$ o
第 6 篇 高级专题
. F3 Q+ \$ l) T$ x; J5 u- ?* K+ m1 [+ c
第19章 shellcode 分析 372
' \0 F7 s/ W! p3 a. v/ S0 B
' @8 t# y& z& J- m; v9 G( z19.1 加载shellcode 进行分析372
3 Y. F' G4 Z4 X# s; f- L19.2 位置无关代码373- ~' k+ k/ r4 N6 B0 B! I1 n2 }
19.3 识别执行位置373
7 r- n7 K1 q* S3 p$ Q1 w2 y1 s6 o# b) ^19.3.1 使用call/pop 指令374
' i0 M; S& J3 p: N4 _9 e19.3.2 使用fnstenv 指令376
, h& \8 V: }3 v$ G19.4 手动符号解析377
6 r4 B; F4 S7 [: m% b19.4.1 在内存中找到kernel32.dll378
: H: j6 |/ I6 Q8 E& S  Q% X19.4.2 解析PE 文件导出数据380
% T  y' Q, u4 M9 F1 v9 `+ W19.4.3 使用散列过的导出符号名382
% i+ x3 H. K# i) e( l4 v" O19.5 一个完整的Hello World 例子383
9 \. c) S* o3 J9 {& K19.6 shellcode 编码3851 ?* H: l0 _2 l  `
19.7 空指令雪橇387
) g! E) K' D/ X6 f8 p" b- G19.8 找到shellcode387
. g9 k, p( U' ~& A19.9 小结388
, N" e- @5 M9 b) V4 L19.10 实验389
4 v# Z6 y! ~. j- ]2 M0 L* j; y& T& K; C7 m) ~9 i
第20章 C++代码分析 391
' q/ V3 g% A- k5 R7 ~
3 F+ U- t" c+ C& n3 Q0 R20.1 面向对象的编程语言391- j, d  ^3 X# _: C( n& t1 H4 x  l* j
20.1.1 this 指针3922 f; ]8 R% U" V- Q
20.1.2 重载与修饰394
4 k0 A) \. q0 N  t  Y* j20.1.3 继承(Inheritance)和函数重写(Overriding)395. ?! z" {; v1 T: X: w- Z0 }
20.2 虚函数和非虚函数3962 U: N: \* P1 f
20.2.1 虚函数表的使用398/ h. B4 g3 a5 P5 b! `
20.2.2 识别虚函数表399& ?+ j3 P8 [9 s' u5 [. k: r: h
20.3 创建和销毁对象400
, H- ]& z% S3 r7 ~# o8 e  i20.4 小结401
9 ^) a) S7 @9 I# w3 \20.5 实验4018 t0 o3 {6 A+ r
/ n% ?. u0 y' V* d/ W
第21章 64 位恶意代码 403* r* P1 F; ~( A
& o+ ^- F  V7 z3 T& L
21.1 为什么需要64 位恶意代码4030 C5 d; e4 P0 V* h- ~& s
21.2 x64 架构上的差别404
+ u' `& J, F8 C3 m( C21.2.1 x64 调用约定和栈使用上的差别406
3 m7 {& m( a- U- N21.2.2 64 位异常处理408
, j9 R( c- P: [' U5 J+ `21.3 在Windows 64 位上的Windows 32 位408
# r& g" J' N8 f( v21.4 恶意代码功能上的64位提示409% t( y; k7 ]* U8 {8 q" w( v
21.5 小结410
) F* x: L" o2 `6 d& V; m' A21.6 实验4104 l6 E5 ~% }+ V& e- ~

' y  ]6 y0 c  x7 V5 D6 t* }附录A 常见Windows 函数列表 412
" [7 x& v( \9 h& E& \/ p
& b. O' P; F! P9 \附录B 流行的恶意代码分析工具列表424% [3 b1 K/ `  `* O; I, X

& M, z% ?& b4 u8 f附录C 实验作业参考解答4357 S' o, M" C9 I; H( I3 n
; `0 ]0 s; a/ B) K# Y
附录D 致青春,基础软件开发的中国故事 691
( y0 Y  L0 y8 H4 `
0 x3 o/ d* V5 a- @' p( l附录E Syser 操作入门 6952 b) y- p; h% x1 j9 p9 T, |
2 K2 v1 |7 ~4 l
1 f8 y) Y+ ]! Z0 Z; M3 R( \
想知道小甲鱼最近在做啥?请访问 -> 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: N) s( Z; a+ Q. `
什么编程语音写的?

; n  f* |  d- W6 \$ |0 A7 n什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 16:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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