鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
5 F) O" b7 ?! y

( G0 L. _8 A) }6 V# |- |书名:《恶意代码分析实战》
' j6 v: S# t' a" G+ X作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
3 y3 B# F3 z+ W% i译者:诸葛建伟,姜辉,张光凯 9 C, b6 T$ U- s0 L3 Y/ }
出版社:电子工业出版社  i5 b) o- j9 Q% A8 e% I( E( O
出版年:2014年4月1日(第1版)6 Q% p  ^3 C; |( W
定价:128.00元8 }: S- J) U: q9 c3 ]
装帧:平装$ w! w5 R8 B/ F8 y% l6 E
ISBN:9787121224683+ E6 {* Q, P1 E4 ?
9 E2 m, C7 _- r" M2 ~
购买链接:/ k' s$ G/ ?% v. n* J

8 D, i9 K( n  L# r3 ^$ X

& F; g  B/ }4 c+ M亚马逊 -> 传送门5 k& _5 ~) p# b9 g: v
6 @9 }6 U  u- l" K7 w( A
当当网 -> 传送门$ j8 I' A+ c' N, Q: I7 V& _' H
7 Y7 Q' d/ M# J' Q) C; S$ e. q
京东 -> 传送门
) G$ S+ ^/ r7 Y+ e9 V; b5 S5 n
4 C: h' m$ U( m( h" `天猫 -> 传送门2 `& c  a. W+ f* H

% F& @6 ^8 R' M8 F- K0 _6 k) K. R% b6 z$ e
内容简介:
$ `- f! P# R  _
9 H, r; u8 a9 J1 f2 |6 R

; X- ~* {9 N. ]$ f4 [% Q《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。3 @$ V$ i. C+ p2 V# t6 B

  E) e$ n; n& [; g0 m/ |《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。% Y* V; S& r$ |! p" K3 B  G
) K: e" }! f% t, P/ b$ P
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
( Q0 w( s% |9 X4 [针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
( @/ q& Y6 C- U* @: T" K4 `. [6 @1 d$ Y' M: e$ ^1 a
目录:
+ z5 U7 }# Q: t9 `( U+ \6 J# a; L5 |+ b2 z. `+ ~) C! A" Q. L9 i0 L3 \

