鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

7 J+ c% ~4 r4 _9 j7 |% k1 I& N5 N8 C  v3 q9 v" [
书名:《恶意代码分析实战》4 Y1 C$ R- {3 o: u
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)* V9 ~& J0 \; O5 q
译者:诸葛建伟,姜辉,张光凯
) @( q/ Q9 Y) X$ z) U出版社:电子工业出版社
2 t3 q$ f; N3 g出版年:2014年4月1日(第1版)
$ \  d8 N" H, X) T6 F& H% E定价:128.00元
. G4 w3 Y  z+ g; k/ ~* X装帧:平装
7 i6 ?: r- ]* {/ Q6 tISBN:9787121224683
& y5 D3 D9 P# w
# `: j; S9 f2 e' e. _购买链接:
  ?+ C$ p$ X) i0 S9 B. Y# E
8 q$ f; H7 ^8 Y) Y
; N2 D+ t! S1 V7 G+ M7 [( E
亚马逊 -> 传送门
3 {; N8 H* j8 _: Q& a
; c1 x( G8 t5 w当当网 -> 传送门
$ G7 ^: N8 `+ r7 D! T
. v. N9 ^' t8 Y( ^9 H) x% m: m京东 -> 传送门
* s# q1 D7 N  x4 K1 [. U* `2 F" ~; ~0 }0 r
天猫 -> 传送门5 H4 q$ K3 H6 E3 t

" r+ O# R( ]2 k9 ?7 g' ?, W6 w& Q( a% |5 n$ B5 A- a! K- Q4 E' o
内容简介:
5 ^& x& l! a+ Q2 i4 u- o0 w3 l0 `& d+ g9 y- m  c

. L" r0 z7 t5 V6 y& S6 c
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
) y2 A. U6 X* U+ p0 h/ F! [$ Z1 P1 s
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
0 f5 M, N2 E. w) y* _. ]" @
+ Q. [$ D  o; t- g' b- k针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
" x; N$ c4 L/ T$ x针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
# Q; p- o: o7 o8 r" `4 f1 U7 @
$ x* [8 i4 N  Y( B# m5 A/ z目录:
7 c. v/ y; Y; R$ {; g; I9 s2 p
2 O7 v: }8 k- y6 I% B. O% d, D; w
1 g0 |# y7 E1 W$ D, s: V
第0章 恶意代码分析技术入门1
! e/ y9 o, ^! D# G4 b5 w# ~5 H5 N- x
0 L6 |* Z( r4 Q  x0.1 恶意代码分析目标1
6 W3 }; n& L0 l0 B1 \0.2 恶意代码分析技术2
, ?4 f* i' y- g/ U& x2 y0.2.1 静态分析基础技术2* a) A- O* [  O, L" T" X
0.2.2 动态分析基础技术25 l0 l7 Y9 D- G$ w
0.2.3 静态分析高级技术20 U5 U5 Q; M! a. q% z6 u
0.2.4 动态分析高级技术2
8 i" S' C6 }: m8 u0 T0.3 恶意代码类型3. K! ~& k) @1 b
0.4 恶意代码分析通用规则4, C# @) r  G6 E2 H3 g  d

, T; D7 b4 M7 Y* q- j
1 k, O4 {, }$ E3 C( Q第 1 篇 静态分析
6 g7 s0 j; ~, ]) N+ k
, `  S. G# \$ a* g, e第1章 静态分析基础技术 6
0 i3 t/ f3 ~; N7 w7 i1 K1 b
- l. ~! }2 u+ U0 I, }9 O
1.1 反病毒引擎扫描:实用的第一步6/ F% P8 C9 v. r" A5 }
1.2 哈希值:恶意代码的指纹74 M) F# q8 r$ r& i3 i3 O
1.3 查找字符串7
- N& _1 Y' D8 z7 a. y1.4 加壳与混淆恶意代码9# c0 s7 v, x6 p  v3 _) `
1.4.1 文件加壳10
' S. K8 W) ]. N1.4.2 使用PEiD 检测加壳10# F7 x7 F  D2 o. \: u5 ?
1.5 PE 文件格式11- a1 u; i8 ^8 h6 d* [- t: @
1.6 链接库与函数12
, J0 i7 m$ j* N, G( ^1.6.1 静态链接、运行时链接与动态链接12# U, J6 h$ ^( C, z3 S
1.6.2 使用Dependency Walker 工具探索动态链接函数13# @7 ]" X2 A( i- S# l
1.6.3 导入函数14
! n( q' I) d; J( J; O1.6.4 导出函数15
4 F/ Z1 Y: H# ~. i3 a1.7 静态分析技术实践15
" @8 x( Q. x1 K! f1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
2 l. q; O% X! t) h. n4 F$ _1.7.2 PackedProgram.exe:穷途末路188 Z! [* `3 E# C/ ~3 a
1.8 PE 文件头与分节189 u' `! S) ]; Y6 N* o: D/ s' h
1.8.1 使用PEview 来分析PE 文件19) X2 b, w3 A' U& i% C
1.8.2 使用Resource Hacker 工具来查看资源节22
  w, f% u4 J9 S0 U- g1.8.3 使用其他的PE 文件工具232 V2 B3 ~% N, `* c
1.8.4 PE 文件头概述230 p; R7 z3 F2 e3 i9 [2 L0 u2 ^
1.9 小结24# }1 X' h$ ~& C; \: \) i/ n$ E
1.10 实验244 ], P7 D# G2 P. P! z& a5 {4 w
. `+ s7 Y, v' T) w. b# ?/ A4 E2 z
第2章 在虚拟机中分析恶意代码 27
3 Q% \, t& s( o& ?- x& U
1 E" q" `0 s. M/ [" H& D2 j2.1 虚拟机的结构27! A: @+ G1 c2 U6 m% B1 t
2.2 创建恶意代码分析机28
  w5 A9 W4 O2 F/ m2.2.1 配置VMware29
) Q9 @) v2 w7 `# x8 V2.2.2 断开网络30  }8 |% ^& f: H" }( w; t1 [8 D$ s# E
2.2.3 创建主机模式网络304 @9 d8 p% s  F. \8 j1 N
2.2.4 使用多个虚拟机309 F& O) m9 u4 i
2.3 使用恶意代码分析机31: L7 q: H3 B# C- i
2.3.1 让恶意代码连接互联网31
  `6 Q2 ]' ~) h: |' T' x: q2.3.2 连接和断开外围设备32
% q7 w! q6 E! Q9 Y3 B) V2.3.3 拍摄快照326 F  C1 o+ Q) E+ ]) I# Q# p' {
2.3.4 从虚拟机传输文件33
$ }* x, m  j* r! R: c2.4 使用VMware 进行恶意代码分析的风险348 g+ N5 Q! }- e' `
2.5 记录/重放:重复计算机运行轨迹34+ F" W: u# |" N, i6 t
2.6 小结35
9 I) r# Y1 E% J( p+ N# x5 g9 w) ?( T" c
第3章 动态分析基础技术 36

% Z# a( ]8 c1 h* _( ?0 `) ]/ |" {, t' }
3.1 沙箱:简便但粗糙的方法36" T8 K* P) ], [) N$ Y
3.1.1 使用恶意代码沙箱36
" `& b0 x, T7 [* K0 c  o3.1.2 沙箱的缺点37: h, S3 a* D; R# `0 C+ N6 i
3.2 运行恶意代码38& c" j5 N6 M; x
3.3 进程监视器39
5 s2 o) q4 v' M5 t' |3.3.1 进程监视器的显示40
2 k1 G: G6 R- t" H9 x( c* M3.3.2 进程监视器中的过滤41: e# J; w8 E4 C) y  n" z
3.4 使用进程浏览器(Process Explorer)来查看进程43
* y8 y4 E: F/ X3.4.1 进程浏览器的显示43
; p' I% ^$ ~+ h, {+ v3.4.2 使用验证选项445 W6 }( P; ^1 }) `* W! Q- Y2 Q
3.4.3 比较字符串455 e/ j  A3 C+ Q# F0 z: H& s- u
3.4.4 使用依赖遍历器(Dependency Walker)45
. ~, T/ {; C3 R0 h% k% X  V/ u3.4.5 分析恶意文档466 [: v, V1 f2 i% g6 Y
3.5 使用Regshot 来比较注册表快照46
/ `# q" _( ^, l0 W3.6 模拟网络47
( ?9 A, b4 l1 |  s5 ?- j# Q5 a5 J3.6.1 使用ApateDNS47- d% z1 X3 {% g; P8 e
3.6.2 使用Netcat 进行监视488 W9 k* O0 D2 f. C' O
3.7 使用Wireshark 进行数据包监听49! i! f7 U0 M. G
3.8 使用INetSim513 Q9 D" p8 H' ?; T
3.9 基础动态分析工具实践52, k, x( t1 g7 c) I& O( O6 A
3.10 小结55
9 _4 b$ |/ d' f0 e3 @4 Y, Y2 @+ W4 E: S3.11 实验56
% S8 X2 v+ Q% `1 h- r, d( F' e
4 B5 H7 J0 X2 O# B  B$ z  x9 |
% A0 |+ f4 C3 S+ ^- b第 2 篇 静态分析高级技术篇
& _) n. o- \+ B7 A/ h# x! `  ?% k6 O# [$ v/ S4 u) Y
第4章 x86 反汇编速成班 60& s) i3 _4 O' M; o7 M+ S# E5 p
- m" ]) y! i8 y1 z2 `$ t
4.1 抽象层次60
) J) |9 M. g6 N, n/ `, {+ h4.2 逆向工程62
# f. W& T) P/ I. g+ g% P, W4.3 x86 体系结构620 {! [% t4 e- o
4.3.1 内存63
- G5 U- J0 l- @" h& s, m4.3.2 指令644 D8 {- l! N! p/ Z
4.3.3 操作码和字节序644 @( N6 q& [* P) f- Q
4.3.4 操作数65
/ r, {' f2 }) f) x6 y4.3.5 寄存器65  a4 h2 z! T" k/ x. u
4.3.6 简单指令67
2 S! V7 t2 m6 i5 H  p6 q4.3.7 栈70
& G& H( _9 h0 i# T' `4.3.8 条件指令73
! ?. e6 l- d3 i0 b& G# l& `4.3.9 分支指令73
: r0 R5 b3 u2 R/ v) u. U4.3.10 重复指令74
! p# }3 L  t; ]3 h4.3.11 C 语言主函数和偏移76
( b" D2 w/ B3 L# v4.3.12 更多信息:Intel x86 Architecture Manual77
6 [/ M8 p$ l3 G' G% }& p: g9 u4.4 小结78, z' I' [) n: G4 M3 M" z
- Z# w. p* X: u9 |! b7 ?
第5章 IDA Pro 79
0 h2 U( [+ K7 `" K0 s% ~: Z: l
) g: F. v, O4 |- B; c. p7 V5.1 加载一个可执行文件797 s  v1 M/ o* y- k8 c# q( c# P8 A
5.2 IDA Pro 接口81: X5 C4 N- g! p; D8 J8 t4 Z
5.2.1 反汇编窗口模式81! u2 f8 g4 N! n4 f$ o( A
5.2.2 对分析有用的窗口83
5 C9 c. |, \- @. p5.2.3 返回到默认视图83
5 ?% w! q" @6 H6 A5.2.4 导航IDA Pro 83/ C1 v. A0 `0 u$ M' x
5.2.5 搜索85* y1 q4 C9 Q8 _# f& W- j
5.3 使用交叉引用863 j8 ^, D3 \( C2 ~
5.3.1 代码交叉引用87
7 f7 k8 F) v! }/ q: ]" ^0 T5.3.2 数据交叉引用884 X  r$ N, v7 D$ T
5.4 分析函数88$ D/ y9 I' Z8 i
5.5 使用图形选项89
1 R: i  g3 F  p" a8 X" K# O5.6 增强反汇编91
' [& V5 p5 J+ \+ F% C7 a5.6.1 重命名位置91
1 M/ {; g# y) G' X5.6.2 注释92
) D$ Z' q9 A3 H$ t& O7 L' `0 `5 `5.6.3 格式化操作数92
7 [# `" w* W3 x( i% H+ ^2 H5.6.4 使用命名的常量93$ ~+ F+ N- Y! r+ f! I! L' s
5.6.5 重新定义代码和数据94
+ A' O& X# n+ g# T* x5.7 用插件扩展IDA95
( R+ t* b* z: R" `9 n8 C5.7.1 使用IDC 脚本96% V' {" t( L5 d' `; i
5.7.2 使用IDAPython97; E8 E; j( x7 i( i- Q, i
5.7.3 使用商业插件97
# x; J! `, Z9 ~2 |! i5.8 小结98  Q, f7 I! b% C( }0 U. t6 e# M
5.9 实验984 U& _0 v6 J! V; [- H" B, G

. ]( E2 }( _, d- s! I第6章 识别汇编中的C代码结构 100

% m9 `0 ~! Q- ^* b4 `2 X7 \5 k+ e& i9 q8 y# l) }' ?7 x8 I
6.1 全局与局部变量101( o2 ^- \& T9 x8 }
6.2 反汇编算术操作102. E1 [, D3 V5 y  X7 n) Q( L- w
6.3 识别if 语句104
5 I  t" B# ?$ a5 v  W  C+ G6.3.1 用IDA Pro 图形化分析函数105
0 k/ ?6 s" J' D) f& t6.3.2 识别嵌套的if 语句106
. U2 l- B0 S  `+ Z6.4 识别循环107& Q' I4 F1 S$ l/ [+ ?
6.4.1 找到for 循环107$ O& K/ D6 @/ Z8 {
6.4.2 找到while 循环109
8 H0 ^8 Z: `5 {! q6.5 理解函数调用约定110
2 n3 x* Y7 o% ?: `  H- j6.5.1 cdecl110
0 \- g) x* c( Y2 k) h; }# N) x/ g) o6.5.2 stdcall 1111 z  c# W# z9 h" y6 b5 z6 }
6.5.3 fastcall 111* O% ~' O: H6 _  A, _, o
6.5.4 压栈与移动 111
" M+ x# g& k* M( V+ l' w6.6 分析switch 语句112- j+ H, l$ {. W8 u
6.6.1 If 样式112+ g/ r+ Z$ n  S# }1 y
6.6.2 跳转表114
) M. _7 W, S* t7 F7 K6.7 反汇编数组118
6 G* z9 T6 Z( f+ ?6.8 识别结构体119
, ?! U/ e  y+ f1 x* v6.9 分析链表遍历121
( i+ S8 D! [; O0 h! c- C$ I. v6.10 小结123
; S3 A  [" \/ b& I6.11 实验123
/ s$ _2 A0 |5 S( z! I9 ~4 V8 T: i; x8 w# b7 R' q: |
第7章 分析恶意Windows程序 126

' s7 Q, a% f: C6 }% [0 R. Y( S
4 A/ d7 }% k" \% d! ]  O/ F7.1 Windows API1269 s7 C5 s4 L6 |$ u+ v5 C2 f
7.1.1 类型和匈牙利表达法126  ~+ v7 L7 S# E8 A9 {7 Z# B( q
7.1.2 句柄127
* ?0 p: g. t% p1 G6 u; R3 Q! F' `7.1.3 文件系统函数1273 f4 I' v$ Y; g  s& j) }3 ?) V4 ?. c5 w$ R
7.1.4 特殊文件1288 `- R% i5 M* Z$ M6 P  Z6 Y- g1 [
7.2 Windows 注册表129
" O, V( ~$ x! S; h# _; O7.2.1 注册表根键130
4 b! V  h8 X  o/ Z1 T7.2.2 Regedit131/ {) F+ ^% D1 I$ ^
7.2.3 自启动程序1310 l6 J& D4 t3 G9 P
7.2.4 常用注册表函数131
4 A& k. S! ^7 v: ~0 l1 O7.2.5 练习分析注册表操作代码132& q- W( z! R& k
7.2.6 使用.reg 文件的注册表脚本133* ], N4 @# q& @+ T4 M7 u/ n
7.3 网络API133' `  w0 [) _4 g- j
7.3.1 伯克利兼容套接字1340 d" z: ]; K) Q- ?5 W
7.3.2 网络的服务器和客户端134
( \0 X6 y4 |6 v( ]7 Z7.3.3 WinINet API 135& `* ?# D) n, x! I- K0 |! G
7.4 跟踪恶意代码的运行136
; h; \& q6 W2 C( y) m4 i7.4.1 DLL136
2 y: a$ R: l5 T1 W! E7.4.2 进程1371 J" f6 g3 O. ~: _. u
7.4.3 线程139* H3 l5 C% B8 w+ O% J# H( F
7.4.4 使用互斥量的进程间协作142
+ u% i; L2 N$ t6 I1 B) j7.4.5 服务143  Q4 x  r# Q# m' ^3 u3 b
7.4.6 组件对象模型1455 Y; Z/ x# }$ p9 W) U, \
7.4.7 异常:当事情出错时147
: n$ U' L$ h+ v$ S4 P7.5 内核与用户模式148
1 J* `% g/ [  f+ ^; q7.6 原生API149' e, v. w; r8 ?3 U3 F% W
7.7 小结151
$ c( g3 D  J7 Y9 _0 R' p' i7.8 实验1510 o2 }& t7 @# V, q0 u

8 K- x% K0 U2 A# c4 {/ p
" X9 v2 \1 q* F& x- h9 d第 3 篇 动态分析高级技术篇; {# H2 f; K# Z: R1 a' P/ _; h/ h( q  s

; m: B0 D/ w8 ]+ Q第8章 动态调试 154
* E2 V  `, r9 S8 d+ P. ]/ V/ Z) v
; `8 k+ U# z" C5 ]3 n" k8 |
8.1 源代码级与汇编级的调试器154
0 Z! X( ^' {$ l) Y$ h8.2 内核模式与用户模式调试155
) |0 H$ s7 Y9 g7 v+ v2 C8.3 使用调试器1553 A2 C& U- v) G+ i9 |; S1 G
8.3.1 单步调试155( u8 T; v- J4 l7 P- J# Q4 x
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1561 r2 n' k2 i4 O
8.3.3 用断点暂停执行1577 M' Q5 k. {% q% D# X% X
8.4 异常161
! Q7 C! ?( @& p$ _- f! C8.4.1 首次和二次异常处理162
$ ~8 i- g% M- b5 B0 P& i8.4.2 常见异常1623 d% b( K% r/ Q8 h# U
8.5 使用调试器修改可执行文件163
& o" l) c% r" R2 c# O1 a8.6 修改可执行程序的实践163
) A1 k( G) B3 a# M; y' S* D8.7 小结164
/ E3 m; V" T3 m* M
9 s- Z3 i! a; d' m第9 章 OllyDbg 165

* Y, R& ~7 z) Y2 _1 A; `4 b: m' W+ R6 G7 v# V* h+ ^1 q" s8 G
9.1 加载恶意代码165  H) t7 s6 U' |
9.1.1 打开一个可执行文件165! v: j0 U+ l' `. f- V
9.1.2 附加调试器到一个运行程序166
6 Y9 `, u1 c+ O# h9.2 OllyDbg 的接口167; }( z' B& `3 d* C# Y3 S
9.3 内存映射168% K% Z( b/ i) X2 _9 f* C
9.3.1 基地址重定位169
. y& W/ M4 ~, S4 }9.4 查看线程和堆栈170: j. q3 D% e" T
9.5 执行代码171
. a" h- l% h* z! J/ x# E4 N# u) j# b9.6 断点172
$ p  g0 o7 X/ j5 u0 ]: i9.6.1 软件断点173' b; C2 c2 q* j" l* n( g. I. d" s
9.6.2 条件断点1744 x& c4 {# m2 M9 J, n: c0 Y
9.6.3 硬件断点175
  H. Y# D6 i2 L$ a5 `9.6.4 内存断点175; N5 A5 m6 C) A3 Z% L  I
9.7 加载DLL176' b( k, s. r% _1 b9 B
9.8 跟踪177
1 c+ E8 k3 h2 ^( v- F9 |9.8.1 标准回溯跟踪177
# j/ g6 y- b( |( [9.8.2 堆栈调用跟踪178
% M" _) @( w8 a$ V0 c) A2 P& H9.8.3 运行跟踪178
  W3 |2 L- L, P. h# |! w4 t4 ~9.8.4 跟踪Poison Ivy178' {/ x/ {+ `& Q6 s- g* `5 @
9.9 异常处理179
* I# b: }5 A3 b0 ^( q# n  t9.10 修补180
. b8 h3 h% ]4 _8 \" D9.11 分析shellcode181
1 H6 U/ b& \  ?& a; l; L; y9.12 协助功能1820 F' ~" u0 c9 I# z1 t) j
9.13 插件182
& P0 `* g9 h% ?% v8 A& X3 n9.13.1 OllyDump183
5 B5 z8 @! P! v  S- m6 p9.13.2 调试器隐藏插件183
+ q% X  I: a1 V' d. x% E0 ?& ?( f9.13.3 命令行1844 I6 H; A9 ~0 C( {
9.13.4 书签185
# u% d1 H) h& ?0 H9.14 脚本调试185
. K1 {4 O& I$ l6 ?9.15 小结186
  }  a& Y- d) Y# N9.16 实验187
, a+ K, J1 V  \& @5 [, m- C2 n9 K% i  G
第10章 使用WinDbg 调试内核 189
& E0 L6 U# o% P& k0 Y# c; o" R. B! e5 W! [2 Y
10.1 驱动与内核代码189. Z7 E; c8 C: D2 L& ]. I* a4 o
10.2 安装内核调试191
( A6 C: j2 m: G! f# U10.3 使用WinDbg1932 p. @9 L, D) {( L
10.3.1 从内存中读取194
" X  R/ I7 T. f" Y; L0 k# M' @6 U10.3.2 使用算术操作符194
& C2 H) ?6 w; N3 Y. l, C10.3.3 设置断点1941 f  P) h) s5 k
10.3.4 列举模块195; X2 i# ]! [+ {0 n
10.4 微软符号表195) ]6 Q" a) h! L% j+ ]% u) \, A
10.4.1 搜索符号195! {3 w+ I2 N+ u0 Q2 ?
10.4.2 查看结构信息196
9 }8 h+ X! Y' }( T8 E7 t9 z$ A4 N10.4.3 配置Windows 符号表1988 L3 r0 Z! x8 K9 i9 |1 [/ }
10.5 内核调试实践1982 }% r2 x% h( ^
10.5.1 用户空间的代码198
4 }* k: h! s$ {4 A10.5.2 内核模式的代码200
! w  T! E2 ^( O) b2 u! W) L7 I9 m10.5.3 查找驱动对象2038 D- o  ^) j9 x1 J. q9 Y+ T) a
10.6 Rootkit204
3 x3 v" W3 X. m  H, C8 ~6 V" o10.6.1 Rootkit 分析实践205" A- W; j& ?( Y3 D: A6 f* U: r
10.6.2 中断208
6 U  {5 B; o9 I1 [  }) N7 k10.7 加载驱动2097 V: s) e+ g0 Q" N/ H
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209! |1 t0 i% l; f! d) S3 j" F" y
10.9 小结210& Z- `( s/ c# x" X' j/ y6 `+ R
10.10 实验210* Z! ]8 K3 }' y, z) P
% h3 x2 X. ~, W" C+ ]6 V+ e

8 t- U& G" ~* m! D7 U& L% k) o第 4 篇 恶意代码功能篇# M+ v) c# m' p& ^  K5 {7 J; K
& S# C3 m& i& ?7 m) f/ r
第11章 恶意代码行为 214
/ `3 r# Q. {- _; B, b6 D9 Z3 {" A/ R& B- V: u: ~. L
11.1 下载器和启动器214) J& _* J5 I2 G/ F) S5 q
11.2 后门(backdoor)214
  R7 Q$ v/ `% ~1 l/ Q8 V' [11.2.1 反向shell215
) o2 i( J. l6 T' W; e* G4 ]- z; i+ b11.2.2 远程控制工具216
& x2 `4 \9 f" I7 o3 ]+ G11.2.3 僵尸网络216* r& g& ^5 C; T# K7 U1 J3 h& |; F; B7 I
11.2.4 远程控制工具与僵尸网络的比较217
/ t! f5 y$ p, x) r0 h/ ]0 V11.3 登录凭证窃密器217
+ a1 t$ R' F: B" Z/ ~# b/ O11.3.1 GINA 拦截2179 A6 T! j/ x( C; @8 V( S7 h0 p
11.3.2 口令哈希转储218
# S* ?8 L, a9 z! K: Y5 o0 }11.3.3 击键记录221
; m( G: N. K1 l" e2 o; q+ a" ~+ g11.4 存活机制223
7 R# a6 X8 D7 a7 e9 J6 C+ i/ h( P" \11.4.1 Windows 注册表223
! n' s- H/ R1 R1 T3 l2 T& d11.4.2 特洛伊木马化(Trojanized)系统二进制文件2259 d: y; l4 J8 W, b6 ~  ~8 V
11.4.3 DLL 加载顺序劫持227* L  `$ y6 ~' J( O" J
11.5 提权228" I* X+ d1 k+ x/ Z$ D2 \& U8 V
11.5.1 使用SeDebugPrivilege228* f& J% a9 w* F3 l
11.6 隐藏它的踪迹——用户态的Rootkit2298 y" j+ N) V1 J1 I3 `
11.6.1 IAT Hook 230, d* x6 s, {& B2 p
11.6.2 Inline Hook 231
; e+ M0 s! r( p9 p% @11.7 小结2322 V% q' x  S5 L
11.8 实验232- a* J. E3 P( |' E! x$ A

9 H* J! R$ K5 |0 V6 s# h  ~第12章 隐蔽的恶意代码启动 234
. e$ B1 p7 I! o- q5 L+ b$ W. K8 ^* l9 V1 K
12.1 启动器(Launcher)2344 S4 q! A& Q. G! o
12.2 进程注入234
9 |3 ]1 ?* F& s+ m6 d12.2.1 DLL 注入235
; c' A6 j* |8 H2 o9 ?4 A12.2.2 直接注入237
, X1 M' E: V& F$ P2 g: |' q12.3 进程替换238
9 \9 z3 _( h9 W, m12.4 钩子(Hook)注入240
5 Y" P0 s5 |0 x12.4.1 本地和远程钩子(Hook)240
3 p  a1 l8 @: E5 x- C7 N" K8 t12.4.2 使用钩子的击键记录器2414 J% O, I9 L# r7 c: G" q" u: U/ f
12.4.3 使用SetWindowsHookEx 241$ W$ Q0 i/ e. w/ w, u- P
12.4.4 目标线程241
, V/ d& J9 Y! I. r6 [+ s% Y- u7 l: o12.5 Detours 242+ l7 Q6 _' G8 ]( i/ S
12.6 APC 注入243
2 U) ?; m" h, C7 ~- w' Z12.6.1 用户模式下APC 注入244
4 k  @& E' p4 p) S- m) e8 l12.6.2 内核模式的APC 注入245
* T: E7 V; a7 C4 y- n12.7 小结2465 ]" K1 A8 |1 H# z5 U2 E
12.8 实验246, q; e' W' k2 w9 H

7 l' S8 P, q$ u: a: x第13章 数据加密 248
3 M4 P' n8 O* D' W8 f$ W
# d0 O! z+ E8 ^7 _+ ~13.1 分析加密算法的目的248
& U) N  }" I( F" R0 Y( \13.2 简单的加密算法248
3 ^' H. T2 {* W# o13.2.1 凯撒密码249
9 C. A' J/ G2 @; {! a( v" ]( G13.2.2 XOR249. L+ x" Q: ^; b  d4 G8 r
13.2.3 其他一些简单的加密策略254/ A2 O. ~' F0 s% e' I
13.2.4 Base642556 Q- \/ W9 J) U3 z" d6 P. d1 S! f* e! @
13.3 常见的加密算法258- j. W5 s+ _6 h- S* q
13.3.1 识别字符串和导入259
& }$ b4 A1 }9 Q' |. S+ s2 N13.3.2 查找加密常量259. k" @  N0 ~( _/ j) N7 S
13.3.3 查找高熵值内容2615 i, S+ D) r! Z& j" @
13.4 自定义加密262
3 r: q$ z3 `; y' J4 T13.4.1 识别自定义加密263( w- U7 I2 [" F* M( G
13.4.2 攻击者使用自定义加密的优势265
- h% ?0 i5 E- Q3 N& t9 A13.5 解密265
! @& T/ n4 t% V" A9 W6 r2 b13.5.1 自解密2658 l9 A/ G& o3 n" Y- h
13.5.2 手动执行解密函数266* p6 H: z0 z1 G! i: j+ h
13.5.3 使用通用的解密规范267
( e( P& C9 g* W9 L$ o2 m13.6 小结2701 C( U  z# w  H7 N' p' H
13.7 实验271* F" d0 V2 a$ [3 u- b4 y* e9 t- t
, _. G# V' s9 U' V1 T* P- r
第14章 恶意代码的网络特征273: X; f7 Q" R+ k
; b; e. Q# c' t; g
14.1 网络应对措施2734 b) X3 I$ i& A; c: t! z
14.1.1 在原始环境中观察恶意代码273- Z% w8 D8 Z1 M% i! B
14.1.2 恶意行为的痕迹274
. X- @4 b. j& h! S14.1.3 OPSEC=操作安全性2759 g2 V7 [# h& s! g) K+ Y  [) T9 E3 V! U
14.2 安全地调查在线攻击者2750 U' o1 j8 ~' N# @. Y- I
14.2.1 间接性策略275
- A' R. z% }4 \3 l& P) N14.2.2 获取IP 地址和域名信息276( e' K0 ~* g9 `' c
14.3 基于内容的网络应对措施278
& X: o0 A! o$ `% G& ^! Y, Q2 E14.3.1 使用Snort 进行入侵检测278
5 F0 U% n- U/ V9 \. I' |14.3.2 深入观察279
1 c- ]: n1 U" X& _7 ?9 \; A14.4 结合动态和静态分析技术282
+ k- e9 G  q2 p* R. t3 v( ^5 u6 I0 ]14.4.1 过度分析的危险283
+ s: K  u" O' ]" G* x14.4.2 在众目睽睽下隐藏283+ O; t3 ~  L- m: c/ a! P
14.4.3 理解周边代码286
- l3 `9 s  j. C: b1 O2 W0 m14.4.4 寻找网络操作代码287
2 k# S7 m5 e" \% D14.4.5 了解网络内容的来源288$ ]! |4 h2 Z! p* c8 I0 K
14.4.6 硬编码数据 vs. 临时数据289
8 t+ c! {/ J. T6 _, f, a( S( ]$ n14.4.7 确定和利用编码步骤289
* j1 L/ s! L) o. `' M0 V. a6 f14.4.8 创建特征2911 |# i* x9 i1 T
14.4.9 分析解析例程292
- j$ y% F* Q8 b# y1 V( o* z( n( X14.4.10 针对多个元素294
5 Q: v% d  d3 k14.5 了解攻击者的意图295
' {9 d/ \8 V! T- \7 \% M6 S14.6 小结296" G* w+ M: H; V0 {
14.7 实验296
% X) x+ `5 ~( b( c; _% |, w7 m
/ k# A7 F+ P+ S+ k! z3 J8 M, o$ y) Z# n1 X) F: e
第 5 篇 逆向工程
0 w" M. z! ~6 |
/ m5 v  |8 s. C4 v7 D# ^第15章 对抗反汇编 300  ]+ I1 k+ w2 ?; W1 \8 l
  }/ q+ m+ @2 {0 _$ B, K- S! U
15.1 何谓对抗反汇编技术300# x1 H; |( D# }( d  G- E) }# ^
15.2 挫败反汇编算法301
% }) E7 @7 x5 _. j; S3 P; b15.2.1 线性反汇编302* f. I) s1 p7 C: A' ?
15.2.2 面向代码流的反汇编303! q) r% N7 Z5 D/ r
15.3 对抗反汇编技术306% B0 y) }, o: l' |6 b" V0 \
15.3.1 相同目标的跳转指令306# F. K5 L4 N: z+ N
15.3.2 固定条件的跳转指令307
6 ]( ]* p  C! l/ V+ `15.3.3 无效的反汇编指令308
) [# f$ g9 b- C; H15.3.4 用IDA Pro 对指令进行NOP替换311
* X( d* Y9 A( D$ R15.4 混淆控制流图312/ F4 U# O! D# W
15.4.1 函数指针问题312
  K, I- B! g% L15.4.2 在IDA Pro 中添加代码的交叉引用3138 d9 T3 l4 S! s9 V1 B& O" g& k3 M# h
15.4.3 滥用返回指针313
3 y2 @( b& p" M; z' I15.4.4 滥用结构化异常处理3154 Y8 L/ f& o7 n7 R5 x
15.5 挫败栈帧分析317
4 W5 \' s4 y) I) ?' A15.6 小结320
& D7 z% h7 l- t/ L4 ?15.7 实验320
9 b8 [+ `# @4 Y: i8 L& |. c9 @% S; I& q. l* g
第16章 反调试技术322
7 g5 n& X" P) X
5 {5 h1 W/ E0 v* r+ i16.1 探测Windows 调试器322
. I+ C- l3 [( `16.1.1 使用Windows API322
# Y9 X7 T' ~4 ?! }16.1.2 手动检测数据结构324$ a4 q- W# {1 _& L4 ~( T4 ^
16.1.3 系统痕迹检测326
8 K4 N% t$ h3 H1 N' F/ a. o- q! Y16.2 识别调试器的行为327' e/ C4 O, `3 G3 O0 J5 _' U8 w' ]) q
16.2.1 INT 扫描327
' p0 K% f0 X7 s% U16.2.2 执行代码校验和检查328
6 J: A; a# ~( _4 F/ b- E- Z16.2.3 时钟检测328
' c/ N# t+ k9 Z( }" `. d% Q16.3 干扰调试器的功能330' L& ~3 D% n: \
16.3.1 使用TLS回调330
. {6 R1 U4 K8 J! X16.3.2 使用异常3323 D6 `" ?1 _0 l
16.3.3 插入中断3338 L# i' D. F: Y0 j
16.4 调试器漏洞334" Q- o. `0 h  G4 P- y: F0 F
16.4.1 PE 头漏洞334
3 K2 N4 P! D/ [8 W; L1 c3 f16.4.2 OutputDebugString漏洞336% x. O" q4 G: s" h; {8 [; x9 a
16.5 小结336# d' |5 M1 u4 h# f# Z
16.6 实验336
* n7 l3 H. X% a: Y. Q0 Z
  l- c9 H4 i5 B- J. I! x0 Y第17章 反虚拟机技术 338
& v+ Z$ k, h% ?2 O, U% m5 c; x  a% y, a, y- ]" k
17.1 VMware 痕迹3382 |7 W+ u* d3 o8 u; p  R
17.1.1 绕过VMware 痕迹的探测340( I% ?% A4 P1 }
17.1.2 探测内存痕迹3425 ?! l" D% ^9 u4 x2 v
17.2 查找漏洞指令342! x& z3 L. I( e3 M
17.2.1 使用Red Pill 反虚拟机技术343
, |% J/ ]+ h* B2 z: k& g17.2.2 使用No Pill 技术3441 U( c/ O6 @. ]9 {$ X; \
17.2.3 查询I/O 通信端口344) S5 t# f, x1 J* |/ @2 F/ e8 B
17.2.4 使用str 指令345
* T' f$ x6 d0 K: ^4 g- J+ v17.2.5 反虚拟机的x86 指令346
+ [- `6 u! I- q7 {1 L+ V17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
1 O$ d* {3 A4 E/ m17.2.7 使用ScoopyNG347# J$ P5 e. H6 n0 o& r2 W
17.3 调整设置3482 Q4 v' w' H/ u0 K8 u& \8 v
17.4 虚拟机逃逸349
! y, o9 \% y/ X; [: U2 w! v17.5 小结3492 m1 G9 S9 g- h5 [: N$ e
17.6 实验349( w- K- z1 N( |( d% |
% v8 n0 r1 k. y$ T* q
第18章 加壳与脱壳 352
5 h+ Z* G# X! ^' u3 E! `
+ _/ V& V3 A$ @7 Y8 T+ x- K% @18.1 剖析加壳352
' P% b; f! `- }18.1.1 脱壳存根3538 K' v( y$ m+ o' r. W8 j" B7 v
18.1.2 加载可执行文件353
7 O9 S$ ]+ e% b( t7 R; q18.1.3 解析导入函数表353
2 \/ U7 P: j8 N& ]6 J6 ~+ ?0 M# l18.1.4 尾部跳转354
7 U* [" [& _1 T* a  }" G18.1.5 图示脱壳过程354
& q" |3 h: j" w9 f18.2 识别加壳程序355
  j; T5 [. i: _4 \# Y( q18.2.1 加壳程序的标识355" ]$ u& M8 Y. i$ i& h+ \; b! M/ |
18.2.2 熵计算356  r, H' G# w2 ^* |. ^+ o. D, I8 j
18.3 脱壳选项356" v6 ~; n5 M# L2 r) u0 F4 A
18.4 自动脱壳356
1 g0 \: X8 q' @" a: R18.5 手动脱壳357
( j8 s" m8 i2 i) T+ q18.5.1 使用导入重构器重构导入表358* l, r+ r, L7 |* N
18.5.2 查找OEP359
3 l! p& n# z) c7 W/ M9 C( K% A9 z18.5.3 手动修复导入表363
# r: ~9 q; A8 B; r& }: {18.6 常见壳的技巧与窍门364
, B0 B9 {1 ]9 t! c3 P8 o18.6.1 UPX 364
* C3 t9 @3 U, H: v18.6.2 PECompact 365) _2 C! d2 z, I
18.6.3 ASPack365. W7 B2 \4 Y7 @, g- |
18.6.4 Petite 365
/ Q+ H3 G" z. m18.6.5 WinUpack 366
9 x- ~, ]/ s. L18.6.6 Themida367
, ?. ?! e( n! D# a4 A18.7 不完全脱壳情况下的分析368
% h. a) K/ y& X7 L4 I: s18.8 加壳DLL 368
# U4 \1 M7 o6 I& ^! W. r2 `18.9 小结369" G3 E$ R+ O; x- z
18.10 实验369
& D( ^3 }/ A  U; H' X( T6 k
. O$ P# g' V0 Z6 n8 a
0 i- l, C/ D) H第 6 篇 高级专题8 i1 ^/ _% m5 e$ b5 i+ x6 Z

4 H/ L& m2 g) m+ r第19章 shellcode 分析 372
5 p9 w, ]0 G1 s! T: ?- H( r8 }# u7 I" w, T8 j
19.1 加载shellcode 进行分析3726 H* k: Q* g* j+ l
19.2 位置无关代码373
, y9 N$ j0 x' j19.3 识别执行位置373' Q4 ~0 m  _3 K% p% D% ?
19.3.1 使用call/pop 指令374
( t  j/ A; W! t: h% _3 J. U9 R19.3.2 使用fnstenv 指令3768 s  X7 b7 @8 i* T3 L1 g
19.4 手动符号解析377
  Q' a: s$ v& y; e' ^19.4.1 在内存中找到kernel32.dll378! o3 w0 f3 t( o$ n8 W
19.4.2 解析PE 文件导出数据3806 X# g0 C& ?9 ]% Y* }* ~
19.4.3 使用散列过的导出符号名382
6 x' G7 A# M& S  ^2 F; K5 t; V19.5 一个完整的Hello World 例子383
2 |/ Z1 p" j, J. R, Q7 M19.6 shellcode 编码385
/ m: V0 o5 O0 B5 D2 s3 o; Y( I19.7 空指令雪橇387' G2 ]6 ^; }+ B2 S' j, F
19.8 找到shellcode387& Y- `4 j0 e, b5 m
19.9 小结3880 g% s" X2 ?  p
19.10 实验389
# x' V! ~) |6 w7 d; [' n$ E; F- E* H" ]
第20章 C++代码分析 391
# v8 t4 u" v! w
* |5 n3 R1 s8 G$ f+ n  v/ B8 A20.1 面向对象的编程语言3910 J% i( n1 k' H7 w
20.1.1 this 指针3926 |; \; S" d8 N; Y
20.1.2 重载与修饰3949 T$ G0 i- ~; T! l
20.1.3 继承(Inheritance)和函数重写(Overriding)395
* J9 h7 ~( Y' `4 V  g* E9 m$ @20.2 虚函数和非虚函数396
  _- f" C& y3 N  V' U7 A. B9 U% c20.2.1 虚函数表的使用398
2 o- p$ U) m& {: n$ y' c1 d& n9 Y20.2.2 识别虚函数表399
6 x1 Z# @3 h0 o20.3 创建和销毁对象400
! k  V. T/ c. ~# P  I- J- R8 z20.4 小结401
# D9 J7 k5 v  P8 a0 k+ Y1 U20.5 实验4017 C4 v/ R- W3 e. e% r* O& I$ x) ~

& I) p6 ?: _7 w7 t- L第21章 64 位恶意代码 403
* h2 y! O# M- ^, G
/ Z) w, m$ A% Z8 Z. t& J3 g21.1 为什么需要64 位恶意代码403* f/ L4 z. l9 n
21.2 x64 架构上的差别404
2 }# u* P" l2 @* P# y21.2.1 x64 调用约定和栈使用上的差别406
* ^% P1 n3 K' E, y. A. |' Y% A21.2.2 64 位异常处理408
1 S4 V% M& \" ^2 Z% g21.3 在Windows 64 位上的Windows 32 位408
$ Q7 m% s) g, i21.4 恶意代码功能上的64位提示409$ l6 i. ^6 {/ u; Z: q
21.5 小结410
' B3 T$ |  x' _6 ~1 ]21.6 实验410
# p& [; t7 c9 M1 E- Y2 }8 h- W9 b- i3 P1 _2 w
附录A 常见Windows 函数列表 412
7 ~$ |  M) i# G9 [8 h* Z- f9 L% ]4 H2 O0 }$ ?6 W
附录B 流行的恶意代码分析工具列表4249 v4 g6 R6 c* Z9 H- b9 V

' @) h. h* y4 o8 A2 S附录C 实验作业参考解答435( e- l6 Z5 @% M% S4 }: l$ M* [$ i0 r* v

* n. Y7 X- C5 j8 B. m* ^$ b$ u* w附录D 致青春,基础软件开发的中国故事 691- k' T+ L) m, g% M! u  V" {. z

* L( ]: |! e$ h附录E Syser 操作入门 695
: l( u3 a/ t' x$ m* S2 Y4 ^6 ?1 k  o
  O& }' t. Z) C9 G4 }
想知道小甲鱼最近在做啥?请访问 -> 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
. y) ^) A# T$ {- Y) D7 v什么编程语音写的?
4 O( `' A# K' {4 P
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-2 03:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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