鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

( u7 f. b1 P8 L+ O  Y$ |7 b) s3 w; Y& L
书名:《恶意代码分析实战》
* Q$ i  v* |2 }' r5 @! O" f作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)# K% d; {* C3 b" U. j0 _5 B
译者:诸葛建伟,姜辉,张光凯 2 Q% K* T/ u) T7 W% K" k
出版社:电子工业出版社
" U9 T( y% V* E, _9 V, C3 E4 [8 u/ K出版年:2014年4月1日(第1版)' E0 V8 ~# n9 W$ i, I# Z4 h7 @
定价:128.00元4 D0 n7 \) h% r9 x2 T
装帧:平装
, I% J! c* j$ X8 \' b2 JISBN:97871212246839 s- V, P. c" X$ t
$ N* Z/ P' ?$ ]: M
购买链接:) d+ M9 R9 g# _" D; y! a$ q( q

$ Q1 M8 [2 v% f( O

& m8 Q* |7 ?' _* t; X4 n/ E( b# u亚马逊 -> 传送门
. ~  Y4 q% q  E& `% I! N* ~3 d! \" F8 P8 ]8 T# ^# E
当当网 -> 传送门
& S* N4 m- t) c7 B
% G" @$ A" _7 s* z& Q- N京东 -> 传送门& V9 C5 C. Z) E% @" Q7 g
! M8 d' u- B/ p, H! j
天猫 -> 传送门3 `& J1 i  V& W7 I- J  D2 U
) B% i2 K5 D6 B# @& w& B- R
1 b( Z- H. R. p- \8 h: G
内容简介:
- a0 x0 b4 T: Y  D) [6 }3 T0 ^; ^) Q! w/ l, H, q$ i  n


4 R+ g# j& q5 }) A1 a3 H  z: c6 S2 T0 O《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。7 s& z" s$ ]* k: u

' R& W4 g1 y. V+ \2 M《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。' U# p, X  \, j) u$ i# r7 N; Z" y, T

, t# X2 |' ^/ C/ D针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;) Z( w" q8 V) b8 n1 X/ E0 U4 J, c& a
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
5 Y( s* z& Q& V; _: G9 I' T: ?8 `) ^8 V
目录:
" M1 I$ I4 r+ y& V$ h5 f% y# w9 [! g$ x4 ^5 s! D

% q) P0 L  n$ {* |7 ~% K: @7 F
第0章 恶意代码分析技术入门1
, K7 T' D7 ?: s4 U+ p( E* q* @% W5 Y6 _7 Y9 [  [
0.1 恶意代码分析目标13 c% H; f( p/ r0 M; z
0.2 恶意代码分析技术2
' _7 q: y( B; }3 K0.2.1 静态分析基础技术2
! R4 T: b9 Y) ?! |' j# E- f0.2.2 动态分析基础技术26 k+ e9 I( p4 `; c0 V& M7 C% f7 Y
0.2.3 静态分析高级技术2
7 @4 H: M( Y4 j& ]* f) `0.2.4 动态分析高级技术20 v. G. z' [9 M
0.3 恶意代码类型3/ I# x* H9 Y( x% W) U
0.4 恶意代码分析通用规则40 }; |6 f/ j+ ~( V8 U/ z, I

/ n! A) ?+ O% _) \0 `( ]0 j! Q( z  c' w) z* U& T4 m* Q4 N
第 1 篇 静态分析, D% A& k2 _) N! w) b
3 r8 a) x; \. K3 ]) l
第1章 静态分析基础技术 66 a1 X' e6 F. }

% Q% W4 _3 J: t: h4 |2 Y# Z; ^* E1.1 反病毒引擎扫描:实用的第一步6
2 }" g/ G& G8 b4 T% p5 Q/ h1.2 哈希值:恶意代码的指纹7
; c) m. p& j8 }* g$ O1.3 查找字符串7. r6 P0 \: C1 t5 `3 P" i$ f7 m% i
1.4 加壳与混淆恶意代码9
3 G: s0 u5 J  c" m# U% U1.4.1 文件加壳10
9 d4 }9 Z9 E, f/ _1.4.2 使用PEiD 检测加壳10; ^2 x4 A* A9 o! P6 ]! }
1.5 PE 文件格式11, z0 M3 |6 M/ x: ?. `
1.6 链接库与函数12  Y" e# C' s# q) w: U7 t4 D  h, I( A
1.6.1 静态链接、运行时链接与动态链接12
6 X* X# n) I$ R1 M3 G& ~1.6.2 使用Dependency Walker 工具探索动态链接函数13
  k1 g& }- B+ K5 B- W- Z1 F+ \1.6.3 导入函数14