1 ?! J* d: D3 I6 @$ h0 r
第0章 恶意代码分析技术入门1
. F& p" u4 g8 o3 x- `# u; A( }
' p8 Y  L( n- Y7 F. V6 l1 r0.1 恶意代码分析目标1
2 `0 y! k0 C8 N5 L! C# Y0.2 恶意代码分析技术2
& z% I& H. d. G+ ~2 R9 \0.2.1 静态分析基础技术2
/ D5 K8 t. H: ?9 U: ^7 E0.2.2 动态分析基础技术22 \/ c3 p* _% {, ~# l7 g* R
0.2.3 静态分析高级技术2
: Y6 Z5 v" f) x' q9 v! t9 O  V# H0.2.4 动态分析高级技术2" s' C! X$ ?: Y
0.3 恶意代码类型35 M% g/ M0 A8 Y% Y( b0 Z
0.4 恶意代码分析通用规则4
/ p' ^. p+ D5 Q( E- z0 O1 Y5 x! _
# @# x3 U9 o0 n
$ h5 X9 H' K. i" B7 b第 1 篇 静态分析
- Q7 v2 W6 ^6 k% y4 B9 W
9 @5 |. r$ Y+ v第1章 静态分析基础技术 64 N  a4 c( M3 s

4 J; M! }9 A- ?% e' n/ ?5 f" R# h+ u0 v9 g1.1 反病毒引擎扫描:实用的第一步60 p& l# ~% R* r! I, Y5 k* U
1.2 哈希值:恶意代码的指纹7
; U# d2 R2 N4 ~) j# x5 \3 T1.3 查找字符串7; `2 [5 W1 i( G
1.4 加壳与混淆恶意代码9! S# d( i1 z  w" ~: ]
1.4.1 文件加壳109 s- K) x( J9 c0 K% h
1.4.2 使用PEiD 检测加壳10
5 B" V' m: Y6 d- |' P+ f1.5 PE 文件格式11' v# t5 k5 b1 \5 m' ?0 g  ?7 B# M
1.6 链接库与函数123 j) M. k7 B, e3 w  ?
1.6.1 静态链接、运行时链接与动态链接12
- n" E8 I. \1 T! |( ]$ [8 r& Z1.6.2 使用Dependency Walker 工具探索动态链接函数13% e3 E, z5 {  ?% |. S
1.6.3 导入函数14
* _7 r/ t, Q" r, J/ O( F1.6.4 导出函数15
/ f9 t! c) i! ]4 M6 }2 c1.7 静态分析技术实践15% h6 }3 U" W# |( }" |
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
1 U/ b; {" U" g- t1.7.2 PackedProgram.exe:穷途末路184 J8 P( {7 _+ u3 j" C6 t  v0 |+ ^+ V
1.8 PE 文件头与分节18; _# |9 ^9 }2 y' _, i
1.8.1 使用PEview 来分析PE 文件19
8 e, j' n/ b/ {1.8.2 使用Resource Hacker 工具来查看资源节226 W! b: O0 d* \2 @
1.8.3 使用其他的PE 文件工具23: ~3 G! h- e$ {9 }
1.8.4 PE 文件头概述23
8 M. |3 ~, {" Z! _1.9 小结24
* v% P2 Q( f: D3 c4 P0 K. F) O1 j1.10 实验24- I9 e+ x2 g) H) i& t! X6 E

  A, A2 S( t# ^$ V. S第2章 在虚拟机中分析恶意代码 278 K* R4 _8 {/ r

) s3 G! _* {( X. p3 p2.1 虚拟机的结构271 \& R$ e; O& R6 R2 R: f
2.2 创建恶意代码分析机28
" U+ B5 j7 ?' w, c0 o* r2.2.1 配置VMware299 r' ~& L; q) z# D, ?
2.2.2 断开网络30( r( \7 [! J, p; t
2.2.3 创建主机模式网络30
5 p5 u7 y5 C$ e" o2.2.4 使用多个虚拟机30: O: c8 Z$ m9 q* k! h
2.3 使用恶意代码分析机31
: d- U2 a9 Y" d5 ^9 O" O2.3.1 让恶意代码连接互联网31  U/ m9 Z0 i: s/ e8 W
2.3.2 连接和断开外围设备32
* u. V. |3 R5 Q6 C  o* T2.3.3 拍摄快照32
+ t2 W  P. D' q, v9 D2.3.4 从虚拟机传输文件33# V) r5 m, Y7 r
2.4 使用VMware 进行恶意代码分析的风险349 G/ ~/ u1 N' h
2.5 记录/重放:重复计算机运行轨迹34" j- a' R# }" z/ ~  Z
2.6 小结35+ U5 i" p: }' E$ F

8 h" K" m) f% `6 L2 l2 D( |2 r第3章 动态分析基础技术 36
' S& r( l. t1 z3 d. q, P% ]/ Y: `

! k9 Y. i# ]  V# a$ ]$ v$ `3.1 沙箱:简便但粗糙的方法360 g  T! S2 ]4 p( m1 {, q6 j
3.1.1 使用恶意代码沙箱365 ^  ^# o' E& K
3.1.2 沙箱的缺点37% K! T5 f8 R: ~$ K/ A$ |) J& Z$ ^
3.2 运行恶意代码38, o( ~+ j& M/ ^% O' Q, D
3.3 进程监视器39& }" J  [6 L' a6 A& @, v% Q& T
3.3.1 进程监视器的显示40
/ N$ U- X' W1 S, [* [8 R5 w4 i* t3.3.2 进程监视器中的过滤41$ A3 Y4 `4 W! a( P/ V
3.4 使用进程浏览器(Process Explorer)来查看进程43
8 B0 E* S5 [. o4 c! Q! w; O$ D3.4.1 进程浏览器的显示43
* L+ U7 }/ Q5 A% E9 W0 m, I& M3.4.2 使用验证选项44' _4 m! Y& h2 z3 N+ z$ J, T5 k
3.4.3 比较字符串45
# L9 Z$ U8 N! T4 S: i/ t4 x3.4.4 使用依赖遍历器(Dependency Walker)45
* o! [7 o% v& q; T3 j3.4.5 分析恶意文档46
8 t3 w$ A  G! u! C% G* t5 h3.5 使用Regshot 来比较注册表快照46
$ F1 L4 W6 Z9 r. s( }' Q, s" W# x3.6 模拟网络47
+ l/ @9 {: L* r: n$ v. M& x3.6.1 使用ApateDNS47
1 v1 G8 ]5 z* v3 J$ S& y# w3.6.2 使用Netcat 进行监视48# C" q  E3 A9 D6 A5 l+ P8 X3 R1 B
3.7 使用Wireshark 进行数据包监听49
. J; s; q. U+ R3.8 使用INetSim511 a+ \2 B! p* n6 |& ^5 c9 k8 E
3.9 基础动态分析工具实践52& h4 l: h1 D6 F# |
3.10 小结55
& A0 I1 t: R% l' _* B  k3.11 实验56
" c! A, z' {0 s. Z5 J# ^& ?
0 Q" @' _8 w2 |& |. g0 F
( S/ l' M' o8 g7 k( ?6 M第 2 篇 静态分析高级技术篇
7 [3 H! o- d1 L3 _0 k
3 O% {8 k- z* f  m; r第4章 x86 反汇编速成班 60
! c$ g: ]' Z6 X, }" K
5 \  Y% |6 `5 r# _+ s" n4.1 抽象层次60
5 F' L- \9 M0 O! T/ I/ y4.2 逆向工程62. f/ J& u* |! z, I& k. ~" Z; v
4.3 x86 体系结构621 L* ]8 [8 ~/ n- d# [
4.3.1 内存63# w4 A0 u( d0 Q7 r: f
4.3.2 指令64; }0 h8 N' L1 s2 Q, a2 V- h0 I
4.3.3 操作码和字节序643 r+ e3 g( k! m$ Y2 w: q
4.3.4 操作数65
$ e5 O" D% U% J6 Z4.3.5 寄存器65
, }; t9 r+ c5 t0 ^, g# ?4.3.6 简单指令678 W6 v" d3 ?6 Y" \  j2 x: B
4.3.7 栈701 I# `* R, p5 Y% E5 |/ `3 _
4.3.8 条件指令73+ |; }- Q7 r6 ]5 r+ A4 P
4.3.9 分支指令73
- T, |# y- [& z0 m8 K( e( d4.3.10 重复指令742 u. R5 l/ l5 J& m
4.3.11 C 语言主函数和偏移76
- t, Q. }1 L8 O6 s6 n4.3.12 更多信息:Intel x86 Architecture Manual77
/ s3 F$ w3 U+ D5 P' ^& b* @- ]4.4 小结78( }! M: N1 _# K  |+ F
) {1 h; g/ |1 Y9 N# n* d) q
第5章 IDA Pro 79" V( ~  t  R) V. S) q1 G9 |
4 c9 x+ }$ N) S" ]7 P- n
5.1 加载一个可执行文件79  v. b+ ]" z5 F* s$ @
5.2 IDA Pro 接口81& S& m/ W) c' {5 c' @
5.2.1 反汇编窗口模式811 E+ g! g' x( V4 B5 k# P9 G
5.2.2 对分析有用的窗口83
0 E0 u+ O$ v# a( N5.2.3 返回到默认视图83
: \# v; j7 d$ q8 ^5.2.4 导航IDA Pro 83
0 n" P4 V2 w3 ]1 |" W4 s/ ^3 j5.2.5 搜索85
  S" V' p6 t. C6 C! Y5.3 使用交叉引用86
  X5 s1 s2 \2 U5.3.1 代码交叉引用878 D1 A+ r, C6 t# y+ `
5.3.2 数据交叉引用88
9 b- X/ A  U; \/ |* |5.4 分析函数88
; ^) Q% u  g) ~: @3 Y# ~6 E5.5 使用图形选项894 P5 r8 }: J6 M" |
5.6 增强反汇编91
* d4 l& ~$ R/ l5.6.1 重命名位置91
, T" C  m& l; J, i$ {, U5.6.2 注释92, S8 P" h- ~) F5 }2 y! C
5.6.3 格式化操作数92
4 Z$ ^8 ]  h% G1 j1 P% p0 b5.6.4 使用命名的常量93
( k8 N2 [0 \) W/ H9 _* V5.6.5 重新定义代码和数据94
: R/ @4 q7 x* r/ Y' P) z. w6 Z5.7 用插件扩展IDA95+ N) E" a+ [5 |
5.7.1 使用IDC 脚本96) `/ j9 e2 T% u1 [. y, }% n. l
5.7.2 使用IDAPython97* s0 v( d1 B8 q- r4 I) L+ r. o
5.7.3 使用商业插件97" L/ h1 k) Q( L! E7 E
5.8 小结98
. b  o* D8 \0 B3 a0 d, H5.9 实验98, i3 N7 j7 x, }" F4 p: z% x

$ `" o' d% r  m5 B第6章 识别汇编中的C代码结构 100

2 ]7 S, G1 M$ [) b. A# h4 x6 U* @6 T
6.1 全局与局部变量101' t& S9 k$ K8 [4 ?- ?6 T6 |
6.2 反汇编算术操作1020 l8 S3 @0 O% }  |6 u/ B7 I
6.3 识别if 语句104
5 L' Z# @, t; v# q' L# A6.3.1 用IDA Pro 图形化分析函数1054 J. G1 g4 L& O8 v# I  d
6.3.2 识别嵌套的if 语句106
$ k9 I( T8 l: I, y# S6.4 识别循环107
2 [) n0 h. ?7 @6.4.1 找到for 循环107
1 g2 s7 X2 r, {/ L, T6.4.2 找到while 循环109" \, j3 G" n/ W: M
6.5 理解函数调用约定110
8 B1 U, F# d$ ^3 V6.5.1 cdecl110% @. U! P6 x+ u+ }4 d( b
6.5.2 stdcall 111
" r5 U; H) n! ^$ X6.5.3 fastcall 1118 e5 ]2 n# I6 Z; R- q6 `. s* Q
6.5.4 压栈与移动 111
4 S0 ^5 _  i( t0 T: ]6.6 分析switch 语句112# n' C* ]  F4 W$ s0 t, J5 t! a3 x
6.6.1 If 样式112  ]; ^8 L9 b7 t& m7 y6 q1 x" E- z
6.6.2 跳转表1146 y5 z7 J4 E: f, w! g
6.7 反汇编数组1184 i" j% I8 _# i; \6 _  ~  `+ L; _/ N
6.8 识别结构体119# g( N# S% R. e, g0 q2 A+ S% o
6.9 分析链表遍历1219 I4 }* t9 U) g  A
6.10 小结1236 b' _, Y  X- O' J- [$ ^& i+ p
6.11 实验123
; ^% A; k- W. ?# I+ P3 h, I% p( j6 A, B9 q2 o
第7章 分析恶意Windows程序 126
* l; H: w3 t) R( S5 k& K
( D, \, ]3 Q  i; D, q/ T
7.1 Windows API126
( y) y/ u3 W7 t$ `/ @" \& Y7.1.1 类型和匈牙利表达法126
$ h8 }$ r+ X# N7.1.2 句柄127
. s6 g: |/ ^2 r  L3 `& V) R7.1.3 文件系统函数127
/ |) v, Q6 |8 i7 Q! w7.1.4 特殊文件128
4 k/ t3 V; O3 c+ R7 {  W' [7.2 Windows 注册表129
, a0 {) }8 ~0 e! _$ T7.2.1 注册表根键130
) L. M* t& Y5 h* b( l7.2.2 Regedit131
0 v4 R( ~( U) M! W. G  l8 e7.2.3 自启动程序131! O  }- z1 x$ }
7.2.4 常用注册表函数131
$ J+ ]7 k' _6 V' \& {7.2.5 练习分析注册表操作代码132
- v, o+ v; H8 j, f7 E$ N7.2.6 使用.reg 文件的注册表脚本133
8 C7 {( r3 e$ L7 B/ U: R" }/ C7.3 网络API133
- A- V- M3 \, z! S2 [  \7.3.1 伯克利兼容套接字134) C9 B, d% H3 n# P6 ]
7.3.2 网络的服务器和客户端134( A3 C4 m% }: W1 C7 t
7.3.3 WinINet API 135
4 q' w/ s$ ~% M- k5 g0 v7.4 跟踪恶意代码的运行136
$ X$ [% ^9 w4 y7 y) Q7.4.1 DLL136
# r9 Y6 V/ `( b5 w7.4.2 进程137
& L$ |% B8 m  E1 L/ r, t7.4.3 线程139$ v( P$ b- i, T5 w3 D2 N3 j
7.4.4 使用互斥量的进程间协作142. a( b, P/ B( |8 }4 Z! X$ d. @
7.4.5 服务143: I3 R1 i0 k8 O! P
7.4.6 组件对象模型145
( l. ~: A+ c3 N7.4.7 异常:当事情出错时147) Z! ?  O& x: z$ Z+ p7 G( ]
7.5 内核与用户模式148
: R: O7 }) q5 ?- k/ I/ O7.6 原生API149
' D# t9 T. j! o: o5 {7.7 小结151
1 G" l9 b0 l! Q% g# j7.8 实验151/ D0 J# |  T0 V- U) H1 |% t
9 }8 n% ^* k) O( d

6 O% {& p9 s4 e' T! ^. r第 3 篇 动态分析高级技术篇' @( n9 o3 _) T" j
% q0 _' h& O2 o, ^
第8章 动态调试 154

6 q, ~$ x& g( t2 R
) t% L2 }8 \$ v; K, o7 N8.1 源代码级与汇编级的调试器154! |! W; h3 B, @* O, }: O  U4 c) F
8.2 内核模式与用户模式调试155
7 M! ]  a4 ^' h. a8.3 使用调试器155- h8 y8 C9 D* H6 M, _
8.3.1 单步调试155; \5 p+ x3 c$ Z. k2 F
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
% p$ P% A( W; ~6 a: L2 u8.3.3 用断点暂停执行157" w1 w, x3 i# [1 ?3 \5 `9 }
8.4 异常161
% D* s3 B+ \9 D: e& R) g' X5 J% ?8.4.1 首次和二次异常处理162
0 [& D2 u! N. b. m8.4.2 常见异常162- O" e9 d; C" ?2 F. J0 l& x/ G) Z
8.5 使用调试器修改可执行文件163; s2 t/ S: |6 N4 D0 L% y
8.6 修改可执行程序的实践163
+ Q/ @2 [1 `6 L) ?, c8.7 小结164
, k6 ]! {% ^% N' n& O4 O
5 P# u5 G+ b9 H第9 章 OllyDbg 165

  c) Y0 \9 U! N
6 V7 E' |( w+ Z9.1 加载恶意代码165" V" |$ Q4 R# ?- {, H
9.1.1 打开一个可执行文件165
- J2 g* `  V7 A5 n0 m* F9.1.2 附加调试器到一个运行程序166$ ^; \* V9 f# `) ~% h/ P; s9 N
9.2 OllyDbg 的接口167
( x% X4 e. L/ F* G9.3 内存映射1687 m+ ]8 Q' Q/ A' F( |2 U
9.3.1 基地址重定位1696 u) e+ [. F- k+ B2 ^5 E
9.4 查看线程和堆栈1706 g3 T; ~: k( O/ v( m4 u
9.5 执行代码171- G8 S- Z2 }. ]* F- }! J3 v& @" A
9.6 断点172) y& m. [% K) R
9.6.1 软件断点173
' r" F9 |$ m2 g- }3 T6 I' O% |9.6.2 条件断点174
- b' q& o# V2 n0 J! w1 W% j9.6.3 硬件断点1750 v  Z) h) o. P# S( @* T# E3 }
9.6.4 内存断点175
% l# d( u" \! t9.7 加载DLL1761 N% ~% Z: K( A* F) g) a' I
9.8 跟踪177
9 r) }% ]5 Y! ~0 [' [9 A9.8.1 标准回溯跟踪177
3 O/ a, }) T: N8 i1 C1 _; D+ H9.8.2 堆栈调用跟踪178  B4 r, F/ L& B# p
9.8.3 运行跟踪178$ I: Y% N) z9 w, B$ e2 K' m
9.8.4 跟踪Poison Ivy178
* Z) K* ]6 a. d. p: a% U" X' d9.9 异常处理179
" \! i: y( @( r/ c; _  X5 f9.10 修补1807 [! q" ?! P' A2 D& |
9.11 分析shellcode1812 C3 z1 x8 Y$ q4 @3 x5 Q
9.12 协助功能182
) l# C1 n$ Y* O! c# d9.13 插件1829 _. a' x1 u( w; v4 U/ P, T
9.13.1 OllyDump183, L; O. I$ f/ l$ ?" _$ [' _) P
9.13.2 调试器隐藏插件1835 q" T3 N* E  T$ z! i% \( U
9.13.3 命令行1847 D6 |  D5 ^. p+ D, B+ ]9 g. ~1 U
9.13.4 书签185
5 i. s: t5 d+ t8 |8 Q9 K0 G. P8 J* g9.14 脚本调试185
2 ?# s' S8 P& y: U. q9.15 小结1869 j' a8 _. v& }# P6 P& H' W
9.16 实验187
; ?* `3 N% Y  d0 X, g
$ Z) \0 m4 B9 q. g第10章 使用WinDbg 调试内核 189
& M4 h/ G# G1 x' |) w4 E' u
# H) k$ D, `4 u/ A4 S' [10.1 驱动与内核代码189
4 J* b) p' B* \' z3 B& n. e10.2 安装内核调试191
! z0 d; K2 y. S& `) z5 t10.3 使用WinDbg193
# ?% B% G0 ~- f0 ^2 p+ ^2 E7 c% M, G10.3.1 从内存中读取1943 G* C7 V% S( b+ ?! @
10.3.2 使用算术操作符194
, g$ q4 x" s* k( }1 T- n" r10.3.3 设置断点194! V2 `) H, h( {' i& u! P
10.3.4 列举模块195, L0 S) i6 V) E! n! S( R
10.4 微软符号表195
1 J* y$ x* M% ]+ i, j6 `3 A10.4.1 搜索符号195' u. ]7 P: @, Q4 S" I2 I) @. N$ `8 `8 R
10.4.2 查看结构信息196; J/ Q- O+ w  h& j; U' m/ G
10.4.3 配置Windows 符号表198' d% M& M# @3 K# _% B' F
10.5 内核调试实践1986 k, B/ I- W: B5 s
10.5.1 用户空间的代码198
) g* [0 I3 t* N% ]" j# z1 E10.5.2 内核模式的代码2003 ]1 z! |3 |9 q; P! A/ v
10.5.3 查找驱动对象203
$ [- K% {  Z# ?' ]: w( \10.6 Rootkit204
  p" v* I: V% V10.6.1 Rootkit 分析实践205
* i3 o9 v! G1 J8 w4 D1 p+ W10.6.2 中断2084 b0 w. }3 l/ G& G& D: \% F
10.7 加载驱动209
) |8 [, x3 r" k10.8 Windows Vista、Windows 7 和x64 版本的内核问题209& p. ?: O* I, e" ]7 k8 W
10.9 小结2108 D0 Q2 I8 \; r  w6 q
10.10 实验2104 u; ~' {8 y, V0 E6 b! x1 i7 D
. T( t8 \5 o# m# i6 w# p& `

