鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

8 h5 X3 K7 A6 u* B" G- u4 Y1 ?% U7 |
书名:《恶意代码分析实战》7 v2 P4 D$ L. w
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)$ K& c3 Y9 d( g0 ~+ K0 P1 @
译者:诸葛建伟,姜辉,张光凯 ! e7 {3 n  i. \( o. O8 ~7 g
出版社:电子工业出版社' l/ `! \8 h/ y- G9 y/ h
出版年:2014年4月1日(第1版)% ^5 e' @, ?0 d
定价:128.00元
* y8 `  O" |0 C  s$ N装帧:平装
' o% Z8 ]6 p* [8 Q7 jISBN:97871212246836 U" B) M# C- t2 Z* r+ b/ [" K' r

9 y9 q/ V1 \! b: L6 n- P' ?5 l( a* ^( }购买链接:
2 P5 @1 ^8 ]+ ]2 t, _6 I. b% V( d, R! |
9 s# \! j0 D3 G3 w% V  Z" x
( R3 A+ ^1 Q( M
亚马逊 -> 传送门
5 m" x$ V  i# F; O/ z' P: Z5 S$ ^
当当网 -> 传送门
* O, M: F/ j5 q$ H+ h2 [( d* Z" i! ?, z/ H- V
京东 -> 传送门. J- a8 o3 |# v( L, O

  [2 K  c0 D, K* O) M3 K9 p天猫 -> 传送门+ w& u% R) ]6 w3 ^9 H! K# x( b' }0 l% @
- `' B) T6 a( }+ z2 `4 S. q5 Q
2 U  w: m# A9 a8 h9 L0 A: B# L  a
内容简介:
5 o  m9 c1 E8 C7 Z$ E2 x
0 o1 \6 ^% {- @% D! @% P  g4 y; j; C' @& }
( U7 F( b( ]4 `5 E+ P
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
& h5 d$ {8 P/ W# F* l! H. A3 B$ S( T% m6 Z
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。: ~* V3 ]% b3 g; l3 _; S& k

" K' ]! s$ h% J8 K# ?( |针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;$ {# H4 o8 }; i& c1 f
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。! [+ y( y# D" o  h% }! w

4 w, M. r* G; h+ W# P' l. [8 `目录:. K" }  O' n% `( _; {2 z% j% s

& y5 c& V! ?' H# W

, x. Q( Q8 k$ U" b, f! O' ], s/ k第0章 恶意代码分析技术入门1
: R  j9 {7 P/ N/ ~$ e& t2 C" p
4 U+ N6 D5 c! c% k, Z; u0.1 恶意代码分析目标1
3 i0 A6 _) `+ m* E0.2 恶意代码分析技术2/ c1 s2 X" l* F; W/ T1 B1 k
0.2.1 静态分析基础技术2
7 t0 X# N1 Q. q6 c0.2.2 动态分析基础技术2
% d+ ]: P3 M  q7 h* J0.2.3 静态分析高级技术2  i4 ?4 j- `- g. D5 u9 u1 \0 K+ x
0.2.4 动态分析高级技术22 O/ d7 H1 \' b- S1 [/ }
0.3 恶意代码类型3
7 ~0 f; z  a$ e7 d6 w8 H0.4 恶意代码分析通用规则4# Z* {3 ~+ w* ^8 u- `: o) Y. ?
+ o) T$ T2 _+ J6 |. G+ t3 Q$ r9 f: c
3 H' `1 l: L. g" f" v( ^
第 1 篇 静态分析
6 m* i4 I9 ?! a1 B8 u4 V2 {: D/ _0 C2 w$ N* L' c
第1章 静态分析基础技术 6
) S$ [# f( {" U3 a: M6 X; b
  \' }* E! b2 |( H
1.1 反病毒引擎扫描:实用的第一步6% b. n' i6 ~, T' `
1.2 哈希值:恶意代码的指纹7
) ^: ^. s# s* U% j  S8 n/ d1.3 查找字符串7
- B) ]; _3 z4 K/ Y! M1.4 加壳与混淆恶意代码9
6 \4 _2 F7 b, M8 e1.4.1 文件加壳10
9 ]3 w% \8 u5 c+ v1.4.2 使用PEiD 检测加壳103 @: @$ L- ]5 o. w* n, n# W
1.5 PE 文件格式11, `8 s2 p: [4 B% X  o
1.6 链接库与函数12
9 f* F( i9 n' y% _9 Y; A8 s; R1.6.1 静态链接、运行时链接与动态链接12
3 M. p5 a7 H- j8 g' p# l1.6.2 使用Dependency Walker 工具探索动态链接函数13% ^( Q& H5 {5 j9 I9 Y% t  E* b
1.6.3 导入函数140 u1 v$ T3 y  r& A: @4 ^
1.6.4 导出函数151 \/ D( N# \; Z, ^$ x
1.7 静态分析技术实践15
: e; L: z7 q+ ?; b" `1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
" U9 o( @% R! J/ p1.7.2 PackedProgram.exe:穷途末路18/ w3 V( j4 R/ B  P3 Y6 H
1.8 PE 文件头与分节188 l% e. _+ k( h
1.8.1 使用PEview 来分析PE 文件19
! s: {; B* h. Q# z1.8.2 使用Resource Hacker 工具来查看资源节229 X. _$ Z4 I9 `) P
1.8.3 使用其他的PE 文件工具232 I2 ^2 q! S+ K+ T! }4 Y$ |2 x, R
1.8.4 PE 文件头概述23$ s$ m5 ~& S- C. K" l
1.9 小结24
: \$ @8 M! t5 {0 T" |1.10 实验24
; i. t' U9 D# v& f/ A) x1 d, R) b* Y# G& {$ _0 |
第2章 在虚拟机中分析恶意代码 27, t2 x  K  t( D5 I+ c" ^
3 h( u( W( h4 ]9 r+ M+ Z. b
2.1 虚拟机的结构27! u% x2 \% Q- [( p
2.2 创建恶意代码分析机28
4 f% M* D: z# L) g1 M5 ~) s- \/ X' Z- j2.2.1 配置VMware29% `1 h2 Z5 b8 s
2.2.2 断开网络30
: C7 W6 v1 B1 C- Y# N2.2.3 创建主机模式网络30
. ]7 ]; O* q" g5 I2.2.4 使用多个虚拟机30$ `4 a( M$ C0 o
2.3 使用恶意代码分析机31  o/ g. `# b. A# i/ G# X* k
2.3.1 让恶意代码连接互联网31% a9 O0 |9 N( U' a' K8 a
2.3.2 连接和断开外围设备32
* @. K% c- Y6 O! ]2.3.3 拍摄快照32
: h/ w2 E* F* f( u1 b, b; T! N" R2.3.4 从虚拟机传输文件334 p& L9 K( N3 n  f# f( d! J/ E0 q
2.4 使用VMware 进行恶意代码分析的风险34
( _  j1 R- A4 d% E/ i2.5 记录/重放:重复计算机运行轨迹34
' D2 U# ~: ^1 n, n- f2 A2.6 小结35
$ E% Q6 O5 a2 i) `6 a. f" ~7 J7 _& `1 F
7 R. M3 ~; J( |6 w2 l第3章 动态分析基础技术 36

; q* |7 z8 P3 X: V8 F' n& g2 p0 O& p, b. e
3.1 沙箱:简便但粗糙的方法36
. e. C# T3 b$ K/ T1 k  n: a- k! N3.1.1 使用恶意代码沙箱36
+ s* X0 Q6 M! B3.1.2 沙箱的缺点37
6 X' O% R! |( t* }& y1 U- L3.2 运行恶意代码382 Q, h7 P0 W/ y3 S, o
3.3 进程监视器39  m2 `1 ]# V7 d
3.3.1 进程监视器的显示40
' a8 W4 J" w) Z" o5 v& Q* `3.3.2 进程监视器中的过滤41
% ?4 w9 c, C# J4 R: z3.4 使用进程浏览器(Process Explorer)来查看进程43& Z4 B" f. s3 A! c# r+ `
3.4.1 进程浏览器的显示43  ?* Q7 z! L' j' u" f" t
3.4.2 使用验证选项44
5 B% t# p& o. f: `+ `3.4.3 比较字符串45
( Y5 ]* Y) M3 M7 {; o1 ~) T, j3.4.4 使用依赖遍历器(Dependency Walker)45
/ e2 W3 N) I7 T) S! ^3.4.5 分析恶意文档46
& O- g0 G! X% [: |& d3.5 使用Regshot 来比较注册表快照46
7 z, k2 O/ L5 f3.6 模拟网络475 O0 M6 {! B' Y5 N' ^7 C' y
3.6.1 使用ApateDNS479 c. W$ g9 m1 M* s0 v
3.6.2 使用Netcat 进行监视48# U: ?, t! P$ D# y3 `! j
3.7 使用Wireshark 进行数据包监听494 c1 }7 ?3 J( k' ]* a
3.8 使用INetSim51
; n" c5 G2 _# X9 B: z3.9 基础动态分析工具实践52( E2 ?5 G8 I4 O0 Z; v  b0 ^
3.10 小结559 d( T9 B5 P6 g2 r
3.11 实验56$ H" f6 ~% K/ n2 K: b* [$ ]! T
( [; {6 _0 w9 Z, s' {
) w, h$ k  S& o+ J4 `# q
第 2 篇 静态分析高级技术篇& q+ V! m  J& v2 W8 ^

. s1 [/ I# r4 m/ F2 h第4章 x86 反汇编速成班 608 k" r& Z% k& X8 C, b* m
4 H/ \1 b& n6 q& O0 u+ J+ w
4.1 抽象层次60
- J! k5 |7 [: z* X& {* s: y4.2 逆向工程62! T- _7 f* _6 o4 a& d: Q
4.3 x86 体系结构62& r. e6 n! P/ a) I2 z* n6 x
4.3.1 内存63, S/ ?3 N4 t! m8 s8 }
4.3.2 指令64; c- f7 U5 O; Q8 [8 p$ m6 ?  B& `
4.3.3 操作码和字节序64
3 W, \, a( r$ a% j8 _, Y. A% e. k4 j4.3.4 操作数65* \5 S! ^( u) N% m( ^8 M9 V. m5 i
4.3.5 寄存器65/ e  k4 Y+ k, f7 W8 C
4.3.6 简单指令671 |( ^0 O8 Q, u  D9 x
4.3.7 栈70
( Z9 q" W8 R+ R( N0 s4.3.8 条件指令73
/ u+ n0 _0 B5 j- Y( P8 S4.3.9 分支指令73
- `- q# E# b! s  Z4.3.10 重复指令74
' J' R. D; {' `! r' }4.3.11 C 语言主函数和偏移76
# V: ?6 m# L7 _( k  @# |4.3.12 更多信息:Intel x86 Architecture Manual77
. W1 T& ~1 ^; }' Y# N4.4 小结78" u7 a  P1 j/ Z+ f1 O9 q: `* [) g, J, t

2 d% U+ N# R# Z; A, Q第5章 IDA Pro 796 G0 x* |  F! Z) ]" t. {8 p6 e

9 N! `" f9 p+ O$ `2 x5.1 加载一个可执行文件79+ ^% r' @! S. T4 L
5.2 IDA Pro 接口81
0 Z. v3 R+ q) Q5 a5.2.1 反汇编窗口模式811 [9 O# v" b  b  ]" k6 U4 Q; a( }
5.2.2 对分析有用的窗口83
/ n/ [3 x. Z3 i4 |0 e5.2.3 返回到默认视图83! _( [7 p3 |6 b4 m# R1 N5 P) E
5.2.4 导航IDA Pro 83
0 j* `8 ^1 m) g' c3 a5.2.5 搜索85
/ r8 {4 \& }; O/ E8 i- Z5.3 使用交叉引用861 \) w6 Q/ t0 E" O9 m2 b
5.3.1 代码交叉引用87
/ W& \. E% o- A& n1 B  z5.3.2 数据交叉引用88* E+ K' y0 ~/ ]& r+ ?* `& c
5.4 分析函数88* Z0 Y" w; x9 D4 r7 N
5.5 使用图形选项89
3 h3 j7 t/ j9 t, ?* u9 n  S6 I5.6 增强反汇编91
* O' F: C- h/ v: Z5.6.1 重命名位置913 \& E# {+ X) |1 u
5.6.2 注释92; R: h; ^* m! i2 C, j6 u% I
5.6.3 格式化操作数92
' V0 G5 q) A0 t. |9 h5.6.4 使用命名的常量93% u1 G/ I2 D  D% e
5.6.5 重新定义代码和数据94
. ]) x$ n/ ?. P! v5.7 用插件扩展IDA95% h" F5 Z% O7 ~, u9 K
5.7.1 使用IDC 脚本968 k" C4 ^3 p! k
5.7.2 使用IDAPython97) J% t# ^1 Y$ p  }$ g4 c2 N5 J; V
5.7.3 使用商业插件97! @6 T/ W, D4 C1 u
5.8 小结988 g$ T4 H" S+ N% f& @2 J
5.9 实验98
+ b9 G* C0 I2 a0 D
/ N/ Z( W+ d, p& X, ]0 S% D第6章 识别汇编中的C代码结构 100

& O$ x3 [0 k4 B2 Q
# p+ k0 o3 i$ C' }7 R6.1 全局与局部变量101
- n7 r: F$ v% x% a' i6.2 反汇编算术操作102! d; i! r( V# j9 R- E% ]- ^( @
6.3 识别if 语句104! t* U0 U3 r2 p+ m- ]0 q
6.3.1 用IDA Pro 图形化分析函数105
' x, T  A' p  `6.3.2 识别嵌套的if 语句1067 }4 @' ^9 i: x
6.4 识别循环107
, e( }9 o: |, x7 w$ U- e& D, K6.4.1 找到for 循环1072 y: G" o7 [! W0 }- a2 S, n
6.4.2 找到while 循环109
2 u! X  Z) y; K, n- h% [4 p# g6.5 理解函数调用约定1107 T# h( Y/ Q; [' k
6.5.1 cdecl1107 s! P+ p+ n2 n% I. u& _
6.5.2 stdcall 111  d- q' a1 I" S7 n+ W
6.5.3 fastcall 111
  w& f* ?' z8 f6.5.4 压栈与移动 111. g, I" a6 J( p' a3 g2 |
6.6 分析switch 语句112
; ~4 l% R, ^5 V, t6.6.1 If 样式1120 L6 Z8 @' x6 @7 p# `; p
6.6.2 跳转表114! q8 h/ t+ u7 A: ?: G/ i
6.7 反汇编数组118) o9 B1 T3 F' @7 h' h8 [
6.8 识别结构体119" k: N5 O5 q; Z- Z8 j) z
6.9 分析链表遍历1212 a  A" U3 s! O) S2 `9 q- W, j+ u
6.10 小结1239 x: }: E/ x( J6 V! H) v
6.11 实验123
- n4 ~0 d+ l' y
* u* Y. e+ W% Z% n第7章 分析恶意Windows程序 126
6 L9 K) {; E' K+ }

6 X" {- j& T/ ^, b* k& p' J' n  V7.1 Windows API126
, o2 e' g6 ^7 n7.1.1 类型和匈牙利表达法126% [: `7 ]) m' F) {+ `3 q
7.1.2 句柄127
8 `$ M# {9 F. t5 V9 G8 A. C6 w  v. }7.1.3 文件系统函数1271 H, Z$ C8 c5 i1 D+ Z
7.1.4 特殊文件128' ?/ ]( ~% Y: p; V' u
7.2 Windows 注册表1296 I1 _+ R0 c6 u. m
7.2.1 注册表根键130% u1 |' p0 f* k: N
7.2.2 Regedit131
" ?$ {- z" _. }7.2.3 自启动程序131' |2 L0 S3 y8 M% D
7.2.4 常用注册表函数131
. j/ ~! D( }2 x: s, n- }% ^, i& b7.2.5 练习分析注册表操作代码132
7 @# s; o) r: X7 @! t# w' ^3 ^7.2.6 使用.reg 文件的注册表脚本133
1 X0 }* c& G9 l* E7.3 网络API133
$ M( L0 C( F9 |5 ]. y  w- ?7.3.1 伯克利兼容套接字134
( `0 D0 B  h: f5 G  Y, l) ?7.3.2 网络的服务器和客户端134
& m5 W! X! d4 D0 e' m7.3.3 WinINet API 1356 \0 Q1 |; ]# u8 H. M4 F! O
7.4 跟踪恶意代码的运行136
! i+ E/ j0 {+ {5 V7.4.1 DLL1363 q  U. Y+ Y8 F1 O7 Q* ^1 F
7.4.2 进程137+ }, {9 h3 @* o$ i/ c
7.4.3 线程139
# A9 L4 Y! ?6 D$ |2 h1 i7.4.4 使用互斥量的进程间协作1429 y9 ~1 X2 J5 O7 p% ^6 E6 W
7.4.5 服务143
5 X/ g9 ^% \# F  l* d; m5 u7.4.6 组件对象模型145
6 H% e' K" ]4 f  _( D) N7.4.7 异常:当事情出错时1471 A9 O0 x' _/ G: d* T# G5 n
7.5 内核与用户模式148
1 q4 e" Y% e7 F7.6 原生API149
1 R4 Z- P9 E: A# d1 ~7.7 小结1511 F3 q0 ~  r9 o( x  t
7.8 实验151# B% d, z9 _' J8 ]9 S3 _
& ^; n7 O  }' O+ g6 L% P$ D
* S7 D6 R1 `" y2 T  u- y
第 3 篇 动态分析高级技术篇: Q8 C" k. ]' Y3 i
* q: u( g5 w1 b: \( ]
第8章 动态调试 154

( t$ V) C  l, a' C
& T9 W2 q7 s/ Y. C# s8.1 源代码级与汇编级的调试器154" x1 @* X( O/ {, F, W
8.2 内核模式与用户模式调试155& {4 d2 B; p0 a4 {7 j9 V; w
8.3 使用调试器155- D: {0 `* S9 Q/ b+ l+ y8 n" }1 z
8.3.1 单步调试1552 r- H! O6 E, Q. M3 ]" r
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156, U% R  ?( B( {( A" a: |! d
8.3.3 用断点暂停执行157+ k  k! H% H: J0 A8 A
8.4 异常1617 K; r4 t( V# p. S
8.4.1 首次和二次异常处理162, o5 H+ T7 H6 k3 n/ ~2 u' t% e; s8 z+ l: O
8.4.2 常见异常162* X7 P% o8 Z( @1 v) y0 b
8.5 使用调试器修改可执行文件163
  S0 u( g$ j2 Z2 g8.6 修改可执行程序的实践163
' S" b( J* U6 s  W" g8 Y8.7 小结164, `2 Y/ G0 z3 \3 ~, T4 G3 `' t
) l' Q+ |: X* O, T& P
第9 章 OllyDbg 165

% d4 s+ a6 {+ h) u" v' R9 g2 S& T( N  o8 Q8 C0 X
9.1 加载恶意代码1654 X) J; X5 L/ d" _
9.1.1 打开一个可执行文件165; |9 v/ b' P6 p0 A( M1 D0 J$ k' c: e
9.1.2 附加调试器到一个运行程序166
4 R% X) k" X$ W9.2 OllyDbg 的接口1676 L& I/ K) I. X
9.3 内存映射1684 U. M( ^$ Q$ s5 P! z# J) e
9.3.1 基地址重定位1691 t0 [; p" Z) @: N* v/ I
9.4 查看线程和堆栈170* Y8 R/ m- Z% g& \6 i
9.5 执行代码1719 M: K/ R$ r) P
9.6 断点172
0 M/ B3 {+ Z% ^8 U/ j  r9.6.1 软件断点1738 b! I  q4 n5 t2 q0 E
9.6.2 条件断点174- \3 V4 F" z/ w/ \; F" a
9.6.3 硬件断点175
! g# d5 u! E5 Q- e( @# O% [9.6.4 内存断点175
4 u& f5 f. P- @) P- r0 b/ Q; l, Q9.7 加载DLL176/ H7 ^" I" V/ Z
9.8 跟踪177  x; e8 v  ?: n6 a7 {* Q
9.8.1 标准回溯跟踪177
8 N; ^2 U& U- O: p7 b+ g' r9.8.2 堆栈调用跟踪1784 F/ |: I! E) {, ]+ ?. |
9.8.3 运行跟踪1785 W5 u" g' S. |4 r1 ~" j
9.8.4 跟踪Poison Ivy178
5 [4 X* o, r4 l0 z  a3 A9.9 异常处理179; |" A/ }0 _* j% w/ j
9.10 修补180/ ~, X* m, U$ E$ U
9.11 分析shellcode1815 u  T& A8 K; n+ P0 @) M8 l
9.12 协助功能1828 `! }. C( j* j* g  Z6 H2 {
9.13 插件182. }+ I" [0 O: k7 t" r
9.13.1 OllyDump183  X8 H9 p! k$ [% s
9.13.2 调试器隐藏插件183
! R# z- t1 T/ q7 I0 b& h" C) n2 p9.13.3 命令行184
! B0 L4 c/ L7 b( i5 Y8 J9.13.4 书签185; k$ _& ?8 m* o7 d! f
9.14 脚本调试185
3 s3 F  Y& d7 N9.15 小结1867 ]" {" ^8 T0 {$ g4 T5 b+ u/ C
9.16 实验187
, N/ E0 P$ G# `3 e/ m. O+ m6 S! C8 I
第10章 使用WinDbg 调试内核 189
% r! h9 \! f  G' O: B& H( d4 V' F0 l' C! l5 @3 Z# m
10.1 驱动与内核代码189
7 O8 }1 y. m3 `& _5 |2 Z10.2 安装内核调试191
& Z) j0 d' [8 O6 {10.3 使用WinDbg193
: R$ o- O! V* z3 w5 v" i10.3.1 从内存中读取194
- V4 l- s& |7 a: x  r2 y10.3.2 使用算术操作符194
& H* ?) ]5 v) r9 \! }  F, N10.3.3 设置断点194
2 M! Z7 m0 n7 c$ a* m, e$ O+ [10.3.4 列举模块195
* s. z" v3 K' e/ d( J) C10.4 微软符号表195
4 U$ u9 D2 s+ ]- `1 m/ m( k10.4.1 搜索符号195
2 Z9 N1 f: ^2 U; N10.4.2 查看结构信息196
  b. b2 k; c( v10.4.3 配置Windows 符号表198
3 }2 n$ u1 Q9 v5 }; d) a3 T: g3 l9 F5 |10.5 内核调试实践198% q4 f. \% I) I) Z: b# b
10.5.1 用户空间的代码198
, }' @6 e" x5 M! u0 J. X( X10.5.2 内核模式的代码200
* ~; _2 l8 ~0 `) R* E10.5.3 查找驱动对象203, n8 }+ W  N! t) W( L; {3 r
10.6 Rootkit204/ o% L  V& d3 J
10.6.1 Rootkit 分析实践2051 `8 [4 K. `: u
10.6.2 中断208
/ `% O; c& B$ p: {  b8 \( j10.7 加载驱动209$ |# e) S3 S% \& w/ _0 q
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
) m, q: D& O# [2 L1 w& C10.9 小结2103 r0 F4 I3 z  w3 O: k0 z7 Y8 ^
10.10 实验2104 ]4 R: u) x  q4 o8 F

1 |! f6 J! \/ Q) E2 R4 r
' b+ h: F0 x! ^. |/ x8 d第 4 篇 恶意代码功能篇- P6 f1 g/ o: a; K, {6 z( r

* c9 H% h8 ^8 L/ T3 S  l5 z第11章 恶意代码行为 214: f9 ~+ H; N; u1 g0 c/ B+ Z5 k, S& K

- s: M7 ]7 d- k, [5 A" v4 ^11.1 下载器和启动器214! ]* ~: q7 D1 c& y" f
11.2 后门(backdoor)214+ X3 B7 Q$ F/ A* p5 \5 t9 P# g
11.2.1 反向shell2159 E/ c5 B/ `/ A7 L# X0 v, W, f
11.2.2 远程控制工具216
2 _, W- j+ ^, q# d1 B# b& \11.2.3 僵尸网络216
0 X4 {1 x" [5 P5 n6 _11.2.4 远程控制工具与僵尸网络的比较217
' L9 c5 ~7 Y, u& o; \& ^11.3 登录凭证窃密器217
; m3 N, p9 U8 c* r11.3.1 GINA 拦截217
( [! u9 d+ T' {11.3.2 口令哈希转储218# I+ I+ }# ]4 N2 C0 o6 L
11.3.3 击键记录221$ B1 p$ f  R: `/ t
11.4 存活机制223
. N( }' I) D$ v11.4.1 Windows 注册表2230 x, T$ }% Z2 }3 @
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
4 p  k1 v% Y) o. ^) E. ]11.4.3 DLL 加载顺序劫持227! D3 s: Q  r$ L  G; p0 Q
11.5 提权228
( O' \3 ]2 P& i. U11.5.1 使用SeDebugPrivilege228* E* q% E8 _+ V7 ~4 @" [
11.6 隐藏它的踪迹——用户态的Rootkit2296 |; J% w$ @0 [0 e& Y- A
11.6.1 IAT Hook 230$ h$ w8 |7 s% c' k( n$ G
11.6.2 Inline Hook 231% G4 `& u% ]; w) K0 Z
11.7 小结232
& m* Z$ X& i4 w8 u. T" A11.8 实验232* J$ P' T; L; Y) P# u  ?4 u% _0 A. s

# c  t  a8 x( n2 h% I第12章 隐蔽的恶意代码启动 234
9 ^2 h* |  b+ ], r3 @, ]" ?- E, V
12.1 启动器(Launcher)234( X9 E8 p; \, C3 q+ ?
12.2 进程注入234" }5 P8 `4 M% ]0 w
12.2.1 DLL 注入235
0 ]+ S; [. i0 t; S1 O9 {12.2.2 直接注入237
) ^5 U+ S5 T' e7 ^2 G! b12.3 进程替换238. `/ K, f  i+ \9 W) d- ~( W
12.4 钩子(Hook)注入240
! k, a' k; A2 C5 \12.4.1 本地和远程钩子(Hook)240
: b$ T  I$ R" Z7 X) [8 m12.4.2 使用钩子的击键记录器241
3 ?# l/ B0 B8 X# E, Z! Z! k8 ~+ k12.4.3 使用SetWindowsHookEx 241
/ q4 k8 O1 i0 U; Z12.4.4 目标线程2411 d- Z% m5 L* {" N; j
12.5 Detours 242
1 d7 R+ ]/ {& s) [" Q! E% O- H12.6 APC 注入2434 _0 s! B3 E1 g
12.6.1 用户模式下APC 注入2445 b3 D4 ~0 O6 r5 n
12.6.2 内核模式的APC 注入245
# o0 l5 J' h0 o/ x" V9 e- ?12.7 小结2461 E5 b0 C: y' w. d$ g: ]
12.8 实验246
' A& P3 S, H# ]
; C" D- z* R* O- y第13章 数据加密 248& R8 y& y  @0 w" \
- p  J0 b; ]# I: j
13.1 分析加密算法的目的248. u6 o1 ~: h" `6 n0 Y
13.2 简单的加密算法248
4 b+ D: W  u( S% k13.2.1 凯撒密码249
* a, G, e$ t% S$ l13.2.2 XOR249
; [" W2 o( f: Q9 r+ Z13.2.3 其他一些简单的加密策略254- `) S2 s" @+ x' X+ d, I9 B
13.2.4 Base64255
$ n, h6 [# J% }8 ^; Y: ?6 l13.3 常见的加密算法258
% D) P( S  S% _13.3.1 识别字符串和导入259
9 u1 a. O9 E7 J/ X$ ^* h# B13.3.2 查找加密常量259' c8 ]/ _! P: H6 D5 i
13.3.3 查找高熵值内容261
5 }7 O; s. N1 t$ u+ }13.4 自定义加密262
2 ^) S- v2 ^" D# i13.4.1 识别自定义加密263' e8 q$ P- x/ k. {2 g/ D6 E- Y4 J
13.4.2 攻击者使用自定义加密的优势2658 A: }- ]0 Q3 r9 a
13.5 解密265
( S  J8 F' n0 i13.5.1 自解密265
1 s. K& e/ G1 g% T! v13.5.2 手动执行解密函数266
4 b( B3 X! ^  |, d- R13.5.3 使用通用的解密规范267
2 ~, g. o  B  f9 p9 t13.6 小结270
. f+ O7 l) o! l0 Q6 ?, Y0 A13.7 实验271
) z4 n, a: ^: d1 ^2 M7 |" }
; x' V* x9 R, s7 S# y/ p5 m第14章 恶意代码的网络特征273
  g( l' Q- x! }, T2 B# w2 e
( J0 d3 Z+ _$ d7 m14.1 网络应对措施273
1 l0 F( A; D/ R- U5 R14.1.1 在原始环境中观察恶意代码273
) b% P3 @& K2 F$ Y1 I/ ]7 K9 t14.1.2 恶意行为的痕迹274
" q0 w, X" D: H8 Y9 @14.1.3 OPSEC=操作安全性275
3 ?: q) W' o/ |5 h; P3 Q* i14.2 安全地调查在线攻击者2757 [; O7 G$ S1 G! I# w/ [8 f
14.2.1 间接性策略2755 I5 `7 O* ^* m# g
14.2.2 获取IP 地址和域名信息276
0 I) U4 A, z: R7 Y6 |- u2 Y14.3 基于内容的网络应对措施278
! y' c, I- D* i14.3.1 使用Snort 进行入侵检测278
% K+ h+ m6 G9 C; _5 E0 ~14.3.2 深入观察279
$ r8 G8 E4 k4 _7 R, G* Y14.4 结合动态和静态分析技术282. x0 ~; @: u$ v+ c4 A: p0 a* \& [
14.4.1 过度分析的危险283. m6 F! B! o8 _4 `3 g
14.4.2 在众目睽睽下隐藏283
9 F0 m, P( ]6 [& l14.4.3 理解周边代码286
5 [- ~: p/ _8 @; Q8 V2 A14.4.4 寻找网络操作代码287, T& l5 M, l! H5 R( j% u$ e' Y: @
14.4.5 了解网络内容的来源288
7 X0 f2 A; K* V6 q  A14.4.6 硬编码数据 vs. 临时数据289
  W5 @4 ~( k6 K0 v% O14.4.7 确定和利用编码步骤289
+ v  O2 r1 T9 k14.4.8 创建特征291
: S$ I- `2 M7 H14.4.9 分析解析例程292# q& L6 V; t- `" D
14.4.10 针对多个元素294
% c* ~2 g0 h! X+ |  T/ _/ ]14.5 了解攻击者的意图295
. F' \8 A5 B6 n1 G  h% B: Q/ F' L14.6 小结296! u8 q8 v0 Z9 _# B
14.7 实验296* O1 j4 @6 ]+ ^6 `) G2 \! g
  T/ y' @% w, a, A  H* n

2 L# v- s# }) d8 s8 h1 `7 d第 5 篇 逆向工程" b1 {7 D+ M* Q, k! h6 q% q
: ]5 R5 M; d7 P* E0 U
第15章 对抗反汇编 300
' B* g: w7 B" E2 T
' E$ m! h! |& C2 P+ |15.1 何谓对抗反汇编技术300
  C) R* `9 K4 o* e15.2 挫败反汇编算法301* ^% M( ?$ [* k" d: A8 N/ ^
15.2.1 线性反汇编302
$ n; ^7 f0 O& m2 c; P( }: i15.2.2 面向代码流的反汇编303
6 i7 P8 B2 e- X5 J0 w15.3 对抗反汇编技术306+ B1 R) E0 {; M9 x% B
15.3.1 相同目标的跳转指令306
/ s2 l# W2 f! t15.3.2 固定条件的跳转指令307. p# k) m1 J% P& I
15.3.3 无效的反汇编指令3086 c0 c0 \* S8 f/ x0 o+ F" ~
15.3.4 用IDA Pro 对指令进行NOP替换3117 z1 s: }/ ]0 v
15.4 混淆控制流图3122 I. G: {3 X- U
15.4.1 函数指针问题312' s; S7 n0 O0 R0 W5 r3 D
15.4.2 在IDA Pro 中添加代码的交叉引用3132 k5 R2 g( _6 J& \& `6 F- P% ?
15.4.3 滥用返回指针3135 g+ G# P. {. H' Y' v3 a
15.4.4 滥用结构化异常处理315
/ z& C; ^  H+ d9 p15.5 挫败栈帧分析317
3 T: t1 Q3 S- A" p$ i5 `8 K15.6 小结320- u. t: g0 o' ]
15.7 实验320  \: @. e2 ~) j8 [7 f4 l/ _) H3 j; Z

) B- I& G8 y( Y. w8 ~第16章 反调试技术322
0 T. ^, k2 ~. {3 E5 S) y: y( ^) Y! F7 Y$ z4 w0 x7 n
16.1 探测Windows 调试器322
4 r7 r. {3 O6 x! U16.1.1 使用Windows API322
, B6 F. N3 N& m9 s6 ~) S16.1.2 手动检测数据结构324
( C, u. m* e) K3 K( [0 c16.1.3 系统痕迹检测326
, W3 W6 G2 [5 g) w16.2 识别调试器的行为327
; k, c" |6 w2 k: ]! c! _- O16.2.1 INT 扫描327
6 Z' Y; i, q  p' |3 R& _/ c0 _16.2.2 执行代码校验和检查328
* ?. b0 u! m# [" b! j16.2.3 时钟检测328( L; C- k; h4 R5 o' K
16.3 干扰调试器的功能330& K% N+ d+ N& M8 B, p
16.3.1 使用TLS回调330
: k5 P7 T1 X! c% `6 y$ ?% `16.3.2 使用异常332
+ x2 Y9 }8 I9 G9 m" ^: G' t16.3.3 插入中断3338 u* `# I. K" K" e/ Y; u
16.4 调试器漏洞334
" P6 Q" l' ]) G; C0 ~3 k' c& W16.4.1 PE 头漏洞3341 ]& [# _3 {4 w3 N" W6 r
16.4.2 OutputDebugString漏洞336- `* P7 T4 l) u9 ~# X6 a
16.5 小结336
! Y3 e3 O% {% f. q+ f; M$ h* n6 D16.6 实验336
, x4 y) u: s2 k  v' W. m& G% v* t1 k, H- G& C
第17章 反虚拟机技术 3384 B1 S5 D, s/ S7 P2 r; e4 S9 |

6 A3 o/ y( A0 R17.1 VMware 痕迹338
  H4 H1 H6 A4 ^) I" `17.1.1 绕过VMware 痕迹的探测340
3 c% X* E3 A- z! m. H4 [( ~. u17.1.2 探测内存痕迹342- o, F3 e/ b1 y- l/ S  ~: g
17.2 查找漏洞指令342
# ^1 v  K6 [. e+ d) p" v) T5 ^1 ~5 N17.2.1 使用Red Pill 反虚拟机技术343
% c, a3 P& P5 F. _0 |' f% ^17.2.2 使用No Pill 技术344, T! R  V. U) X- z2 w* ?+ {! ]: n' I
17.2.3 查询I/O 通信端口344: J/ x( h: r( K4 q4 L* T  e; v
17.2.4 使用str 指令345
7 L' ?: z7 e; J$ B0 R7 j6 k17.2.5 反虚拟机的x86 指令346+ Q( a8 w. Y7 h
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
+ l5 O; C4 N3 j17.2.7 使用ScoopyNG3474 f4 \9 E$ E2 c9 J, D! R/ q5 l
17.3 调整设置3483 B* L/ `9 g3 r. g1 t! x
17.4 虚拟机逃逸349' V( l1 h) |5 A8 a
17.5 小结349
" j3 e, Y2 c4 o9 a  `/ _# R( P17.6 实验349
( v4 ?! H0 {6 n- R- s# E" e
% V: s% _3 k4 ^" }- w- x第18章 加壳与脱壳 352
5 O! i# E' M" s. X
" o. J. Y9 l0 r9 T18.1 剖析加壳352- [+ G$ e( h9 [& ]8 j
18.1.1 脱壳存根353
5 S" m' B, A% j1 ]18.1.2 加载可执行文件353
3 A/ _+ [' Q" Y5 G18.1.3 解析导入函数表353
; W& a5 Z) A$ C9 v. h/ M3 x18.1.4 尾部跳转354
& t( E6 _5 v) x9 E3 H3 S18.1.5 图示脱壳过程354# V! ?' s$ c& g
18.2 识别加壳程序355+ l! M4 B# R$ q. i5 q8 Q- |
18.2.1 加壳程序的标识3558 b, e8 A# o3 A' L' x8 `  u& n0 G% @
18.2.2 熵计算356
& o  w& h" N+ l18.3 脱壳选项356
( E: t+ w4 t. H: t  m18.4 自动脱壳356
' {# ^0 m& w' B8 c. S& u18.5 手动脱壳3576 c# J0 A3 d* U0 c5 S
18.5.1 使用导入重构器重构导入表358
2 ?* y1 X7 P' m6 J5 t* I18.5.2 查找OEP359
8 l0 a% B* U6 L5 v18.5.3 手动修复导入表363
% }) o& P) S4 u8 T6 I0 s3 y: f4 q18.6 常见壳的技巧与窍门364
) p; C- N( t6 }18.6.1 UPX 364! Y  R  a3 a  b* {9 O' j* {% |; k
18.6.2 PECompact 365
: D4 o6 z# M7 u) D# ]) \- A18.6.3 ASPack365
# J6 O! r" J$ l' C" ^! `' b/ u18.6.4 Petite 365' f9 }1 }! k, T. L0 P3 m. F
18.6.5 WinUpack 3660 P3 r6 P) }" M
18.6.6 Themida367
) J" D. j* q' d3 }+ J5 c( A18.7 不完全脱壳情况下的分析368
0 y; b+ _# f8 {0 ]' N18.8 加壳DLL 368; ?' ]4 f/ y' n8 o5 I
18.9 小结369
3 ~' T7 m* I* Z- o3 n5 M18.10 实验3698 j9 D" V4 H( R2 G2 ]
0 W3 G, k) K8 h9 Q0 A' B
' Z, P; C4 r7 H* b7 t5 o. C5 P- ?
第 6 篇 高级专题4 q5 y- F, G9 T: e. O

: Z' Q7 z% J* w4 @% c9 R! ]- m0 R第19章 shellcode 分析 3725 q( D$ l" M+ T9 {" j

( c! Y" P5 x# d4 I. U- s19.1 加载shellcode 进行分析3721 T: U5 c8 M# n7 @6 O8 b
19.2 位置无关代码373, ^* a1 f+ f3 _4 |
19.3 识别执行位置373; b/ X" Q8 r. ~
19.3.1 使用call/pop 指令374
+ n  h  b  h: ?19.3.2 使用fnstenv 指令376- @0 K! R$ @- Q
19.4 手动符号解析377
+ q1 J. T) P% m# _; O19.4.1 在内存中找到kernel32.dll378$ U% k( S% d0 R9 |7 `" Z/ L9 M
19.4.2 解析PE 文件导出数据380  Y* k! S9 G0 ?2 F( I2 ]) G
19.4.3 使用散列过的导出符号名382
" l9 i! }. m! H. }19.5 一个完整的Hello World 例子383
/ q0 M! ]* Z  V4 e$ b5 x/ }0 @( d5 E19.6 shellcode 编码385& W, N9 v7 }$ K( q5 H% D
19.7 空指令雪橇387
; o1 K) Q7 h" V, d! D7 Q, @, D# s19.8 找到shellcode3874 H  S9 s. x0 a& f1 _% T5 {/ @
19.9 小结388
3 A7 \% ]2 ]# y, W# G19.10 实验389
8 d  Z* t: q4 F! s/ M0 e% ?
5 P3 n* k4 x) [0 k+ o第20章 C++代码分析 3918 R5 l2 P9 _+ q% Q

. ?0 g5 p* [" d9 i* h20.1 面向对象的编程语言391' u) j! a4 W' c2 r% p: I" Q' {& o) y1 }
20.1.1 this 指针392
! M! K3 [8 K# Y5 e20.1.2 重载与修饰394
% z  t0 X* T% A" U  `) U- [20.1.3 继承(Inheritance)和函数重写(Overriding)395
1 n. ~( q( J5 O  X20.2 虚函数和非虚函数396
8 b. Y5 b# E4 n, l20.2.1 虚函数表的使用398
; c3 K" L2 ^; _8 F, i20.2.2 识别虚函数表399
! Y) R) ^; w* H0 V20.3 创建和销毁对象400' M0 m" y$ c1 C
20.4 小结4012 Y! h' W8 B8 |$ X: G
20.5 实验401
+ t- B4 Y4 y$ R) m6 b& }
% A9 z- W: p/ a9 ?6 j- {第21章 64 位恶意代码 403- P# Q% b4 {/ s' {0 Y. `
& N1 W: U6 }% \2 C  [6 K
21.1 为什么需要64 位恶意代码4038 v" y* S/ m' l" m
21.2 x64 架构上的差别404
% m- N% J7 f: Y7 D: Y: ?21.2.1 x64 调用约定和栈使用上的差别406
9 s2 Q3 v; ^0 o: y8 k21.2.2 64 位异常处理4088 V2 s$ Y) u1 l  O5 T
21.3 在Windows 64 位上的Windows 32 位408  k2 t2 q' G- v- `4 [0 w. f3 L
21.4 恶意代码功能上的64位提示4094 J: [/ @6 d$ M4 F9 b
21.5 小结410
9 A8 R+ |) o' r) g21.6 实验410
. ]' k) |5 R) R$ F' j) ]6 N  V! i  Z6 I' {- N
附录A 常见Windows 函数列表 4128 w4 L3 O9 G+ O+ ?. h: z& [& X7 t
/ R4 |2 X- I' G+ [$ E; L
附录B 流行的恶意代码分析工具列表424
4 h% }1 l. q/ F, c( H: V7 V% B+ p3 {2 \7 R4 t
附录C 实验作业参考解答435* n! L5 O+ T' I: n

/ D: _7 D6 @) y' S2 |! w$ C8 Y附录D 致青春,基础软件开发的中国故事 691
# R6 Q$ b' @* {* q( P
' M0 v+ \& ~7 D- r) |附录E Syser 操作入门 695/ o/ X3 w# ~5 B& n

, A* q" Y  M& E" D0 Q) B6 {$ |
# a1 g. x4 D2 H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-26 00:13:53 | 显示全部楼层
すごい
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-26 08:26:25 | 显示全部楼层
二楼,甲鱼兄要出恶意代码课程吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-11-26 09:51:22 | 显示全部楼层
什么编程语音写的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-7 17:41:36 | 显示全部楼层
鱼蛋代码 发表于 2016-11-26 09:51
$ k* w8 t0 N- H4 [什么编程语音写的?

6 p8 A# Z% Z8 ]+ }. y4 `" j什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-4-19 01:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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