8 A' I- W# N1 C4 c& v1.6.4 导出函数15- v3 ?$ P, F3 w$ j0 ?, C8 X
1.7 静态分析技术实践15+ Z  i2 v4 H6 j! B0 x4 N8 N1 T
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15  t5 F  u$ j' m) Z8 C
1.7.2 PackedProgram.exe:穷途末路181 d- n: y7 @5 k3 s9 S
1.8 PE 文件头与分节18% `$ M2 G' \6 N
1.8.1 使用PEview 来分析PE 文件19  }* F9 }9 ~. H, E2 X2 {
1.8.2 使用Resource Hacker 工具来查看资源节22. L2 k+ I* }, e  T/ j
1.8.3 使用其他的PE 文件工具238 B8 g  ]6 ]/ g3 B, H
1.8.4 PE 文件头概述23- d- Q, Z* p# i$ j- h
1.9 小结24% S$ |" j: r" _0 [  x) S1 T- k
1.10 实验24% }$ [- C9 c: r0 n4 R
& p6 \: R( U  H! X$ L
第2章 在虚拟机中分析恶意代码 27& c- _0 I% B! k" S
% P5 K. m: M, O! @2 [4 V
2.1 虚拟机的结构27
% M; W+ s: D1 D5 G' q. N# s2 S! D2.2 创建恶意代码分析机28. T3 x- x7 Q3 j' s& F; i' U0 m: V
2.2.1 配置VMware29
) h; x0 a2 c2 I3 I* x2.2.2 断开网络30
  k: d5 q0 _/ G2.2.3 创建主机模式网络30/ g' ]. K# x: a% W( s
2.2.4 使用多个虚拟机306 e, U8 B4 a7 M. B+ |7 I3 r+ d; C
2.3 使用恶意代码分析机317 [% E  `/ v8 I  s, X
2.3.1 让恶意代码连接互联网31
, n& r6 A1 V$ y6 F- a/ S2.3.2 连接和断开外围设备320 n0 z" N8 n  ~0 e1 ^5 v# n) |
2.3.3 拍摄快照32
( `) y+ q# p6 X' @$ g- e2.3.4 从虚拟机传输文件33
! U( p7 X& g  {. w( r, T. |2.4 使用VMware 进行恶意代码分析的风险34
1 D8 R8 Y' X  a4 J2.5 记录/重放:重复计算机运行轨迹34
; _" R& m# g# X; C- y# X2.6 小结356 B" O- T/ y/ L9 T, n

( C  x1 V; j. s9 \2 o第3章 动态分析基础技术 36
8 F( G# w7 C5 k3 a; F
3 t- }$ O6 e' Q) d: M  C/ @
3.1 沙箱:简便但粗糙的方法36
8 k3 H, L8 T" n7 R0 w) q3.1.1 使用恶意代码沙箱36" w! O, L0 d* c' H2 Z1 {5 j3 P% U( g
3.1.2 沙箱的缺点37" b5 f+ u. T/ q/ Q" K
3.2 运行恶意代码382 y- q3 A$ S; n- f! f2 y
3.3 进程监视器39
$ E' b; B$ i; f3 p4 F% i3.3.1 进程监视器的显示40
, _2 [  I$ `1 x. K) ^3.3.2 进程监视器中的过滤410 v+ m" C+ N/ |! |9 f; h
3.4 使用进程浏览器(Process Explorer)来查看进程43
3 N# J% z; \0 {$ y8 r3.4.1 进程浏览器的显示438 g/ G+ l0 l$ @) W" B
3.4.2 使用验证选项442 {& K: b5 C9 }; A0 h# \
3.4.3 比较字符串454 F6 d! j, h4 n
3.4.4 使用依赖遍历器(Dependency Walker)452 [. f0 i* V" P% P2 g, g5 j
3.4.5 分析恶意文档46
/ W5 Y- p1 K/ v9 m3.5 使用Regshot 来比较注册表快照46
% O: m% I5 z  |( r5 g4 o3.6 模拟网络47& Z3 q0 m: a9 P
3.6.1 使用ApateDNS47$ {+ k0 x5 h4 F% G! ?3 k
3.6.2 使用Netcat 进行监视48
* o7 s- h$ Z# J8 I3.7 使用Wireshark 进行数据包监听496 r; J" B3 g- Y; T3 p- x8 Q
3.8 使用INetSim51' Z+ ~9 B5 T9 I( W4 E0 h) Z
3.9 基础动态分析工具实践52
$ M" n6 c4 F* p$ D3.10 小结55! B4 V: H( J3 T% V9 t
3.11 实验564 Q' |; g. V& i1 j) r+ M
" M0 F% E; t, {. R1 V. ?! \

, G  L& y3 E2 m, l, _$ C第 2 篇 静态分析高级技术篇
' H. V* E& D1 `2 E) }
: e. c( ?/ @2 [" O* q8 T, x第4章 x86 反汇编速成班 60. |2 H1 G3 Z1 W5 g7 x
1 g/ ?% b. k7 T0 m9 |
4.1 抽象层次60
7 j9 F) ?3 v3 C  h& @" f! N) w/ k4.2 逆向工程629 ?  V2 p" ?6 P6 f8 p$ y( S
4.3 x86 体系结构620 h/ o- Q- h1 M/ g2 Z
4.3.1 内存63
. c/ V8 ^: w2 T4.3.2 指令64
+ M) I5 a& U9 u4.3.3 操作码和字节序64
5 E& M& t( ]( o' e- |4.3.4 操作数65
5 `3 m+ E# K. p% q, T: U4.3.5 寄存器659 I  t" A+ U4 ^9 E7 ^
4.3.6 简单指令67
' M9 F0 @" s' A3 ?4.3.7 栈70( N0 _* V- F7 ~. N
4.3.8 条件指令733 P2 m( b: k6 p4 J' M# g1 Z
4.3.9 分支指令73
2 q1 @  O/ l- r9 r) P4.3.10 重复指令74+ o! Q6 l2 {6 `) M1 B2 X! N
4.3.11 C 语言主函数和偏移76
* m) A# J) ~. w4.3.12 更多信息:Intel x86 Architecture Manual77
: G/ D4 r. I" ]7 a9 t6 L4.4 小结78
6 M5 z8 |* s  e& H& v6 ?5 o5 c+ w) x3 H0 f$ W2 n6 m1 @
第5章 IDA Pro 79" T0 [. d. m5 v9 w/ `

  L# e7 V2 k  Q1 O" A" ?. J) [: g5.1 加载一个可执行文件79+ @6 U; t0 X4 }  u
5.2 IDA Pro 接口81) E8 z& E! d; C8 ^
5.2.1 反汇编窗口模式81/ j4 n  z! m5 T* V' h1 S( H
5.2.2 对分析有用的窗口833 K4 D3 O7 p" n2 Y* d
5.2.3 返回到默认视图83
+ w* u4 h& [. ?+ ]: J5.2.4 导航IDA Pro 837 N7 e; \7 }- Y0 N
5.2.5 搜索85
1 x2 w, T& e) e- H2 B5.3 使用交叉引用86
; \3 w. B8 ?/ C5.3.1 代码交叉引用87
! Y5 Z/ M) S1 U" \5.3.2 数据交叉引用888 Y& ]; J: `( y0 g! ^, l
5.4 分析函数88
: C8 Q. y1 b9 E6 [% b5.5 使用图形选项89
3 ~5 j6 Z) @! `  D5.6 增强反汇编91
4 E( j0 R" x/ f# X+ A! G5 n5.6.1 重命名位置914 x4 R7 G' q4 D
5.6.2 注释92
0 H: e0 x$ q7 H* J) e8 a- Q5.6.3 格式化操作数926 @5 c0 s3 v& a9 n4 m$ i
5.6.4 使用命名的常量93' m: E2 U- o) `# g) W
5.6.5 重新定义代码和数据94
+ I+ T8 k" b2 u* W6 T! l1 C% x5.7 用插件扩展IDA95/ @4 B) ]* j- F2 Z4 t2 u" M, k
5.7.1 使用IDC 脚本96) i: x5 E5 \7 G- B$ B
5.7.2 使用IDAPython97/ U6 n$ S0 A- p7 ^* }* Z) B
5.7.3 使用商业插件97
- T& P% |  v" e0 X1 Q5 |. y5.8 小结98
' k* B2 q3 s" h) U' D0 G/ e1 E0 x5.9 实验98$ p  u  Q: n# L. J7 E/ A/ V

