鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
3 Z8 w; U+ K0 Q! V, m- n3 D
/ W3 v* o& K4 l
书名:《恶意代码分析实战》' V1 F# s" D( Y7 H8 g3 ^
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
; N- U2 Y4 I) F; f译者:诸葛建伟,姜辉,张光凯
: I8 E! y6 F  X/ G1 ?( w出版社:电子工业出版社
4 D$ N. r; \- V8 |1 Q出版年:2014年4月1日(第1版)) p$ q5 C: _2 j2 ]; ^  d
定价:128.00元9 C! n! W, T5 V( F/ v! g4 N' g
装帧:平装
2 }; o4 I6 s5 t& K# ^& R; ~ISBN:9787121224683
3 L5 C# u$ q# F  N& K( [- p0 P& w9 X8 k. ]6 t
购买链接:6 C8 }- z. W: Y$ g; }
+ D2 E* l4 }7 Y* m: h


  d; u5 T8 s7 E  h/ x7 {* ~亚马逊 -> 传送门
! m! V( x+ ~8 t; s5 X1 q2 i& H# l$ y( r4 x7 |
当当网 -> 传送门% p* H, U( P0 Q9 p+ |3 m

: E6 {4 p5 z7 ^1 G京东 -> 传送门1 s" j# {& L# [  E1 F# ]
( Q$ \3 y3 A6 P% |  X; w$ t$ B
天猫 -> 传送门! |" y( i! n7 L& n7 |+ l4 d) |

* L1 E' I3 c3 m0 A4 k
& _! B# I, ?1 _4 F内容简介:- i$ Q' w. I4 t" \! {  S! B- c
, E9 h6 v/ F# U( n" c- g

' s5 y; t% ?2 a5 U5 B
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。5 f6 S' Z: |8 ~7 J8 a! C

3 Z8 Y. G: k4 L1 t! u《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
" N5 ~6 d' L6 n( u: A% d5 p8 E' e8 B2 b0 _9 [' J
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;5 _% `: R7 H9 U( Z3 l
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。9 }# J4 N6 U& J' y4 V! {* |
$ ?: Z$ V& s- a; d# v
目录:
3 z. P" ~! _$ F, Q7 Z2 w0 Q4 ^' g) f7 C  Q. H+ L+ S. c

: a4 H. f7 ~0 A5 a& r) B$ a( S
第0章 恶意代码分析技术入门1: a) m# P, g0 X- M
4 j' w; s* o0 Z0 C1 i
0.1 恶意代码分析目标1
' \, @5 m: j2 e8 }, S0.2 恶意代码分析技术2/ T1 V9 m/ \# h, f3 l
0.2.1 静态分析基础技术2) F# w- x$ \/ k4 R9 h" x! `& @
0.2.2 动态分析基础技术2
6 [7 @: c( K/ z" ]6 q4 Q0.2.3 静态分析高级技术2  b9 E3 M; {; ^4 U
0.2.4 动态分析高级技术2
9 r1 x- N9 O# B" K3 Y0.3 恶意代码类型3
' J. j4 C% }4 C/ I( d0.4 恶意代码分析通用规则40 A+ T4 T4 {4 o* ~( A
  k' `, A( q0 u3 x

6 F: x) Z5 U& `9 F/ j; P1 h! e$ V5 M第 1 篇 静态分析
6 g5 J/ Z, S+ t- M' e! G: {9 W- {2 C/ ~" f6 G$ g  c
第1章 静态分析基础技术 6
0 c7 w6 e  r2 ^1 n- }# L) G$ Y6 I

, N: g* P" ]& j0 F$ D- k1.1 反病毒引擎扫描:实用的第一步62 Z7 w0 Y! j0 Y' p6 c: k4 }9 o# c) S
1.2 哈希值:恶意代码的指纹7
& P* ~3 T& k5 P# H1.3 查找字符串7+ J3 N! C, \* N" S# t. y* B: k
1.4 加壳与混淆恶意代码9$ B' p: @: ^# v2 ~
1.4.1 文件加壳10
6 O# ]8 \  X) I) _2 C! ^" @% S1.4.2 使用PEiD 检测加壳10! d  U/ G" ?; B! \  G: n2 C# Z$ _
1.5 PE 文件格式11/ _0 [, M0 q+ t+ S" k6 ^
1.6 链接库与函数127 Z+ H# J3 J% ]! ^8 i1 t/ u) T
1.6.1 静态链接、运行时链接与动态链接12
' H! v2 G0 i0 W: J1.6.2 使用Dependency Walker 工具探索动态链接函数13
: N# J* S* Q$ y: P" m' f+ q) v1.6.3 导入函数14" C9 x4 \6 `/ z% }9 H
1.6.4 导出函数15
- p2 r1 j4 a4 ]+ l: J' L: p/ n1.7 静态分析技术实践15
7 Z" v+ j8 @5 J( {3 w$ z! M* G1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
" f7 d/ b1 J- t( u/ a' Y" M' H1.7.2 PackedProgram.exe:穷途末路18
; H$ V3 y4 E! D6 A3 b* p: D1.8 PE 文件头与分节18
* |0 V4 h$ S/ M' o: H7 h1.8.1 使用PEview 来分析PE 文件19
: o: A7 H$ v% t) N. h1.8.2 使用Resource Hacker 工具来查看资源节22
# o4 P7 q3 j+ V! b& B' `1.8.3 使用其他的PE 文件工具238 a) |% d! o3 h; B& k
1.8.4 PE 文件头概述23, b4 d" x3 t" ]; b9 G1 r5 p% u
1.9 小结24
3 w: M* |7 k* D3 L8 R1.10 实验24- {  i% a0 T7 H: f* {0 J  z
* i- F/ M! u( d9 L( E) V8 ^3 @
第2章 在虚拟机中分析恶意代码 27
' X- k- L0 b& u: E1 C* J: D( q4 Z3 z: @- O) X
2.1 虚拟机的结构27
, E0 s. r! E7 ]# A. _  P" S2.2 创建恶意代码分析机28- V: ]/ B/ S- k/ m5 I. N; ?0 E$ e2 w
2.2.1 配置VMware292 s7 o, ?+ [% C' W: C
2.2.2 断开网络30
* D7 z; G$ m3 ?) a3 v* Z+ r  O2.2.3 创建主机模式网络30
0 w) H5 Y+ k* M" K% F2.2.4 使用多个虚拟机30
8 S+ Y: G! `# n! N6 j, q1 o& S2.3 使用恶意代码分析机314 J' Z8 l' H6 H( c  [: }5 Z
2.3.1 让恶意代码连接互联网31& A# m( b  N0 V% Z
2.3.2 连接和断开外围设备32% d6 {& K# J  \* i9 z& Q
2.3.3 拍摄快照32
' S! R+ t4 Q7 _/ p% Y7 n7 C2.3.4 从虚拟机传输文件33$ L' k. g) F$ B+ ?8 R
2.4 使用VMware 进行恶意代码分析的风险34
+ B8 f) C. `8 G2.5 记录/重放:重复计算机运行轨迹34( P, E" z1 I- l1 x
2.6 小结35
* {, s; G2 o# y' C' O# b* m2 @2 X
第3章 动态分析基础技术 36
6 I4 e, }6 X1 _( F6 v. [
8 u  {. G+ A3 z6 Y2 T4 ]$ }; Y6 Q3 Y
3.1 沙箱:简便但粗糙的方法36( c/ j4 u. D* V& c
3.1.1 使用恶意代码沙箱36
9 ?/ e' v* Y( _! b( e, j- @$ v3.1.2 沙箱的缺点37( G* p2 D; X  q/ ^, a
3.2 运行恶意代码38" _7 V( i' e3 P2 C1 ~
3.3 进程监视器39# ]$ Y0 ]" P: ]" y+ l0 P# g7 L8 i
3.3.1 进程监视器的显示40' f/ c9 o8 V3 f! r+ K# J6 l( ?, K* T
3.3.2 进程监视器中的过滤41
' [+ G, @: ?: O" c6 f0 g3.4 使用进程浏览器(Process Explorer)来查看进程43' h; T' j; @! \
3.4.1 进程浏览器的显示436 U( H  G; F# n& s7 o6 r0 \
3.4.2 使用验证选项44: z( S( V+ z# h+ o  k
3.4.3 比较字符串45  V; J& U& b6 k8 f9 ~8 q/ g# r
3.4.4 使用依赖遍历器(Dependency Walker)45
" ]4 F# p9 s/ Q9 _  L( C, X3.4.5 分析恶意文档461 M$ T( D; x' G3 a) M
3.5 使用Regshot 来比较注册表快照46
0 d+ Z! c$ _2 R/ ~- s3.6 模拟网络47$ B- R0 ]3 o6 ^* `1 @+ F
3.6.1 使用ApateDNS47. i2 n/ t0 {; b) Q& ?9 P  G
3.6.2 使用Netcat 进行监视48
. Q8 y+ j8 T) b  w  I  c3.7 使用Wireshark 进行数据包监听49
+ }7 u' h! C5 F' x6 f) g3.8 使用INetSim51
5 t' t0 l4 M) P6 I9 {) G3 d3.9 基础动态分析工具实践52% b4 s' E+ ?5 d0 O
3.10 小结55& }2 N4 c% ^# Z& I
3.11 实验56
  ]- ?9 \- {, S# }9 u  {9 ^6 P- P( U) S
3 V  ^6 p$ f* m! t3 p
第 2 篇 静态分析高级技术篇
& [  Y4 c+ g' E: ~  y, a% @" n! Z: b" G6 g/ Q0 M
第4章 x86 反汇编速成班 60; @& ?' M# p5 _- Y
" T! x, O8 I# W: I' Q/ m
4.1 抽象层次606 z  I5 ]4 `& B) Z
4.2 逆向工程62" p$ U7 e0 Y0 t5 F+ j" c: o
4.3 x86 体系结构62$ o8 v; J& E: p
4.3.1 内存63% B- q  Y# L# s
4.3.2 指令64
% i  o" |0 A  @; J6 B9 L5 o4.3.3 操作码和字节序64
! Y* H7 j+ ^/ r4.3.4 操作数65
% r4 N+ q+ P1 u. {, M5 U* W9 w4.3.5 寄存器65  V+ o6 v% O, _) W
4.3.6 简单指令67
- H* g  L( L) D$ j4.3.7 栈703 q; Q( ~- h: N( {- h6 t0 h
4.3.8 条件指令737 [4 p: L; S2 e
4.3.9 分支指令73" ]5 F; L# m' [5 a
4.3.10 重复指令74
# K9 M3 j( E5 Q- a' \. q4.3.11 C 语言主函数和偏移76
% P1 b, e+ N0 c1 H% E. j( [4.3.12 更多信息:Intel x86 Architecture Manual77
: n) \, y' O' K) T: h& R4.4 小结78
6 a& `$ ^, f  Y! ?, a9 U$ f5 L+ F4 a; J
第5章 IDA Pro 798 ?4 ?0 F  Y8 P* c1 B( T9 w& [( C* A

7 o8 O1 }0 m: }% z5.1 加载一个可执行文件79
) \  W/ f1 x( \5.2 IDA Pro 接口81
3 o3 U/ U2 c- B5 `' {! _* E5.2.1 反汇编窗口模式816 |2 w( k/ T, o, ?8 ^
5.2.2 对分析有用的窗口83
6 S* i# R6 B3 c7 X5.2.3 返回到默认视图83
* ?8 a! m( c' }/ m2 Z% h1 X  `( o5.2.4 导航IDA Pro 835 s$ L6 R# m0 t( y" L
5.2.5 搜索85
& Y/ M) Q$ |8 ?4 e) D5.3 使用交叉引用86
0 A( x( d+ b* V4 U1 n7 P5 I* M5.3.1 代码交叉引用87' [0 Y- h4 }2 S
5.3.2 数据交叉引用88
  e! b+ G- H$ q' s! |- h3 G5.4 分析函数88
) s/ W0 O/ z" o! h, l5.5 使用图形选项897 `) F4 A6 h! F$ x1 f/ u; p
5.6 增强反汇编91% [0 P) v# _: {7 R" G
5.6.1 重命名位置91) \) J7 M6 j4 f5 J7 b; O+ I. F
5.6.2 注释92  c0 h) M- n9 n' Z# F. z1 t
5.6.3 格式化操作数92" k: @6 }' d! r" y: A& a, k2 f
5.6.4 使用命名的常量935 R8 r! i. k% b  i# Q
5.6.5 重新定义代码和数据94
+ Z' ]. {% M, G  V! x5.7 用插件扩展IDA95; ~# w: \, ^# i4 n: \1 x
5.7.1 使用IDC 脚本96/ Q% r" v& b7 e
5.7.2 使用IDAPython97
/ A8 U& j! \+ D9 V- I5.7.3 使用商业插件97
! G( `* R0 G! L1 y; r9 D5.8 小结98
. h% }8 W! T' M, Z# n1 |5.9 实验98
! u6 C* V8 T5 ^* a: m9 h6 b+ ?3 O8 p0 Z5 c$ L9 H, S7 l$ s
第6章 识别汇编中的C代码结构 100
7 I( J4 i8 D$ C) @
. K/ K. v; h! V7 w
6.1 全局与局部变量1010 v  V+ C5 P$ g5 d
6.2 反汇编算术操作1022 v& ]6 g9 Y& O, X: f: R; _
6.3 识别if 语句104
# l) E2 D' l5 L3 a7 x6.3.1 用IDA Pro 图形化分析函数105
5 `5 ?# X8 v4 V' U' g6.3.2 识别嵌套的if 语句106. [. M+ }% Y" ?
6.4 识别循环107
8 y1 Z4 \5 n  j; [6.4.1 找到for 循环107
0 l, @* `- K! F2 Z2 V/ ~, a6.4.2 找到while 循环109
! O$ a/ Y/ K, m' N/ F6.5 理解函数调用约定110
/ ]9 ~% w% \; ~) Q: J2 k5 ]6.5.1 cdecl110
5 {7 |) g7 v' @; D6.5.2 stdcall 1111 J1 q8 y, N2 X, O" p; D4 O
6.5.3 fastcall 111( N, s8 k. [; Z+ V9 ^* s) ?
6.5.4 压栈与移动 111
/ p( S7 `7 Y" s- X* Z; h& r6.6 分析switch 语句112
" z% ?1 o" h+ D3 C6.6.1 If 样式112  [1 f- g3 d. X
6.6.2 跳转表1143 x8 y6 b" J0 m4 }9 ~' Z
6.7 反汇编数组1180 v4 P3 B1 U5 B& Y8 E
6.8 识别结构体1196 W& o  k" U4 o6 a
6.9 分析链表遍历121
6 e( `+ Z0 Q- x2 I4 M6.10 小结123' X' R, S+ |( e3 ^- N$ a# a* n
6.11 实验123) b; ^6 j2 @5 C

$ C7 @- @  @5 I- O* G7 F- c; O第7章 分析恶意Windows程序 126
) m1 @2 v1 q+ D0 t- F
2 P4 T1 D' j0 X
7.1 Windows API126* u1 j6 T, Q6 i  N
7.1.1 类型和匈牙利表达法126& u: Z( T2 X5 p( g' ^" {: O9 R9 D
7.1.2 句柄127! C: [+ F- [/ I0 b9 G( |: L
7.1.3 文件系统函数127
9 a  w6 u; ~$ V' r% e( _) O( s7.1.4 特殊文件128
" v. B" l+ ~" b( [' T/ |7.2 Windows 注册表129
# j0 g- K7 S& z7.2.1 注册表根键1305 D# l6 ^- V" ^3 ?* K
7.2.2 Regedit131
* J6 J1 z8 q- q# o5 N7.2.3 自启动程序1312 v+ ]( o, z& S1 k% u, z' Y9 K
7.2.4 常用注册表函数131/ F. |5 `  K. Q+ }4 N* `
7.2.5 练习分析注册表操作代码1324 H9 w& l, y0 K8 q+ r% p# h6 H
7.2.6 使用.reg 文件的注册表脚本1332 W  w- a5 e, N: u
7.3 网络API1337 ~+ {9 {5 Q- x4 [; l, K# a
7.3.1 伯克利兼容套接字134
: ]: R+ J1 k" z! e7.3.2 网络的服务器和客户端134' m* G7 y' S) O& D& l) r
7.3.3 WinINet API 135' L3 u$ C% C/ V& K, O% U9 ]) E
7.4 跟踪恶意代码的运行136
5 [: ]' O" R) @5 j2 ^7.4.1 DLL136& l. C- ^" ~5 G7 N  k
7.4.2 进程137
( D+ G; H. B: u' |7.4.3 线程1394 C8 E, ?7 @! [7 d8 K- M/ [
7.4.4 使用互斥量的进程间协作1424 }+ o$ N# ]; p
7.4.5 服务143
$ I- u+ p' [4 T$ l7 \) [6 j8 R7.4.6 组件对象模型145
/ S8 i( e& I9 Z8 j* h2 K7.4.7 异常:当事情出错时147) i; W; J$ v, W  q5 \
7.5 内核与用户模式1484 I4 [' x$ a6 b/ _
7.6 原生API149
& S& m2 I. y) m  N: w4 E; @7.7 小结151( b0 F7 c0 O+ H9 y1 p
7.8 实验151" ~, O9 |1 s! B6 ~8 V% k0 Q2 v

/ y7 E) T# z+ y) G5 x  _0 \
0 j; A7 B* e) R第 3 篇 动态分析高级技术篇" _! S* H& [4 B& l! Q5 L, p, _

7 C1 w/ t. |( D第8章 动态调试 154

! g' l" w. O- ^; g& @; ]8 V* c, |( p0 s% g9 \' l- ^
8.1 源代码级与汇编级的调试器154
' s2 [1 T* y1 f3 ~, P- h8.2 内核模式与用户模式调试155% _/ y8 B) x. m0 ]% x9 k3 Z: `
8.3 使用调试器155
) a% Y. l" k( B/ T8 r( C  K/ @  F8.3.1 单步调试155
. F. e* @2 H3 }9 s) A/ [& J8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
* W8 i" f) l5 n' e( \2 n% S8.3.3 用断点暂停执行1578 k$ E  m/ t/ L- v: v
8.4 异常161
8 W( G- Y  |/ J8.4.1 首次和二次异常处理162
/ R% s' |- N+ O; a$ x) `8.4.2 常见异常1625 z+ f) n2 n- d- D9 j
8.5 使用调试器修改可执行文件163
% f7 a' i* S, a8.6 修改可执行程序的实践163
4 h1 w' ^. a& g0 i6 `8.7 小结1644 e. V" o5 B+ l+ F, d" g! b- B) A

. A. v8 u5 _+ @# F  i6 ?$ @第9 章 OllyDbg 165

- ~5 m! I1 @! A8 R) _8 j( V
7 j, |" }- e  U* z9.1 加载恶意代码165
# v8 h& y. u4 }9.1.1 打开一个可执行文件1659 `* O6 l7 S2 l5 l
9.1.2 附加调试器到一个运行程序166
6 q8 r, E* g3 H7 s6 _! h3 z9.2 OllyDbg 的接口167
* n8 {4 |  B$ a- s$ n9.3 内存映射168
% u* [% H6 o- e& g9.3.1 基地址重定位169
4 I3 T/ M6 `5 o1 T7 d0 x9.4 查看线程和堆栈170$ ^; q+ i$ T/ u1 j' e. Z0 E" Y  W, ?
9.5 执行代码171
/ I2 [4 C$ i1 D6 a9.6 断点1728 d* v  s- `: ~; h
9.6.1 软件断点1732 D: I. ^" f3 u7 C6 R( g
9.6.2 条件断点174
1 r. ?: g  \% k: J9.6.3 硬件断点175% v( H% O8 Z2 Q% |
9.6.4 内存断点1754 z1 m' I& x) k. P, U1 K
9.7 加载DLL176
  e: I2 B$ t# g& m9.8 跟踪1776 e# }5 _  i" I) u
9.8.1 标准回溯跟踪177
) t# G3 `" \& f4 Z9.8.2 堆栈调用跟踪178
& K4 I& ~9 t6 m% I  [9.8.3 运行跟踪178' g' I2 l5 I5 @& |2 O# g/ I
9.8.4 跟踪Poison Ivy178
' B+ s2 w1 m" ?1 C4 c* Z! K" g4 n9 a9.9 异常处理179- I: v1 m: h0 h5 L' h% z
9.10 修补180
+ {2 ~, T  p+ V( e9.11 分析shellcode1817 g9 ?+ Y4 `- o# e
9.12 协助功能182' A0 P7 V, ?$ m' b
9.13 插件182
1 A( f# \( n2 w; E9.13.1 OllyDump1838 l7 T) k9 X# E4 t( j+ a
9.13.2 调试器隐藏插件183
+ i5 e; Z1 S& p+ C7 d& W% h9.13.3 命令行184  K% ~& @# X+ U1 }* h+ s2 U
9.13.4 书签185) n" }% P* X6 V3 G3 l; ^# t# v1 g1 H
9.14 脚本调试1854 C/ C) `' g/ d3 Z
9.15 小结186$ F# T* W: [) O# {' {7 s
9.16 实验187
1 {5 w1 s: d; m: R  X9 N9 ^: n0 z* M
第10章 使用WinDbg 调试内核 189
  r1 w, O* W  D! c. L# f7 ?' B" E# G! d2 s" [' [3 f/ s9 S9 _
10.1 驱动与内核代码189; K6 G* D' p: y/ Q* M
10.2 安装内核调试191! `: D) w( {! y( y' e4 u0 K6 B
10.3 使用WinDbg193
7 y) W* i- m1 K0 Z8 t8 }2 t10.3.1 从内存中读取194
+ c% z* H. c% h! o& \$ H10.3.2 使用算术操作符194/ F+ o3 i$ \& u( `  p4 G
10.3.3 设置断点1945 }# T7 n% S! ]9 D) d! o
10.3.4 列举模块195. e4 w3 }- D& Q2 `; s- ^: l
10.4 微软符号表195
. r# r$ b" |6 S( D( d) `10.4.1 搜索符号195
5 J& a. h# p- A+ M# k" Z10.4.2 查看结构信息196
9 E$ G; e+ [; }) F7 q10.4.3 配置Windows 符号表198  s2 U7 Q, n) {$ D: T% E! ^8 l
10.5 内核调试实践198# X$ y9 s/ G2 k$ K
10.5.1 用户空间的代码198
1 R$ K7 ^+ k! i6 s" _* Y6 h10.5.2 内核模式的代码200- u' |  K$ a# x2 x
10.5.3 查找驱动对象203  N; Z* z/ j) C4 J* L7 r" C
10.6 Rootkit204
5 ?* j6 U% B6 l10.6.1 Rootkit 分析实践205
9 g, `# I% u, D10.6.2 中断208
1 }: E+ P" U4 p" t7 \10.7 加载驱动209' N8 `7 d5 O4 ^! x/ u
10.8 Windows Vista、Windows 7 和x64 版本的内核问题2096 A( ~$ L( E) h6 ]4 U/ _
10.9 小结210
/ o7 u1 J2 `6 ?7 l; i& c, ]. P10.10 实验210- z/ J/ ~4 A, P; W, s( @
) t2 a, `, C. w9 }7 x

4 Y8 t/ J( t; m0 F第 4 篇 恶意代码功能篇& K" C+ _3 x  H  t7 Z
1 A2 f5 P0 N( |/ R0 e
第11章 恶意代码行为 2144 O  P3 T: T4 p  v' D( i# ]
4 e! J0 A# |6 a$ E8 ^+ v
11.1 下载器和启动器214: d& ]* Z' @, J4 a5 c
11.2 后门(backdoor)214+ g5 }" x6 W4 W- n, R* u, @; x
11.2.1 反向shell215* w2 C! d& q' ^/ }/ }
11.2.2 远程控制工具216
: X0 }( l& f" _( x- t: s2 h3 n11.2.3 僵尸网络2160 F7 [9 a: {( [/ _% ]' @4 [7 Z6 R) U
11.2.4 远程控制工具与僵尸网络的比较217
) c( K) h, ~3 j' d0 X8 s11.3 登录凭证窃密器2175 D6 y# o/ E4 r# ^
11.3.1 GINA 拦截217
) ?) V( f. I; n1 M11.3.2 口令哈希转储218
. I: Q. v/ U7 l/ j4 G! [11.3.3 击键记录221
. D& r9 E# o( U11.4 存活机制2238 m  l4 o5 h) x9 V' T* Q
11.4.1 Windows 注册表223
) E8 P; j' e7 q  S11.4.2 特洛伊木马化(Trojanized)系统二进制文件225+ b  Z! F; W3 z% A; w' S4 g0 F$ Z
11.4.3 DLL 加载顺序劫持227
6 h7 E" J: ?- v7 \( a$ W) ]' F; v8 g$ C11.5 提权2283 ?+ r4 A% j" D$ u  Q! q
11.5.1 使用SeDebugPrivilege228
( {4 Y. N/ B7 Q, J11.6 隐藏它的踪迹——用户态的Rootkit229
5 K" M0 `6 R9 O11.6.1 IAT Hook 230
" M% L4 j! B6 c% a+ {$ e  }11.6.2 Inline Hook 2312 u) C/ h+ [' z- J! m9 w
11.7 小结232. ]" E, D( V9 ?1 m. u  k
11.8 实验232! E4 A  J' Z9 `) P" u9 I6 z0 J
" t8 f) i$ ~7 v- Y2 i' H. V
第12章 隐蔽的恶意代码启动 234
0 {% T* Z; `6 R1 h6 u) c! v; p+ o- F
12.1 启动器(Launcher)2348 A# y. c- V; F  T: U
12.2 进程注入234
$ B8 ^6 K9 [2 W8 Q12.2.1 DLL 注入235
* h8 f/ N, W( |# X2 ^, t12.2.2 直接注入2379 o  }3 B- {, [3 @8 Z% M
12.3 进程替换2384 i) E7 F& V, G; e6 y' l5 t
12.4 钩子(Hook)注入240
! ]% i) C" x6 M* {12.4.1 本地和远程钩子(Hook)2409 M# {' D/ }+ O( S
12.4.2 使用钩子的击键记录器241
" w' q5 o1 w. Y" X' \12.4.3 使用SetWindowsHookEx 241
: j3 `* R' y3 `! C! L12.4.4 目标线程241
7 J9 _2 P' c6 [* c! A- a12.5 Detours 242
  O) U9 H' ^  Q  v2 k& @- t9 h: \' t12.6 APC 注入243
5 R8 m8 K; ^1 d3 Z12.6.1 用户模式下APC 注入244+ i* w" ]% G6 O" _7 i0 J
12.6.2 内核模式的APC 注入245
! E2 T2 q1 w4 Q12.7 小结246$ y  i7 {9 J# {: P
12.8 实验246
' E2 R, ]( p1 Z' L# C: n9 s3 }
6 l& z. a2 Q5 r% r/ w, F第13章 数据加密 2483 Z; p% d1 I6 q1 k( @+ g/ {3 b

) x  |9 v" ^7 H9 U- `13.1 分析加密算法的目的248
& x4 G. P1 m3 w( J$ ?13.2 简单的加密算法248
/ c* z( b7 ?* t$ D  T( H' W( V13.2.1 凯撒密码249
1 _+ a5 ?$ ~5 B, ]) P. T13.2.2 XOR249# f0 u! _! z3 b9 w+ Y* U7 p
13.2.3 其他一些简单的加密策略2545 @) H/ T! A% n; S- G. {
13.2.4 Base64255& O. i5 }, d( @1 N7 v
13.3 常见的加密算法258  p4 A/ Y* ]5 x% O' k. E
13.3.1 识别字符串和导入259& [6 k9 n5 L# D" S/ ]+ u
13.3.2 查找加密常量259
6 W" ?- _1 e$ M4 z, V2 v13.3.3 查找高熵值内容2612 s5 C' d  l2 Y) A7 R7 B( [
13.4 自定义加密262
7 j, G8 }1 q$ a13.4.1 识别自定义加密263/ v& x( u& Z# Z- w' G
13.4.2 攻击者使用自定义加密的优势265) H$ h! |# a6 N9 I1 C
13.5 解密265" j; J7 {: U& v9 H" t
13.5.1 自解密2650 i5 B: K. U5 z5 s
13.5.2 手动执行解密函数266
+ w0 i7 K& N+ w* Z" B13.5.3 使用通用的解密规范267) U/ m5 L) G* b, N8 O
13.6 小结270
# o  s4 X8 p) y( |2 x+ m( P1 o13.7 实验271
+ r0 O0 h4 T( m. U) a* M2 J1 O  F0 Y% |9 u$ N
第14章 恶意代码的网络特征273
) u3 t* l2 J7 ^$ c# ?: Q$ X( R
( Y, q0 N3 \0 H# x# a9 t14.1 网络应对措施2730 M3 ^' t: O" Z' n- Z
14.1.1 在原始环境中观察恶意代码273
; s$ ~) Z1 [$ t9 y14.1.2 恶意行为的痕迹274
3 _: `% K# q- u2 ^5 Y3 D14.1.3 OPSEC=操作安全性275
. u, S# b  p+ s; h( ~14.2 安全地调查在线攻击者275
1 \$ n9 l3 }- x3 K14.2.1 间接性策略275$ @  \: H+ Z7 V' R
14.2.2 获取IP 地址和域名信息276
: O) \- f, V+ ?2 D9 h& y14.3 基于内容的网络应对措施278* `% U5 B$ h, \2 {  {
14.3.1 使用Snort 进行入侵检测278
% }* M/ M6 V& e, t/ t. E. R6 U14.3.2 深入观察279
, P; l; [( `' M3 z5 I" F0 z14.4 结合动态和静态分析技术2827 W' M$ l- j9 {
14.4.1 过度分析的危险2831 L8 @. x# E  i% U" ~/ c9 X1 B3 m9 T
14.4.2 在众目睽睽下隐藏283
# @2 W; u* X" U% ]) E14.4.3 理解周边代码286  F0 g1 e, s" t4 s* t+ e
14.4.4 寻找网络操作代码287
& K: W+ |' a1 Z% I$ a14.4.5 了解网络内容的来源288
4 [+ X" G$ V  ^; M# _6 \; q3 `- u14.4.6 硬编码数据 vs. 临时数据289
  @; p: G! z. c+ |3 B14.4.7 确定和利用编码步骤289) Z/ L  |) U' ]8 P
14.4.8 创建特征291# l) K  B7 q' q9 o8 C, r
14.4.9 分析解析例程292
& z0 W' B/ z! I0 T! K  Y  d14.4.10 针对多个元素2945 C. I& o* y- b' v( y
14.5 了解攻击者的意图295
4 G6 {6 h9 x5 ~14.6 小结296
1 {  S3 S: {0 a9 ?3 U14.7 实验296
2 \0 l& A! |* l: `7 X% M$ t7 l# x6 g2 D5 {

( C9 O' I1 w2 h3 r第 5 篇 逆向工程
) D& I. ^6 P' R! O  @# c
  M9 t/ ]4 H- `6 u7 ]* q第15章 对抗反汇编 300, _( B0 g' _& f8 N) @7 x

' j8 f" M$ n) h8 s* g8 \15.1 何谓对抗反汇编技术300
2 U9 C5 ]  U# C* E/ I15.2 挫败反汇编算法301
1 l  |: b. _1 }  A+ _( a15.2.1 线性反汇编3021 g6 d, S0 Y  o8 k- x
15.2.2 面向代码流的反汇编303
$ x; {3 C# q+ n8 Z% Q# d: j15.3 对抗反汇编技术3069 [9 r, s$ B  `- c# \' U
15.3.1 相同目标的跳转指令3068 y8 p+ a- Q) f/ y  {/ t
15.3.2 固定条件的跳转指令307
. H' \9 s. h# z" D, y0 P15.3.3 无效的反汇编指令3082 r# `& Z, ^+ c! I- V/ W7 F
15.3.4 用IDA Pro 对指令进行NOP替换311
$ Z9 m. Y9 p$ p8 p$ R5 i15.4 混淆控制流图312: ~6 ~1 w& N! \8 i8 C
15.4.1 函数指针问题3126 }' N2 Z% @: T2 z: S: Q) l$ u
15.4.2 在IDA Pro 中添加代码的交叉引用313; E  D' k0 y. K
15.4.3 滥用返回指针313: `8 J9 S' w/ [( h# t, w% o/ h
15.4.4 滥用结构化异常处理315
% O: w# u; c0 Z! d15.5 挫败栈帧分析317
- _3 h" x5 G. ~/ P3 a15.6 小结320
8 i8 T5 E" B+ j6 T7 o! X15.7 实验320% v# E. c9 E- o1 s3 x
/ m4 T% o2 e; _9 e# e5 H
第16章 反调试技术322  _" x- l9 u% b, ~

) z+ q6 |/ V! b7 d9 L' E16.1 探测Windows 调试器322
. Q' e8 F' p3 V! i% F/ o/ h& _  v2 G16.1.1 使用Windows API322
. `: R1 {. m7 _7 \7 m4 F16.1.2 手动检测数据结构324/ L) h1 T0 |" Y+ H# r
16.1.3 系统痕迹检测326
, R7 b; z" L, y$ x$ D) O16.2 识别调试器的行为327
/ r8 U# _/ Q4 J1 Y! g# E16.2.1 INT 扫描327
/ v& W4 E8 d6 @, h" m/ N4 `; _16.2.2 执行代码校验和检查328* N9 n% g, N+ L" J) `
16.2.3 时钟检测3289 v* t8 h$ O" ]" ~
16.3 干扰调试器的功能330
2 P4 f, C' o0 i16.3.1 使用TLS回调330
* t" ?7 g) C1 S1 E$ R% t3 X; g16.3.2 使用异常332( d$ F% R0 ?; [6 |
16.3.3 插入中断3334 t  s- X! i7 ~$ j$ t" L0 v. \0 I: E
16.4 调试器漏洞334
, E3 I& ^5 @; H0 h+ C16.4.1 PE 头漏洞334
% y  l4 c7 z$ K16.4.2 OutputDebugString漏洞336
" N# _- C7 @, y7 @16.5 小结336
! ]* |2 a6 C* O8 J2 b16.6 实验336' K2 @2 _" \. y: ^: r* Y

  [  q0 H( D4 l7 ]& L第17章 反虚拟机技术 338
) V. X/ r; V) g( f
  E  x- D6 G+ x17.1 VMware 痕迹338
2 a' c( G1 h& o( P/ D17.1.1 绕过VMware 痕迹的探测340: |4 _. l. [* o8 A
17.1.2 探测内存痕迹342
, A! z- e9 n% {5 N3 t17.2 查找漏洞指令342
) g' V# L6 F& @4 `4 B9 I5 ?) @17.2.1 使用Red Pill 反虚拟机技术3430 s, n$ U4 D$ r/ B$ Y
17.2.2 使用No Pill 技术344' y& M. p# w2 G3 D5 Q! z* C# V/ |
17.2.3 查询I/O 通信端口344
9 A8 ?" q5 N- v8 h( U17.2.4 使用str 指令345% T$ w0 `; r( K7 P, D
17.2.5 反虚拟机的x86 指令346
; N% Y! D% m4 r17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
' a) ~! X! g5 A; ]; b17.2.7 使用ScoopyNG3472 C' S- l6 p8 `! I1 Y/ y
17.3 调整设置348
9 T) t  M. \" v17.4 虚拟机逃逸349
5 M4 C- q9 K4 x" f3 }  R17.5 小结349& E% B1 J2 C" S+ d8 T, c
17.6 实验349
2 W+ ^6 C) A4 p( o) S2 N5 ~' b: L' z! u3 }
第18章 加壳与脱壳 352+ o0 k* _( c. b5 a# Q
% |8 y! h. O* V! ~. v
18.1 剖析加壳352
. n9 J* S/ W, C3 S1 C3 r18.1.1 脱壳存根353
* Q* h& U% w6 H! e* K8 I2 R18.1.2 加载可执行文件353
- V! E# Q( a9 x6 C. @3 v) O; J% h+ \18.1.3 解析导入函数表353+ P* L' W7 [( A" k
18.1.4 尾部跳转354  [/ g/ W0 m* A4 x
18.1.5 图示脱壳过程354
8 d% Y0 ]0 {  N) A18.2 识别加壳程序355
0 w; y, L/ N6 K% p18.2.1 加壳程序的标识355! S4 w: H9 v+ G9 P
18.2.2 熵计算356: C) M' n5 E+ ]3 E
18.3 脱壳选项356* P! B$ i$ B. \6 r
18.4 自动脱壳3562 q& b0 H7 B$ I
18.5 手动脱壳357
5 A! U8 s7 L/ E% G# y- v! A! H+ X18.5.1 使用导入重构器重构导入表3582 B/ ^0 Q# m4 _* a- u
18.5.2 查找OEP359/ U( ]1 b* s9 A. q5 u; Q3 I0 F- p! g
18.5.3 手动修复导入表3639 e8 t4 n, K# H! R
18.6 常见壳的技巧与窍门3646 g8 K5 f2 o8 R$ e7 `, e, V
18.6.1 UPX 364
2 e% t0 J& s& d3 B' F2 }18.6.2 PECompact 365" j" J5 y8 _( P$ h' p3 c
18.6.3 ASPack365" b; N  o4 e- b6 T7 J  s
18.6.4 Petite 365
; X/ `5 g  [- Z% e1 }( {3 t& p18.6.5 WinUpack 366
, Z( i& H+ M0 b9 R4 c18.6.6 Themida367; `8 @& o" n2 w" F! p3 D
18.7 不完全脱壳情况下的分析368! s/ s9 ^. ]; R2 O! o1 d& ~
18.8 加壳DLL 3682 b: O, w( `6 T# ?% N. a; c* l) P* T( a
18.9 小结369' J& D& g- G9 i! C% j8 {
18.10 实验369
, E9 O- l0 \/ i; r. C; P2 H6 q! o' @; s, Y& z

4 X- U* m: L* V) F- C/ O' y: j: i第 6 篇 高级专题
3 S) u( k# l5 h6 B1 G1 w' g: b
2 y. g) f! U3 o8 h* b$ Y第19章 shellcode 分析 372
; m3 w. t' I! u
; u) @1 z: R5 O3 k6 n- l3 Y19.1 加载shellcode 进行分析3727 @& `- Y3 b: c' ~3 k
19.2 位置无关代码373
; e/ K" e& u3 v# M+ ^19.3 识别执行位置373" m7 U- r! B% i' O, a
19.3.1 使用call/pop 指令3741 w6 V$ ~1 [' j; M$ `% w
19.3.2 使用fnstenv 指令376/ i' t3 A* P8 y7 L2 ^
19.4 手动符号解析377  q. V3 s# S2 g7 `$ i; x6 j6 B: ]
19.4.1 在内存中找到kernel32.dll378
9 O& m9 _& h3 \! r1 l, O2 S19.4.2 解析PE 文件导出数据380
% S( E$ I) ?5 Z# |6 o# e% ~19.4.3 使用散列过的导出符号名382! p: Z8 ^! I' a( u, k
19.5 一个完整的Hello World 例子383
+ O8 p, U. E3 }- T0 w3 b! _$ y19.6 shellcode 编码385. i  C6 l( q/ I) X( x0 I6 ]
19.7 空指令雪橇387
( N* \3 T. D: Q" \" P9 J19.8 找到shellcode387
/ c" E' B5 t4 d. U19.9 小结3880 `, M- w; w) }# e
19.10 实验389
# w* H: G, k* ?& [2 t
9 P/ k+ o7 o, I; l$ n$ Y- P; m( A第20章 C++代码分析 3913 H' o& y& v* W& I- n; I2 l# p
2 p: f/ c1 x" u8 j7 J0 V- b( c) M1 `7 _
20.1 面向对象的编程语言391* ]7 x2 ^0 F: W  D. b- J5 x2 N8 k
20.1.1 this 指针392
' l1 T$ u/ O8 Q1 h$ w7 l20.1.2 重载与修饰394- W. ?; v3 S; Q+ k8 l( V9 J+ r; L
20.1.3 继承(Inheritance)和函数重写(Overriding)3952 D" ~4 D! g# ~, }6 }" {" y
20.2 虚函数和非虚函数396
. n1 Y' s+ _* u& D20.2.1 虚函数表的使用398$ [; _; S) O! o) b
20.2.2 识别虚函数表399
" [# E' M/ V# O8 y! |6 S& p! n20.3 创建和销毁对象400
+ F' t5 A8 A3 W$ s$ G20.4 小结401& T, _2 N( m, n: v3 F
20.5 实验401! i& o! O3 y% G' ?" {& v5 h

" W5 Y* u' q. s* L# P8 q- m$ K第21章 64 位恶意代码 403
2 D: p3 a) z7 t0 a
  w- V$ g' q& ~; q+ Q- I21.1 为什么需要64 位恶意代码403
6 c* M/ `) U* a# ^; C6 z' Z21.2 x64 架构上的差别404
- K0 l6 |1 Z( g8 c9 c21.2.1 x64 调用约定和栈使用上的差别4062 v# u4 L6 x# w9 q+ ^& c
21.2.2 64 位异常处理408
8 c. n1 ?" A- z3 a2 T2 n21.3 在Windows 64 位上的Windows 32 位4084 H( T; D7 I! {; q& z0 F& a
21.4 恶意代码功能上的64位提示409
6 ]9 p8 D" F6 N1 D5 x  j21.5 小结410  k6 z$ q8 a) _$ P+ a* }0 k
21.6 实验4109 s" b! N5 m9 Y) \, t* Y

1 o2 Y) d3 o$ u# X附录A 常见Windows 函数列表 412
3 ^* O% t* o. D/ Z; @' F
/ n# E: I; j) a附录B 流行的恶意代码分析工具列表424
+ [5 \) b* N( J" i& l2 S" s8 v8 b! V0 r* `8 J5 Z- z7 t0 m& h+ u
附录C 实验作业参考解答4358 o+ \1 I; B" A5 Q/ V& U9 b0 p( {
5 u8 J( C  v1 r$ V4 z9 P1 D
附录D 致青春,基础软件开发的中国故事 691
! o8 O) i7 j( _( D" z( r: R: Y0 p8 B6 Y5 G3 F& p$ u
附录E Syser 操作入门 695
  _$ {- M0 l: m# a7 o  }/ j5 j3 ^" |% a
3 p, E: D' m- _& f3 m
想知道小甲鱼最近在做啥?请访问 -> 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% m- M# A4 P" r- a; T8 w; Q1 o! \
什么编程语音写的?
! D* ~) Y" ~( i: ~; E# F4 o
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-8 07:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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