* |# g. j( |! ]第 4 篇 恶意代码功能篇
. o( |0 b! y3 V" t- m$ c" j9 t5 i
9 s2 ?7 R5 |; d2 d5 @% M, c第11章 恶意代码行为 214
* |5 f+ @9 P% P2 h5 F
8 n$ p* h! p2 R7 w' P# K11.1 下载器和启动器2141 e  I/ _9 R2 ^! u& O' a5 z
11.2 后门(backdoor)214
) z+ i- d( ^3 g8 D  g11.2.1 反向shell215
! w$ |8 N& I4 N8 D1 V; x11.2.2 远程控制工具216% l( ]2 |. U. K, `6 d
11.2.3 僵尸网络216
% }/ X0 ~) r; n; \7 D11.2.4 远程控制工具与僵尸网络的比较217
, w) e; H) r' u! I" o11.3 登录凭证窃密器2173 g7 @) D4 E- Z' E3 P# W; O+ w" i5 a
11.3.1 GINA 拦截217
6 V/ r2 S0 G+ V$ i7 `11.3.2 口令哈希转储218
; ~" l' ~) D- F7 d9 b2 T11.3.3 击键记录2213 ^4 X/ m1 {' G- {" X( c
11.4 存活机制223
$ b) f; ?% n% y0 Q11.4.1 Windows 注册表223
. u  g' T7 L3 t11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
, N& V# U3 B& j11.4.3 DLL 加载顺序劫持227+ I5 q) ~( E/ T. P9 O
11.5 提权228
* z. I+ e8 C+ l4 V! v: K11.5.1 使用SeDebugPrivilege228
& i' o" f0 {/ ]1 d3 d11.6 隐藏它的踪迹——用户态的Rootkit2293 a+ S+ l* Z; y5 Z1 N
11.6.1 IAT Hook 230; n! u1 R; m4 R; m8 o
11.6.2 Inline Hook 231- h. K+ a0 z  B: W
11.7 小结232' r+ N4 F0 W' g. v6 p
11.8 实验2320 T0 Y6 O( J2 ^1 F

4 w5 S) H6 ~8 f. W- `第12章 隐蔽的恶意代码启动 234; A, c2 T9 W$ H5 i8 z2 d1 Y
5 u5 C8 y4 ~/ f5 e
12.1 启动器(Launcher)234
$ f  f  n+ S: F6 g$ L12.2 进程注入234
+ o: d2 s1 P5 p4 p5 D$ ^12.2.1 DLL 注入2356 O* P, n( U+ j% ^+ ^
12.2.2 直接注入237
3 \4 `' Q, L9 @1 h12.3 进程替换2385 V: {: e9 `4 m: T; L
12.4 钩子(Hook)注入240+ R+ R) T5 o3 n: A. |
12.4.1 本地和远程钩子(Hook)240' W! l$ a9 c& L/ l. L" P) J  R! z
12.4.2 使用钩子的击键记录器241. M+ S3 N) ]) _7 q3 P
12.4.3 使用SetWindowsHookEx 241
; |- `7 e+ _% |; O6 I6 L* E12.4.4 目标线程241
- }  U- ]: g, D, c1 g12.5 Detours 242
7 m. j' V4 e' w9 }! t12.6 APC 注入2432 R: r& s  l( X
12.6.1 用户模式下APC 注入244. n" t" j! a* K% ^8 n" j
12.6.2 内核模式的APC 注入245
9 Q1 p* V6 R" s12.7 小结2460 {% @# i6 I7 W4 m6 g( h8 a
12.8 实验246
6 A% b. |$ W4 j
* Q4 L: C8 [% W' X* T& y' }$ T第13章 数据加密 248
. F! _1 {" \; C7 K+ L! N- y7 M# l8 z4 ~, M/ M. X
13.1 分析加密算法的目的248
7 p- p  ^. H+ H  y9 ], E1 u! d13.2 简单的加密算法248" W* R5 [2 p" L
13.2.1 凯撒密码249
) R" D: x) w5 D; W& q13.2.2 XOR249* [1 g, H# t3 X1 g
13.2.3 其他一些简单的加密策略254
/ E+ b4 V+ f- R# u; X1 E13.2.4 Base64255
) d/ X" J2 L# `1 k" E% G4 ^13.3 常见的加密算法258! t& U* }: m/ `9 E; j5 J9 P, ?
13.3.1 识别字符串和导入259. a- A0 s/ {" Y/ }. G
13.3.2 查找加密常量259, _! Z! o. Y9 {3 `. N
13.3.3 查找高熵值内容2610 b: e( Z; u) F* ~3 M4 g0 z4 F
13.4 自定义加密262/ A3 x9 ~2 |: |8 T- L& a4 ]8 t
13.4.1 识别自定义加密263
' \! i) ^2 [( J8 ?& g# \13.4.2 攻击者使用自定义加密的优势265
5 n+ H6 x; i6 J/ ?13.5 解密265
* a5 J  [1 z3 k13.5.1 自解密265/ E. H) }  P. J9 v
13.5.2 手动执行解密函数266
6 u: i/ E% F2 E& i& f13.5.3 使用通用的解密规范267% y8 R  W. f; y: f3 S0 h
13.6 小结270  y. \* O: A' i6 A; X/ `/ l  r
13.7 实验2715 G9 Y+ s# ~/ f/ L) o0 n$ i

4 b# e2 s' ^3 {) U3 D3 G% E第14章 恶意代码的网络特征2735 ^% p0 m. [2 m: d! l0 l

0 h$ h- N6 H/ c8 |) _14.1 网络应对措施2738 i: ?- o: O2 x( b1 _
14.1.1 在原始环境中观察恶意代码2731 I( D& a2 V0 z+ R; m8 @
14.1.2 恶意行为的痕迹2740 y: I& G) G( K. P2 a
14.1.3 OPSEC=操作安全性275
( `6 ?* F5 \% z, t7 z7 [! Q14.2 安全地调查在线攻击者2753 z3 P" E: e5 u/ d" b
14.2.1 间接性策略275  }9 V( I% x: y2 t  ?) a. x
14.2.2 获取IP 地址和域名信息276
' h+ `- C1 Z& C9 N+ r* V! i0 u% A# G14.3 基于内容的网络应对措施278, \6 `4 E# w. S/ X
14.3.1 使用Snort 进行入侵检测278' k/ B6 X" U3 w
14.3.2 深入观察2797 p# u0 e* ^; ~9 _7 Q
14.4 结合动态和静态分析技术282' B2 f5 P3 J7 q0 o4 P! Y1 y6 |
14.4.1 过度分析的危险283
9 a8 E3 i, g* U! V3 L, L# G14.4.2 在众目睽睽下隐藏2837 W4 Q5 @$ I' @
14.4.3 理解周边代码286
+ m  \2 e  @' S4 u0 ^$ c14.4.4 寻找网络操作代码287$ ]& m: i3 j8 M* t  i) P: Q) L
14.4.5 了解网络内容的来源288
6 S$ b, ~/ H4 ]14.4.6 硬编码数据 vs. 临时数据289  t* i& {2 q- r" U9 R9 h5 A* l
14.4.7 确定和利用编码步骤289
3 y* ~; M. h9 e6 D( g" e14.4.8 创建特征291+ G  ^, a, o0 k& l# d# ]+ W
14.4.9 分析解析例程292
' T6 G  b8 Q  W. Z  ]% T% V14.4.10 针对多个元素2941 N2 d7 \4 K6 G& _
14.5 了解攻击者的意图295* W  o$ @  P' K
14.6 小结2962 e  o1 L$ p2 V- R! |+ w3 S
14.7 实验296% v8 A, F$ P$ T9 ?' ?$ O
: U1 a$ P2 y8 G) L
) A3 f1 f" h+ n# E: _
第 5 篇 逆向工程
- }5 m5 R0 z* y& V; {# m7 P, M2 Z9 u
第15章 对抗反汇编 300
2 ?2 f1 K  ~+ g8 l
- A* m! \$ E: N15.1 何谓对抗反汇编技术300
) s3 X$ |/ U: e15.2 挫败反汇编算法301/ B/ }/ b# [3 U; m8 r, p2 H* G
15.2.1 线性反汇编302
. f( S' w, O$ _7 _15.2.2 面向代码流的反汇编303! n! r: o$ N" P6 s: q- H; A
15.3 对抗反汇编技术306
6 Z. N% l/ m3 _4 x9 K: I% o4 \15.3.1 相同目标的跳转指令306
3 r; k$ D# v; R# R- `7 B: \7 K7 N) k15.3.2 固定条件的跳转指令3070 s+ ~; ~! Y4 C3 p
15.3.3 无效的反汇编指令3086 y7 S5 h; b8 K6 _+ i. k5 k  c
15.3.4 用IDA Pro 对指令进行NOP替换311
, u" _9 G  a7 h/ R15.4 混淆控制流图3125 e% Y/ N) K4 H, }. T. z5 s& S
15.4.1 函数指针问题3122 J! D- b; R- ]/ O" o" A& Z
15.4.2 在IDA Pro 中添加代码的交叉引用313  k/ q. \0 T/ s! r9 b# p9 c
15.4.3 滥用返回指针313) t3 [- F1 y6 U# l+ z! m
15.4.4 滥用结构化异常处理315
( ^5 \1 \( ^1 _' U$ k15.5 挫败栈帧分析317# g4 @5 j$ I) K# @/ P
15.6 小结3207 C0 K6 a2 r6 o8 L" @; B1 B: ]) Y
15.7 实验3206 Z  E8 h5 Q3 w8 X
7 [: ~/ E& n' A" I' S8 C9 [, J
第16章 反调试技术322
$ Z" Y3 m* C0 u3 _4 _0 S
" x& j+ a6 M2 @7 {  Y2 V3 ~$ r16.1 探测Windows 调试器3220 k( Z* \* Y4 O+ J/ b7 J0 r$ K
16.1.1 使用Windows API322
. T3 n+ Z; N2 a) c5 O% m" g, W* D+ C16.1.2 手动检测数据结构324
7 R. v: V$ J* d& T16.1.3 系统痕迹检测326- w* }' P* M6 |8 B2 k& p
16.2 识别调试器的行为327
$ ]! a( Z* q1 ?3 _3 b, N) y+ o' f' ^16.2.1 INT 扫描327" }; |/ w/ ^2 J  ]
16.2.2 执行代码校验和检查328; e) }) L# W* C( D
16.2.3 时钟检测328$ G9 T4 f. o. P$ e5 J$ q
16.3 干扰调试器的功能330
6 U8 i8 f/ N2 J; J$ `16.3.1 使用TLS回调3303 T, |7 Z; X% v- W0 m
16.3.2 使用异常332
, t( M9 O& ?: `7 s0 |: j% ?16.3.3 插入中断333
1 J9 A# y4 Z  e* {' r16.4 调试器漏洞334" a! O6 O# p, h+ k
16.4.1 PE 头漏洞334- i9 F5 K  A6 p: q
16.4.2 OutputDebugString漏洞336
# \9 O: c9 S' Z1 z, F16.5 小结336
8 e4 q- D6 B- x$ a16.6 实验3360 \5 b9 Z3 S9 S( H3 s- S- x
6 b$ J5 I6 {( K
第17章 反虚拟机技术 338
1 _% W  z! Y! G; W' b9 x; h
8 M+ s; P% i- e5 z+ p! h. q17.1 VMware 痕迹3383 {' _& s+ U8 W5 e) I- V
17.1.1 绕过VMware 痕迹的探测340
6 \# r& ]9 V/ h' d2 Q3 M17.1.2 探测内存痕迹342
; \! ^! I' v/ N' R17.2 查找漏洞指令342
# {4 H; p$ X+ K) ]17.2.1 使用Red Pill 反虚拟机技术343
$ z$ P, i2 k9 T& [$ V, f17.2.2 使用No Pill 技术344
* z. p6 m: j( \/ Z0 i! C17.2.3 查询I/O 通信端口344
" B0 }  {+ c5 w. s+ I1 B4 j7 @/ P17.2.4 使用str 指令345
) L+ E* s9 x* S+ `' n17.2.5 反虚拟机的x86 指令346
: w, ]. X+ }/ p  I5 e0 Y' E: `17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
+ B2 G3 W, A$ R17.2.7 使用ScoopyNG347
- c/ d5 @! E) `: l0 Y17.3 调整设置348( @$ K7 r# m/ _7 y
17.4 虚拟机逃逸349! ^7 @' A) Y9 q( ]
17.5 小结349
. J6 f+ i8 B" T2 Y17.6 实验349, U* G$ B* z8 K

% [% f! F. H  P, b+ M2 ?, z第18章 加壳与脱壳 352
* R+ [6 @0 X6 |3 X) k# @7 r3 J! M6 x# J: k, ~, `: H
18.1 剖析加壳3524 e, @+ I" a% B- |
18.1.1 脱壳存根3530 c0 C  X7 n4 I( K
18.1.2 加载可执行文件353& V. O0 b% ?" n3 R+ k7 X/ o* L
18.1.3 解析导入函数表3530 j" J( u4 t% s7 u" f! o  V/ H
18.1.4 尾部跳转354  n9 W; k+ ?+ I( r4 ~% M
18.1.5 图示脱壳过程354
8 u( r3 V: ?. |4 K& q' c7 x18.2 识别加壳程序355
# ^% _  a. Q( u18.2.1 加壳程序的标识355$ u/ ]/ q. g3 |, l( V7 o  d0 W8 u
18.2.2 熵计算356, Y& b% j+ J4 A( O4 p& \
18.3 脱壳选项356, _( J/ |9 U! _+ T$ o# s4 D
18.4 自动脱壳356( @4 W# S9 _+ C* _
18.5 手动脱壳357) s8 e" U3 q$ B: V8 [
18.5.1 使用导入重构器重构导入表358
; Q: q/ A' N" O2 N+ N9 B; R18.5.2 查找OEP359. _8 Y4 o$ F2 Z9 @/ i7 r1 c5 B; P" k
18.5.3 手动修复导入表363
- B4 f/ a6 L1 k+ D  U0 g* b5 b18.6 常见壳的技巧与窍门364
3 ~3 k4 x9 C  Y0 w) i$ u18.6.1 UPX 364) v! C6 o) m( D- F
18.6.2 PECompact 365
& g* C$ n; R8 I( U18.6.3 ASPack365& O2 k2 n8 h5 ]( `/ a
18.6.4 Petite 365
' x' k- m. h7 n18.6.5 WinUpack 366
" N+ @- f: P0 j  ^' o: W18.6.6 Themida3673 v/ C6 W! w9 b* ^' v3 n) V& o
18.7 不完全脱壳情况下的分析3683 k8 }1 H. @( z0 R' K  P6 Y
18.8 加壳DLL 368
5 O# @7 G; h: ]$ E1 L/ @( g18.9 小结369
, N. y) a) E! @18.10 实验369
1 M% I& N% `3 ]; f4 B) B  K4 u
& E1 N6 I. N9 q% a  F) [" D; c+ y& d
第 6 篇 高级专题
4 g4 t7 F- m. X: e: q3 o4 z3 r
2 X/ r5 _% m9 _6 \# t$ `9 h9 A( q/ l第19章 shellcode 分析 372
8 [  L. {) Q5 C9 o& p: J$ u5 [5 q! A8 S2 D" A9 _
19.1 加载shellcode 进行分析372
' Z1 G7 e1 @% Z( R  t2 c19.2 位置无关代码373
! a. v/ N& A0 D$ g' ?. R19.3 识别执行位置373
) H/ T2 }7 ?1 g4 E19.3.1 使用call/pop 指令374
3 `, l1 l+ q9 j+ L  N0 F19.3.2 使用fnstenv 指令376
  k7 C/ \- r0 ]/ W19.4 手动符号解析377
8 q( [$ m7 O9 @# v19.4.1 在内存中找到kernel32.dll378' ^8 X; ^8 H1 s3 p7 Y( n9 d
19.4.2 解析PE 文件导出数据380
: D# `' `# J) R8 x/ f+ l3 ?19.4.3 使用散列过的导出符号名382& P% w7 a* ^: f
19.5 一个完整的Hello World 例子383! u: }/ s4 w4 G0 b! n# O2 }2 b; x
19.6 shellcode 编码385
( c) g# |: M6 w. Y6 g2 m19.7 空指令雪橇387
1 m- h/ [" T6 w+ q& G9 j/ e3 i19.8 找到shellcode387
% K8 F$ P" o) j- s19.9 小结388
  s! H/ o/ V5 H+ q  D% E19.10 实验389$ N. H8 ^6 q/ v, f+ Z4 ^  u5 g

, N: F0 {  @3 Z- D, `8 j' C1 B第20章 C++代码分析 3912 Z( r' W( h5 K+ Y. ]9 I6 o
, w6 r  j: C6 B& x3 U% u4 _$ t8 O
20.1 面向对象的编程语言391% l, S5 |# }) Q9 I% h, i
20.1.1 this 指针392# s) }/ n% Y: o4 F
20.1.2 重载与修饰394
* j" F2 }6 E" ~& F! I5 T; L" L+ ~20.1.3 继承(Inheritance)和函数重写(Overriding)395
- l& s* l7 D8 K' m0 F20.2 虚函数和非虚函数396
! t: w; U$ E! M: a- z$ m20.2.1 虚函数表的使用398
# v5 [! j& U; b20.2.2 识别虚函数表399
' F# Y4 D  D+ \, m, i7 b20.3 创建和销毁对象400
- U) ~1 ~( P: U' d: \20.4 小结401
  c, Q2 W9 Y. s20.5 实验401+ U1 Q0 x% l6 M7 U

" Q& M" Y  j# W) C6 B9 ~( b; O第21章 64 位恶意代码 403
0 \) r% b3 T1 k: ], {: O; {
/ T, k( N9 Z7 i( ^21.1 为什么需要64 位恶意代码4033 G# L) |0 z% U* e
21.2 x64 架构上的差别404: l# w. F  K4 v$ K' N1 d
21.2.1 x64 调用约定和栈使用上的差别406' R7 o5 v6 }8 N  o6 g4 y1 i# M
21.2.2 64 位异常处理408
) b  a4 i$ E4 h+ v- X# [21.3 在Windows 64 位上的Windows 32 位4083 m1 S0 L6 h, B+ q, d
21.4 恶意代码功能上的64位提示409
) J% b2 Y: ~: s/ ~! I3 O7 A0 E! {21.5 小结410! y, Q! B3 J2 {- m7 c- _) W
21.6 实验410
1 x7 I! ^" H' m( h5 N( {; T3 N  l. ?. f/ y8 A* I( b7 j
附录A 常见Windows 函数列表 412
& a' i& d( y& V( _$ X
" ?- P7 J$ T9 E- X) [8 _附录B 流行的恶意代码分析工具列表424
) g8 W; l1 d. }, x
. h& j' U1 t+ T4 z/ p& V! e7 G附录C 实验作业参考解答435; A) O% y3 P, g# n: d2 T( |3 _
1 G6 z9 C$ U+ @" G. }+ z5 ~
附录D 致青春,基础软件开发的中国故事 691* L! O3 k( X8 Z& K# @2 g
9 [# X5 b0 b6 O7 f
附录E Syser 操作入门 695
: w  Q! B  ?$ E& T1 w: B$ w! f$ j1 N: `
) ?5 I3 c' a) R4 ^
想知道小甲鱼最近在做啥?请访问 -> 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:517 l9 v" t+ }: ]( D
什么编程语音写的?
, S- a0 q; I7 S4 [: x
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-17 18:04:42 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-26 21:17:30 | 显示全部楼层
看看路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-18 17:34:37 | 显示全部楼层
感觉很厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-31 11:38:15 | 显示全部楼层
感觉好厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 20:45:30 | 显示全部楼层
good book
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 20:18:16 | 显示全部楼层
好书,详细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 17:28:05 | 显示全部楼层
看着就挺难的,应该先熟悉工具
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 20:41:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-2 12:01:35 | 显示全部楼层
要做一个很牛逼的程序员,网络安全方面有所建树,完了给国家做贡献
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 21:57:05 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-10 16:51:09 | 显示全部楼层
新人报道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-24 10:45:23 | 显示全部楼层
好牛逼的书啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 09:37:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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