/ h: q* O( p1 n' Y/ M第6章 识别汇编中的C代码结构 100
2 J( x3 d% Y, U0 w7 q3 g! w

$ h7 [( V! `. H1 T& ?6.1 全局与局部变量101
# K, B8 v3 j; d6.2 反汇编算术操作1029 o- V) g& F" g
6.3 识别if 语句104
% `0 e/ Q' C! Z- |4 U6 m2 z6.3.1 用IDA Pro 图形化分析函数105
# _7 m. @; Y" @7 x6.3.2 识别嵌套的if 语句106* X5 f. z# c5 r9 `+ W# c: a% E
6.4 识别循环107
# z4 P. p, u/ C/ i7 A4 m: U6.4.1 找到for 循环107! O# g7 j/ [! F  n' K
6.4.2 找到while 循环109  H: D9 L  J9 M5 z
6.5 理解函数调用约定110
: D& F; D% q0 O/ ^3 z9 K: Z+ T$ \6.5.1 cdecl110+ T& \6 F* e) d+ L4 |& Y* E+ M
6.5.2 stdcall 1115 p9 h# P0 w7 s7 f  r
6.5.3 fastcall 111
: `6 r9 P7 M3 k: d6.5.4 压栈与移动 111
5 p. @  o4 h5 u6.6 分析switch 语句112
+ `/ S0 h4 u' ?; H' d# g6.6.1 If 样式1125 y2 ~2 O  e( h9 Y
6.6.2 跳转表114' S$ ]9 v8 b& E; |# G2 g* `; B
6.7 反汇编数组118
- E2 D, X# W$ c; C; I" J& Z3 r3 \6.8 识别结构体1195 E+ e( z, J3 _, `
6.9 分析链表遍历121
6 N" R9 R$ ^$ ?# K- B3 y. i6.10 小结123
- q- z& u) c# V1 ^6.11 实验123
# i1 z5 W' @, a1 b; o' a" x. ]$ P6 X/ ~5 U2 o2 J# r1 U
第7章 分析恶意Windows程序 126
; \3 E# s% y& q

; L# Z* v" I+ T% H1 b8 t' Z7.1 Windows API126- j7 Y5 i/ l0 W. k. j3 g( \# H# S
7.1.1 类型和匈牙利表达法126, W+ A0 F/ A  Z$ K8 D0 g1 \4 a
7.1.2 句柄1279 w3 O1 j& n- h
7.1.3 文件系统函数1271 a8 M$ E) l( E/ U# ?
7.1.4 特殊文件1282 ?0 |$ |9 g' B) X5 v  M7 S1 v/ a
7.2 Windows 注册表129
8 p8 H! t$ Y0 m+ g7.2.1 注册表根键130
  [0 \. M; X  u% r4 C7.2.2 Regedit131
: w. o1 u; H; K2 X7.2.3 自启动程序1317 A5 C% V9 o) w( U4 R9 t
7.2.4 常用注册表函数131
* Y' t! F1 I8 f' r1 F! Y7.2.5 练习分析注册表操作代码132  b' {  [, [- F+ s6 ^
7.2.6 使用.reg 文件的注册表脚本133
. s: z" m+ W, |- {% A7.3 网络API133; \+ m+ P; L& q0 I% [
7.3.1 伯克利兼容套接字134
- g( }2 F3 I) U" G0 x7.3.2 网络的服务器和客户端1340 {4 b2 w. g+ }2 M& O( ]( N
7.3.3 WinINet API 135
+ ?) F! E5 n! N6 \$ k7.4 跟踪恶意代码的运行136( g% l5 s: e& u# T8 F
7.4.1 DLL136
8 A+ `- J1 M" Q8 c) U7.4.2 进程137: \/ k  R. M7 k  Y. M7 x2 }* w
7.4.3 线程139
3 [# P; E, e  D4 c6 D4 a7.4.4 使用互斥量的进程间协作142
8 x% Y! q2 Y* c* V* N( G! x7.4.5 服务143
& W) A# k1 Z- s: H7.4.6 组件对象模型145
# n/ Z1 Z" k) G7.4.7 异常:当事情出错时147! O: e1 @7 W: c: N- i2 v
7.5 内核与用户模式1483 N! U6 u3 U4 D& a. e' V- {/ |
7.6 原生API149
' W  h/ \' z0 J- K# F1 ?3 }) f" S0 G7.7 小结151
1 h7 M5 K$ Y4 e+ u% ^# S7.8 实验151. X4 q* c+ f% y

5 y2 r$ t1 f  c& h$ @
9 W, J  P% ]$ T$ S0 @0 F% h$ t$ C第 3 篇 动态分析高级技术篇
* M4 c9 i' F: n% P. P+ D8 a% N1 o7 N' ?
第8章 动态调试 154
* z; U/ s5 i, s' z7 K
* f" ?- E4 V, P
8.1 源代码级与汇编级的调试器154
- ^9 L" }5 ~6 l2 U) m8 ?  X8.2 内核模式与用户模式调试155
+ K8 ^  p- J2 f% Q: C( I; u1 v8.3 使用调试器1550 K8 z: H5 Q( k" Y" _2 L
8.3.1 单步调试155
5 ]  ?. e# Q+ k( ?% O7 u: i" ?/ a8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156% m1 Z6 [- m' w+ d; F6 s' T7 L
8.3.3 用断点暂停执行157: @; j& m5 P9 z) f7 j8 z4 T( f8 e- s
8.4 异常1613 C9 @' S2 S2 G% ]$ R
8.4.1 首次和二次异常处理1622 ~5 H) H2 q( q5 m  a
8.4.2 常见异常162' |! y5 \* D7 D' e: K4 w0 W0 C
8.5 使用调试器修改可执行文件163
3 X& {( a8 m6 x  |% h8.6 修改可执行程序的实践163
& N7 z% X; G" y' i; C8.7 小结1649 s* n  i. |+ }2 z

$ L" C5 _1 _' b* @第9 章 OllyDbg 165

3 K" Y; G# j! M5 j6 A# n) [# t- v% [, O& Y9 @5 U
9.1 加载恶意代码165" Y) g0 ?4 I8 ^8 Q
9.1.1 打开一个可执行文件165
: V2 X( u. v. \3 y$ n2 }$ j! a8 P9.1.2 附加调试器到一个运行程序166
3 h5 k9 K! Q4 E0 P% u9.2 OllyDbg 的接口1677 E$ p* b/ y4 }5 C7 [8 J( s0 k
9.3 内存映射1689 M$ v9 _: r4 _
9.3.1 基地址重定位169
' r& Z4 ~7 U" V9 h+ @. W- @7 V9.4 查看线程和堆栈170
; R5 Y, B0 P! [" f/ Y6 n9.5 执行代码171! n2 ^0 h5 R- e
9.6 断点1727 j% A2 P) W" u$ O; _8 ^
9.6.1 软件断点1731 w0 n5 d3 d9 M4 W& ]
9.6.2 条件断点174$ ?, F5 r( W7 F. |- W% N0 Q7 l
9.6.3 硬件断点175
" @% p9 k2 X( Y! g9.6.4 内存断点175
( {' L' ~! ?6 U$ Y' X! i2 y9.7 加载DLL176. c% @5 s: I/ C. p. i; {6 d
9.8 跟踪177' A: K" O( o2 W; O3 S. e+ r
9.8.1 标准回溯跟踪177
3 k& s$ U  p5 R/ X9.8.2 堆栈调用跟踪178
5 O$ {5 y% s) ?9 O: f: l7 S  }9.8.3 运行跟踪178) `5 o8 N  e# j$ a" u: i
9.8.4 跟踪Poison Ivy178- a# X  u: v8 ]% X' v$ B
9.9 异常处理179; e% E1 {: p, v0 s% y
9.10 修补1802 G. N% W) K- Q& T/ S, w
9.11 分析shellcode181
4 V# e) o( Y: {8 @! G# y9.12 协助功能182
8 O. p( Z! Q/ \) _9.13 插件182
! [  L: Y* h6 S8 P9.13.1 OllyDump183$ L0 T# T  L+ M9 v) |1 W* k
9.13.2 调试器隐藏插件183% Z9 S0 K" q/ f) |
9.13.3 命令行184
; \) d6 z( L' Q1 [9.13.4 书签185
$ ]2 w$ j. j. C' d% d9.14 脚本调试185
/ W& J, I/ E5 R9.15 小结1863 C! ?: W  J. J7 l: ^
9.16 实验187
; `" n* `! y; o5 O( H' j; i! P6 T: b9 t; p* i" U; X' {2 W
第10章 使用WinDbg 调试内核 1896 ~3 @  H, R. W- l7 i# S
9 L. p1 u, j/ V+ y; V
10.1 驱动与内核代码1890 P9 {# z+ a9 _- [8 `
10.2 安装内核调试191
( p7 {3 H* F9 Y/ S; L10.3 使用WinDbg193% E7 @  @. ^) h
10.3.1 从内存中读取194
6 g! [1 P6 B! f$ R& W0 }2 `% Y0 V0 }10.3.2 使用算术操作符1948 x, \  S8 i7 a/ k
10.3.3 设置断点194
% d1 r: d2 ^( i" o8 j2 X/ ?8 w10.3.4 列举模块1959 z6 ^8 t9 L! C0 G
10.4 微软符号表1953 z6 |$ ?. x) ?4 _: y8 n
10.4.1 搜索符号1954 ~: [* N8 O* m" q
10.4.2 查看结构信息196
; ~  \" z3 e  i3 u. P3 ^10.4.3 配置Windows 符号表198: L, s$ g+ S3 y
10.5 内核调试实践1989 @* U( ^: I7 c( U& M8 c7 [& D+ r
10.5.1 用户空间的代码198
8 c+ s/ S) \8 I10.5.2 内核模式的代码2006 e4 v6 h! x# e$ T, |) x
10.5.3 查找驱动对象203& o, {9 g7 S7 R$ l
10.6 Rootkit2049 m6 ~8 X; D; o/ K1 T& H
10.6.1 Rootkit 分析实践2057 h  n- [" s- x/ r! P& F( C
10.6.2 中断208
: H; @; `6 j. x1 A) b4 q% _10.7 加载驱动209- \- x8 r, ~4 T& |" ~  D4 g
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
+ e4 ~, X$ t9 v6 [10.9 小结2106 _9 q: k5 {/ l
10.10 实验210
, ~! C& I5 u; y6 ~6 T- U. E
7 o+ w2 Z3 [: }6 U- U0 s# v9 m* o" d  L2 i: r9 k! g/ j5 z7 p4 o" k. j
第 4 篇 恶意代码功能篇6 P* t2 S1 E$ O- K1 w
: R9 ~9 w3 g7 G8 q/ E7 o2 x2 g
第11章 恶意代码行为 214
5 s7 e6 Z: C4 }8 i% i1 W" q) ]7 }" a5 e" e
11.1 下载器和启动器214+ K0 \8 }, P6 S4 B
11.2 后门(backdoor)214
9 R  ]4 X1 f; K3 t7 G- c11.2.1 反向shell215
  Y9 x' c  I$ @& D/ y11.2.2 远程控制工具216; u9 z; P8 N* ~
11.2.3 僵尸网络216* ~$ ?" h% q: H
11.2.4 远程控制工具与僵尸网络的比较217
2 b0 i" v4 E7 J" @11.3 登录凭证窃密器217
" t+ ?) C# w  W1 `! _11.3.1 GINA 拦截217( j$ B0 f- K! M$ G+ L# j
11.3.2 口令哈希转储218* R* v% V) D* Z) b: T+ X7 i
11.3.3 击键记录221
+ ^+ L' |5 W. r9 e" g11.4 存活机制223
4 e( j# N5 g4 L11.4.1 Windows 注册表223
2 B# o) _' b- W( ^0 F1 F+ H& x" m0 P11.4.2 特洛伊木马化(Trojanized)系统二进制文件2259 K4 B+ _6 M4 e+ C  x
11.4.3 DLL 加载顺序劫持2278 j1 I# v- H; I8 u* n
11.5 提权228) X7 i8 ^! c6 V% O$ o
11.5.1 使用SeDebugPrivilege228
5 }8 j9 u( v1 n; ]# O% x11.6 隐藏它的踪迹——用户态的Rootkit229
7 [! S& R% |; [3 T% e  |11.6.1 IAT Hook 230
% p0 n- H: `9 e! |11.6.2 Inline Hook 231
1 e4 L, u% W8 Q6 X: Y, }! ]( h- K11.7 小结232
8 C" B. `& l. {1 A11.8 实验232
/ p/ x& ~; O. Q" n  m+ k- G  ^) {: a4 n
第12章 隐蔽的恶意代码启动 234
* K/ q& x; w/ a; a' R9 b6 U9 A/ w+ Q1 x
12.1 启动器(Launcher)234$ v5 @. f8 l" I
12.2 进程注入2343 ?3 c! F- G5 P- J8 \3 ]$ l
12.2.1 DLL 注入235  z! y1 ?: Y; l" k" o
12.2.2 直接注入237
( o' t" h* X2 m: ]. h, w5 g: O12.3 进程替换238
* |! ~( H9 {  o8 N" N12.4 钩子(Hook)注入240- R, O; E0 t7 p- X' W4 b0 w6 d) Z" Z
12.4.1 本地和远程钩子(Hook)240
9 s$ B7 L2 D3 o1 t) ^- f& O8 L12.4.2 使用钩子的击键记录器241
) G1 d- q- D, Y5 F; M12.4.3 使用SetWindowsHookEx 241( L$ t  y3 q1 ^% n1 F
12.4.4 目标线程241
- h- w0 L  t* h: ~, i& Y12.5 Detours 242
- x" o. v5 y" T% C6 d. `12.6 APC 注入243
7 g2 I" f9 d- v% A4 X  M12.6.1 用户模式下APC 注入244
! Y9 I& Q1 n( k" S9 r- E/ a9 d) }12.6.2 内核模式的APC 注入2457 d& Y5 u: h; s. M4 V
12.7 小结246
0 B! T% \2 S) d% ~  T, [12.8 实验246+ i+ B5 @$ |: R0 C. A( M) p
5 P( e" J" {7 W' U/ f
第13章 数据加密 248+ X6 A6 ]- T" r6 M" o8 R- f+ Q( v
9 t# z( }# _% G! N9 |: K; Z% g
13.1 分析加密算法的目的248" @- ?- H/ y# Z
13.2 简单的加密算法248
& x1 ?  z- m9 e: W! |! q  L13.2.1 凯撒密码249
, p% X7 H$ [8 ?& @2 g+ {- a13.2.2 XOR249' ~/ p7 G  B# G5 m1 _
13.2.3 其他一些简单的加密策略2543 e4 D# h* }0 m/ B& G
13.2.4 Base64255
7 l; @. F6 M! i0 I; q5 K$ F13.3 常见的加密算法258
- [1 K+ }  `2 k+ X& P) s13.3.1 识别字符串和导入259
8 ~/ s; h0 v( j0 I( Z* t13.3.2 查找加密常量259# b3 L  V* O& H& b4 m3 P+ z0 f5 S$ E
13.3.3 查找高熵值内容261
% }& h7 n* U4 o' U, C; b13.4 自定义加密262: R2 I8 d" ^- z; ]5 H- B
13.4.1 识别自定义加密263* {6 N) K2 g& A% E
13.4.2 攻击者使用自定义加密的优势265( @" _8 j* l  ?$ n3 i( o
13.5 解密265) q' {. X# N+ m, `9 v
13.5.1 自解密265
5 O' [3 B9 |3 O+ S13.5.2 手动执行解密函数266
; R+ p- R. t0 H7 B& v13.5.3 使用通用的解密规范267
8 M+ I8 l( ~& V( n  H% ~- f13.6 小结270
; N4 N$ E( \! \/ l. ?13.7 实验271% q  ^  `" i* A) u/ J3 q7 e. c# u; T

( I1 F: d* z* c- p: M第14章 恶意代码的网络特征273. v7 I9 A* i- l! g* H
7 I. a5 S. h( U/ N
14.1 网络应对措施273
  G+ J* n4 p, p14.1.1 在原始环境中观察恶意代码273" r3 G* t2 q- p
14.1.2 恶意行为的痕迹274
" B$ ^( y' H# i$ g% \. E+ N# |! Z14.1.3 OPSEC=操作安全性275. x- M7 z, K& s8 N& v
14.2 安全地调查在线攻击者275
4 a0 \6 @* n6 }# L14.2.1 间接性策略275
$ [8 k( _! m2 g# r, j( x* a14.2.2 获取IP 地址和域名信息276
  e& _# d! A4 I  r* N. s14.3 基于内容的网络应对措施278  d) i4 N3 z. C4 L/ _5 q9 `
14.3.1 使用Snort 进行入侵检测278
* N9 a6 ~7 ]# J" j- P14.3.2 深入观察279
# R3 m. n/ J! L14.4 结合动态和静态分析技术282
# v) M0 y4 _, Q2 q7 p14.4.1 过度分析的危险283
- W& }- Y% v" @7 X2 G+ x14.4.2 在众目睽睽下隐藏283
' R  }" w) D( }. F/ g14.4.3 理解周边代码286
8 i/ t; u( g& w$ b14.4.4 寻找网络操作代码287
& S' z6 Y: L- p14.4.5 了解网络内容的来源288  F% \5 m' ^' D6 M3 C
14.4.6 硬编码数据 vs. 临时数据289
0 k/ ~# t, C1 b3 M5 i& I14.4.7 确定和利用编码步骤289
+ b' S6 t: J$ M8 r( R1 h14.4.8 创建特征2919 L0 d  x1 g$ a; U( y
14.4.9 分析解析例程292
8 S+ B0 N7 _8 E) c  k1 E4 G14.4.10 针对多个元素294
/ q2 N* b5 k* ?1 @) Q7 e  @% t6 C14.5 了解攻击者的意图295
  o- S- ?7 p5 L7 d14.6 小结296
6 O" i$ X6 }* x& F14.7 实验296
$ k* f" m4 P, ]. d, M/ L, U" w3 }  m
! ~1 ^" M% u/ y" Z3 V
第 5 篇 逆向工程
: ^# ?: R6 _; R" M& o+ x9 D$ s0 R+ I5 `3 @
第15章 对抗反汇编 300
! i5 v: s& _" l1 T5 W
+ S% ~# u9 r! U7 b8 x. _8 _: \  e' D15.1 何谓对抗反汇编技术300
0 i4 Q* H* Y" q* Y9 Y15.2 挫败反汇编算法301" s3 V  r" f/ [) M; \% H3 u" I: \
15.2.1 线性反汇编302/ Y, T2 Z  g1 A
15.2.2 面向代码流的反汇编3038 p- Z" ]& h2 i  p1 Y
15.3 对抗反汇编技术306- l, |) E/ A& o  ]5 R
15.3.1 相同目标的跳转指令306
% C, ~& [$ T' P- P+ D- c15.3.2 固定条件的跳转指令307
. y; t2 t' V# N1 ?15.3.3 无效的反汇编指令3086 w8 ~; y$ a4 U& z
15.3.4 用IDA Pro 对指令进行NOP替换3114 B6 P/ O* S/ r' m
15.4 混淆控制流图312! I% Y/ y1 |- O5 [/ F$ K
15.4.1 函数指针问题312
; y* g8 }, i3 y0 K15.4.2 在IDA Pro 中添加代码的交叉引用313
8 B! O/ r6 E* q! l6 \15.4.3 滥用返回指针313" p9 x1 l; ?) L6 U/ D: ^2 L. s' W
15.4.4 滥用结构化异常处理315
5 \% t1 ?9 s5 ~" N15.5 挫败栈帧分析3175 C. z9 z+ C6 I
15.6 小结320
6 Y8 s/ q# f! B. m8 K15.7 实验320$ S; |$ Z  e) l* O2 P4 P- }( M

4 B/ W6 f% F: y0 l1 _第16章 反调试技术322
7 O. D9 f+ b7 ]; Z4 \/ i# F* o1 b, |: C% n% I8 J2 T( Z4 J* X
16.1 探测Windows 调试器3229 s0 `% T, _7 o) `) }6 ]
16.1.1 使用Windows API322& W0 z2 E4 Z' v" u4 R
16.1.2 手动检测数据结构324
: `5 v  G, {+ D, k16.1.3 系统痕迹检测326
) k% f# \  w; n) D2 m( V0 x16.2 识别调试器的行为327! \& s  q: m* d: E: _
16.2.1 INT 扫描327" J& E1 l# ~4 a7 Q6 c. \0 x  B: G
16.2.2 执行代码校验和检查328
  R* @. q# o9 X  v) G# H* ?16.2.3 时钟检测328. E0 S+ p/ f2 ]
16.3 干扰调试器的功能3306 o% E( y% `# q8 a/ ~  A
16.3.1 使用TLS回调330; Q$ z3 b3 h2 j: R7 b( {3 Y  [
16.3.2 使用异常332
( M8 {- X5 O% j' ~0 b+ g16.3.3 插入中断333/ @# }* z2 q6 |. s/ D1 I
16.4 调试器漏洞334
5 n( M) Z1 u0 {+ }16.4.1 PE 头漏洞334& |/ y9 ^0 m7 O
16.4.2 OutputDebugString漏洞336& `5 }& ^/ \5 l' T/ C& H
16.5 小结336
0 k9 W1 F+ E7 O, j, r" U16.6 实验336& Q. j3 i7 U) K$ C( j( s1 J1 o
" \$ e$ B; ^7 d) e  q3 Z
第17章 反虚拟机技术 338( y! a+ ^$ K. B! `9 b6 Q3 U* Z/ i

' C! s8 t% d) G17.1 VMware 痕迹338
. B% q, t/ e2 |% i# n17.1.1 绕过VMware 痕迹的探测3405 Z6 k$ k( a  g: Y) f9 q
17.1.2 探测内存痕迹342# W) g! u0 y0 u2 `% p: L
17.2 查找漏洞指令3425 ?8 A! L: ?- `$ l: F
17.2.1 使用Red Pill 反虚拟机技术343; g$ g7 s7 L/ Q: _
17.2.2 使用No Pill 技术344
. n# @5 H( S0 y+ n- E$ M5 U8 `17.2.3 查询I/O 通信端口344
4 l9 A: D  i% T$ W/ S; T17.2.4 使用str 指令345
) d3 B3 f$ D! I9 C. K& _1 @6 A) ^2 i17.2.5 反虚拟机的x86 指令346% Z! E6 @; i: M: o9 y' A+ }# ~' H
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347% b3 ?; a1 Y4 x6 B7 e0 ~7 ^
17.2.7 使用ScoopyNG347; o- L  q3 P$ I
17.3 调整设置348/ g2 i: a0 n# y9 K" T5 }
17.4 虚拟机逃逸349
6 R  p: Y3 z% ?' p6 K8 ^4 ~17.5 小结3491 f: W  j; u8 I6 a* a
17.6 实验349$ R! t$ M2 N3 g3 ^

# T5 ?4 w  f/ R6 A: v第18章 加壳与脱壳 352# l; F' o( j$ n% B6 f9 o- L6 H
1 E# a: d+ [5 R
18.1 剖析加壳352
; E9 C+ R( f8 C, m, U18.1.1 脱壳存根353' n. Q8 `1 b% T+ U( {7 ?
18.1.2 加载可执行文件353" v/ K" g$ g! O1 n' Q/ e
18.1.3 解析导入函数表353+ L, }: ?6 o$ q3 _; v1 n
18.1.4 尾部跳转354) u5 @6 ]6 d& ~3 l& Y0 k
18.1.5 图示脱壳过程3542 Y0 v3 s6 m$ x* B7 O' t
18.2 识别加壳程序3556 i# ?4 j* V3 V8 e+ q
18.2.1 加壳程序的标识355
  I" r4 e6 Z: V2 n# m( m18.2.2 熵计算3565 p2 K* `' g$ ^! h
18.3 脱壳选项356
! D  v. y8 ^8 t6 }) o) \18.4 自动脱壳356/ X" r' X3 g0 W# ]( e/ {$ [
18.5 手动脱壳357
: l  V2 c: W8 n2 T" \# [5 {# |18.5.1 使用导入重构器重构导入表358
( a* ?: T5 o0 ^& O" R2 s3 p18.5.2 查找OEP359
1 G9 b" k! U0 v' `9 O' {18.5.3 手动修复导入表3639 e/ n  |  W6 t, J) ?
18.6 常见壳的技巧与窍门364" N! I' I) F: G0 L3 A, w+ Z
18.6.1 UPX 3648 `% I+ H6 x# e8 t
18.6.2 PECompact 365
" G/ ^! _, Y) @18.6.3 ASPack365
, Q! @, i  \9 A9 G& B" S18.6.4 Petite 365
2 ^  i: N* l' |( R# B. e18.6.5 WinUpack 366, J9 |6 {9 e+ [- E
18.6.6 Themida367
& z8 N+ N, o2 W# e* I0 Q, o8 u18.7 不完全脱壳情况下的分析368: w0 {  v: r& t) R
18.8 加壳DLL 368$ G; ]- \8 S# D( H- m" \; |: g: w
18.9 小结369
1 ~2 e1 y' l4 J* f18.10 实验369
3 D" X( ~( t( C: i4 J6 {1 j2 n( a3 K3 e0 |# N
. e( U) i4 _5 T+ M7 O! x  K  r
第 6 篇 高级专题
: k9 Q! @5 v, N% p: n7 t6 U( B
$ b: X8 f7 W; _第19章 shellcode 分析 372
1 u2 v* A3 m4 o: o3 v
, v& I2 C' p" O, Y19.1 加载shellcode 进行分析3727 h1 B5 ]; N! b8 M0 d
19.2 位置无关代码373  {6 ^4 {$ a$ L' b3 p8 n4 u6 p1 u
19.3 识别执行位置373; m+ V" c' d5 y$ B
19.3.1 使用call/pop 指令374
8 ~& I6 m) O  b% t+ a" x: J19.3.2 使用fnstenv 指令376$ f9 [% w* s3 l, w
19.4 手动符号解析377' \2 T6 E" Z# F8 I
19.4.1 在内存中找到kernel32.dll378
8 {" R: Z3 y" t) _* `, K. Z19.4.2 解析PE 文件导出数据380" a% @. J+ _. B9 c1 A
19.4.3 使用散列过的导出符号名382* {. x7 u( v' \, J! K- s2 ?% S) N$ U
19.5 一个完整的Hello World 例子383
5 T; ^" o9 R2 s* D19.6 shellcode 编码385
; i+ |$ H0 f; V* Z* b19.7 空指令雪橇387( h# ^# o4 z: a
19.8 找到shellcode387: c, t' d4 z4 X$ B8 B  e
19.9 小结388
" k8 t% n& K  _& O7 L& E19.10 实验389, H" V* F7 ~( p1 d4 }
* y) g7 U* `! F$ z/ S# l8 L" z
第20章 C++代码分析 391
. s$ R! H7 C% a( c% N8 p
, l" }% z* F- \0 C+ F20.1 面向对象的编程语言391
5 N! y, s& H& ]2 d- ~7 l) d! w20.1.1 this 指针392( X1 w; V0 d: w5 A* v. c
20.1.2 重载与修饰394
' [# x0 w' y# Z4 U9 l20.1.3 继承(Inheritance)和函数重写(Overriding)3955 S0 q) I. A# ?! f* d
20.2 虚函数和非虚函数3963 ^/ P( V0 C1 R
20.2.1 虚函数表的使用398: {2 F( j5 N* o3 S
20.2.2 识别虚函数表399
/ c- V  J7 a7 z8 Q2 A& O' K- v0 s20.3 创建和销毁对象400- S- \& i* z" p6 }
20.4 小结401
; F$ i0 b+ |1 t20.5 实验401
( c) U1 }# T* b2 Z7 Q% `. b
! E( |! U( Y5 u! p! [  X" _8 J  [  r' Q第21章 64 位恶意代码 403
* H8 X! [  ]5 R( K* k+ M( R2 v8 X4 _
21.1 为什么需要64 位恶意代码4038 B8 j" P. N8 K- V# A/ p& {
21.2 x64 架构上的差别404
5 s" b4 f- P8 T- z2 B1 u21.2.1 x64 调用约定和栈使用上的差别4067 W  g! Q3 D% d
21.2.2 64 位异常处理408  h  p  u" q- \* @7 q
21.3 在Windows 64 位上的Windows 32 位408
" j8 E9 M0 c0 B6 l% k5 A21.4 恶意代码功能上的64位提示409
. t9 E$ w7 f. r! k: ~0 S& F3 z21.5 小结4108 D7 o$ |  {4 g
21.6 实验410
1 @2 Z8 k+ C8 f+ z# l
$ T! l9 \; D% i: Z5 B% u附录A 常见Windows 函数列表 412
1 [; ~& w7 n- s% ]) Y( r, u: X  N; o! o% L: c/ F1 }- v4 z
附录B 流行的恶意代码分析工具列表424
; x3 t7 }: ?6 K  K
6 v3 ~) t) T0 z/ E: X附录C 实验作业参考解答435
9 D" e. k8 k- a: {5 n# P
# o7 G! o" y; O- r- W  v* h附录D 致青春,基础软件开发的中国故事 691
% L  `3 j" F' n+ K2 N
3 z5 n5 p: g2 g0 b4 Y8 C- j: G0 V+ i附录E Syser 操作入门 695
. }+ ^0 n4 z8 n- ]0 y2 F
) j% d6 _7 V* r) g. ]7 s
: \, @% W% Q2 j% _  Q2 g
想知道小甲鱼最近在做啥?请访问 -> 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
* ~+ }5 Q/ C/ U+ }什么编程语音写的?

" ^$ i3 s( N; d' z( z# B! h什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-27 03:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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