鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
$ \. g# Z: G( Y0 K9 p' `
9 n% i- p  W/ D5 h* C" z# T1 Z
书名:《恶意代码分析实战》
+ M9 g, ?( P( A& D0 ~+ u作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
. G4 C; ~+ _5 S2 }! [1 g# w4 ?译者:诸葛建伟,姜辉,张光凯 3 A6 @$ p, x# N. C
出版社:电子工业出版社
* Q: S( O/ y. B出版年:2014年4月1日(第1版)
5 R2 w5 C6 P6 e! ^1 G定价:128.00元
1 o7 r( \7 b, W  w  w装帧:平装
! L! u' ]; e9 p& gISBN:9787121224683
; y+ |9 d& @4 Z0 x! K& C+ f1 x3 P. a* c) n& |- F# W
购买链接:
* x9 P* t9 O" o$ G7 ]
' x* L! A* a) t9 p% R* H" K

" }0 _2 H/ J) A- [亚马逊 -> 传送门' C0 y3 C  D  s& S, X' ?) I0 @
* G# n& R/ N6 _0 M' U! t+ h2 h3 ^
当当网 -> 传送门4 ~! H- N1 j3 f1 Y* Y

. t4 x  }3 L6 A3 ?0 ^# d. |京东 -> 传送门
7 Y$ k2 ?9 T7 @; m* s9 A, |& S
  P4 O; A/ G- W; ~8 Z天猫 -> 传送门' C1 f) p% w; N+ p& B$ F
( W1 w& {% U- x( q
1 W! p3 ^5 G, U4 u8 i' n8 a
内容简介:: S+ g3 t2 {- {! ~$ F

5 r% B9 Q1 G2 m/ d4 V
* c5 L4 O9 k% c) x3 d7 ^- i
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。: e$ d3 U8 v& \

, I+ X- G+ O7 M0 h. q0 }: ~5 y2 b《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
! M3 b+ I7 j: M2 O5 F; o$ g& d( C$ B6 G1 s, c1 g  O7 D1 x
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;. G$ n' F& C5 W- `8 a3 P% r3 ^' N
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
. s' V! P! L. M2 K. G# A; E3 b" g) g8 W0 U
目录:: z& G2 _4 K" K# t7 y+ m
6 ^5 ~3 F4 f) f

9 \: Y. Y; i  M
第0章 恶意代码分析技术入门1; @5 j. M0 K- f, f0 B) b

0 y5 b- b) T$ A' Z0.1 恶意代码分析目标1! ]) E; j: r& w/ A
0.2 恶意代码分析技术2
4 E) E7 K0 }) V( w- o5 l* F0.2.1 静态分析基础技术2
, Q! N) i+ ~1 T. t6 U$ u0.2.2 动态分析基础技术2
0 K7 G# c+ ~% f. Z$ {9 P0.2.3 静态分析高级技术2) ?* l" H4 v3 ^
0.2.4 动态分析高级技术2
3 ?/ w; O8 v/ C+ o* n: Z0.3 恶意代码类型32 O) H: y" h- \8 a" Q
0.4 恶意代码分析通用规则4
( m: J) W" a+ \' G: ]: k3 I1 ^; [8 M. a

; A8 ~  P- \* S5 r% W: M第 1 篇 静态分析
. z5 V* M2 L; n+ A% F$ `1 L" N
. P" w7 r: s/ O( O& _第1章 静态分析基础技术 6+ ~1 y/ C' Q' p, r5 j

: Z6 u/ h0 S/ a/ ?0 L6 E1.1 反病毒引擎扫描:实用的第一步6
+ ^% w2 L5 M3 Z" b& \8 K6 z1.2 哈希值:恶意代码的指纹7
6 r/ m: Z. ~8 z3 x7 a+ N! M( |* Y1.3 查找字符串7
4 P4 f+ r: k3 K1.4 加壳与混淆恶意代码90 Q% k, ]: i/ U
1.4.1 文件加壳10
. Z" N2 T# k2 u2 m' }6 a0 n2 b$ E1.4.2 使用PEiD 检测加壳10% X5 y9 R( O# t& X- q# a
1.5 PE 文件格式11* Y1 c" X; u  r1 V  ?1 ]
1.6 链接库与函数12
. h& t% j+ R1 z" B' V0 g: b' G1.6.1 静态链接、运行时链接与动态链接12$ S3 f1 n; T% k
1.6.2 使用Dependency Walker 工具探索动态链接函数13" w1 F( I8 g7 N* U) x2 t
1.6.3 导入函数144 n- r8 G5 z* P7 }- |
1.6.4 导出函数15
! e/ l1 d$ ]1 h; B3 y1.7 静态分析技术实践15
/ c; u' N- N3 q" G8 ~1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
  z' j0 O6 o4 b+ T5 N1.7.2 PackedProgram.exe:穷途末路18
7 Q% }- Z1 }0 I( ^6 f% L1.8 PE 文件头与分节18
! O, @7 O6 {4 f) C1.8.1 使用PEview 来分析PE 文件19
! u( H. e) p8 k/ |) }# x1.8.2 使用Resource Hacker 工具来查看资源节22: ]3 q- Z" i4 J9 ^! u+ {5 o
1.8.3 使用其他的PE 文件工具23- |. K3 \" j0 K0 ?9 r# m7 f
1.8.4 PE 文件头概述23
7 s( B$ k; H1 Y, Z( W2 g* Y1.9 小结24
; B. |; a& r  E9 M6 Z1 }" f5 J: r1 g1.10 实验241 A+ D# m' X: O" E% G
: y. H6 n( r- P" P
第2章 在虚拟机中分析恶意代码 27* K7 e% g' |& h- J  [

' m" G5 f0 I( f! t2.1 虚拟机的结构27! M# B/ T7 x' l. O, }2 _
2.2 创建恶意代码分析机28
5 M" \8 y# l. @7 X6 w( g* b1 v* U2.2.1 配置VMware29
* S, j  S, I7 k* X2.2.2 断开网络30& _8 s/ K3 }$ x  t* M% k
2.2.3 创建主机模式网络300 O, e$ M: W, A0 V" t7 l5 _4 n
2.2.4 使用多个虚拟机30
/ E8 B" S, c3 w. A3 [5 ?: M, A2.3 使用恶意代码分析机31
( x+ _6 f5 h( ?# i2.3.1 让恶意代码连接互联网31
: X8 `1 d/ ^. @0 p- w2.3.2 连接和断开外围设备32' j8 g. z1 @: J+ t2 g0 _
2.3.3 拍摄快照32! N( N- {1 L% S! p# Q' ]2 O
2.3.4 从虚拟机传输文件33+ I; @. e( j, ^: g# M$ \# ]
2.4 使用VMware 进行恶意代码分析的风险34& B7 s6 g9 @4 Z% D9 ]
2.5 记录/重放:重复计算机运行轨迹34. ?7 A2 L, D+ c' w; q8 h% ^
2.6 小结357 }$ s2 I! h. d- q- U! f! H
- {" V" \# C$ j3 V% N; }8 q7 Z
第3章 动态分析基础技术 36
2 O& E; q* Y* @$ N! u$ j
. N' I! v. `/ B* |* \
3.1 沙箱:简便但粗糙的方法366 D+ f; m$ b1 q
3.1.1 使用恶意代码沙箱36* T. j7 A3 P* I2 _% O' a- h  e
3.1.2 沙箱的缺点374 B( V4 P" T' X$ R) X% @
3.2 运行恶意代码38
4 R; ?+ f- E" r4 g3.3 进程监视器39
+ S: I* t, v  m) c4 n( p3.3.1 进程监视器的显示400 ^4 H1 D# Z' _+ C7 I7 y
3.3.2 进程监视器中的过滤414 o2 z- x. u$ F% c7 e
3.4 使用进程浏览器(Process Explorer)来查看进程43
+ C4 M, N1 `: o0 i! x3.4.1 进程浏览器的显示43
- x( Q6 ^- q* @+ d& R+ _/ }3.4.2 使用验证选项44
0 A- G1 @- P7 n3.4.3 比较字符串45- m" {+ k5 S9 P/ j! D" f; Q
3.4.4 使用依赖遍历器(Dependency Walker)45+ h8 }2 T7 w% R% C1 g% e: D' c
3.4.5 分析恶意文档46: o8 I2 @$ v5 ]1 N2 x& {
3.5 使用Regshot 来比较注册表快照46: O1 `5 o' E# Q# u3 D2 i, p
3.6 模拟网络47
* {) w( m9 G& w0 `6 Z/ ?' i" V! _3.6.1 使用ApateDNS47
# |" \; R' P. V1 G, Y$ {3.6.2 使用Netcat 进行监视482 o* W1 N$ D# n3 ?
3.7 使用Wireshark 进行数据包监听49% z0 g/ B/ n8 _+ @# r
3.8 使用INetSim51# F- u  c$ Q+ y7 s  {' a
3.9 基础动态分析工具实践52
2 Q, b7 h8 J% ?8 h- ?3.10 小结55: U$ r5 ]/ x3 G8 F( L5 K
3.11 实验56
0 X# {- k1 e; V- @) m! ~0 j9 M* S* h4 \( F* Z9 w( q- ^
- R; O- l/ Y) l1 R$ u
第 2 篇 静态分析高级技术篇
0 r8 y4 R* D  y# W5 h, ~1 J: T/ g2 m/ d' I6 {) q' N% `$ `. U2 m( q
第4章 x86 反汇编速成班 60
8 {5 w0 F- [. O# G- S
9 R9 z( Z3 Z1 ~/ O0 y+ ^4.1 抽象层次60
; s* K$ J) J) W& v, ~! D4.2 逆向工程62
. \! {' O0 E/ Z. W5 ^. q4.3 x86 体系结构62
" a' _# C3 M# ^4.3.1 内存63
, ~. {9 M6 @+ C) i  T, [$ t  \# f4.3.2 指令642 k/ j( J9 X3 j! D4 S  \+ H
4.3.3 操作码和字节序64* a9 [0 o5 K: R3 t, c! _* T
4.3.4 操作数65
# V9 C# b8 S! u/ j7 J- d5 R$ _4.3.5 寄存器65
1 p' O2 X5 k- t3 C4 b4.3.6 简单指令67
+ r) w& \, x2 ]# K4.3.7 栈70# Z0 X2 D. Z5 |: T. O
4.3.8 条件指令73$ `9 r9 b5 H& [6 K
4.3.9 分支指令73
' F% \- ^' P& G. L& K, U4.3.10 重复指令746 ^% x' K4 T6 T! m
4.3.11 C 语言主函数和偏移76
# t4 v" U/ m8 G& ^  {4.3.12 更多信息:Intel x86 Architecture Manual77
5 k# D% I! H6 A, h4.4 小结78
8 P; o; [' ^5 n+ Q2 c8 N1 H
- S4 @" h$ U0 T/ k* Y第5章 IDA Pro 79
6 B2 ~5 ~& c- E; v3 B8 Q
+ ~: j1 I) s: a6 c5.1 加载一个可执行文件79* s8 M; a( S7 l5 e, ]1 y% q
5.2 IDA Pro 接口81
8 C7 q  r  m' \+ e* a9 p5.2.1 反汇编窗口模式81. L; {: j. I( r: V& j# F% H
5.2.2 对分析有用的窗口83
6 ~6 {& [4 m% g: }1 L5.2.3 返回到默认视图839 n* B8 e# g7 \1 q1 I
5.2.4 导航IDA Pro 83
9 o8 m4 u  O8 D4 |5 S5.2.5 搜索85, k, i! C4 ~: v* f) a! F$ j1 g
5.3 使用交叉引用86  M. b, O3 z9 C; W
5.3.1 代码交叉引用87
! c; Y! ]# ~+ \+ [  N& [: P5.3.2 数据交叉引用886 q' {' c9 f& l8 B
5.4 分析函数88& j$ V% {) D6 Q* T! C8 n. f
5.5 使用图形选项89( D: h" Y  D0 J6 ^1 s* g
5.6 增强反汇编916 X' x  }0 Q6 d3 W6 e
5.6.1 重命名位置91& o. q9 o/ M8 s' `
5.6.2 注释92) |7 o% E5 D% ^
5.6.3 格式化操作数92
+ [; U: `4 j2 D& L% f5.6.4 使用命名的常量93) x/ d* y7 s9 C( p
5.6.5 重新定义代码和数据94
2 b$ k; G9 P- |- S9 v1 Y/ |& j& ]5.7 用插件扩展IDA958 d1 h$ }( l) k, }) k! r8 ]
5.7.1 使用IDC 脚本960 |, h& b' M% D& R2 \
5.7.2 使用IDAPython973 L: U* ?5 b/ t- G. \0 G/ q: b, `
5.7.3 使用商业插件97
. g0 ?, ~9 ~! t# {5.8 小结98
* Y: I7 [# r0 h4 N" C- U5.9 实验985 X4 |6 c' i9 J* e# [% ~9 |! G

2 \7 {$ ?% w* u第6章 识别汇编中的C代码结构 100
% |/ W/ j# F9 ?+ {) N: t. u
$ Y, C) B$ e+ q( A8 c, F
6.1 全局与局部变量101" J9 N- M6 _" p1 @" m
6.2 反汇编算术操作102
, V, d6 g* E) f8 ]7 p) F# J" ~6.3 识别if 语句104
0 N* {, e, Z7 \3 L3 M6.3.1 用IDA Pro 图形化分析函数105
: `2 D# U, p5 e# {: A3 d6.3.2 识别嵌套的if 语句106
0 w: s( K2 C2 M* H- o6.4 识别循环107
+ W0 Z# |& `. n: D# M) i- ]9 h6.4.1 找到for 循环107: t) ?8 ?" I+ l' S' w
6.4.2 找到while 循环1095 k: w3 O4 e# X6 \3 J' P
6.5 理解函数调用约定110% w+ g& W; G8 i: r$ _  ^: u
6.5.1 cdecl110# q& c: h- I& O/ q( A- y: f
6.5.2 stdcall 111
! X9 D6 W& _0 Q  P  v6.5.3 fastcall 1117 Y2 P. H& j" f/ _3 n  Z
6.5.4 压栈与移动 111
& I% @# u$ g2 l1 l% v6.6 分析switch 语句112/ q! U9 G1 v/ E8 ], b) x. [
6.6.1 If 样式112
: f! U/ u+ Y( ?6 E: \6.6.2 跳转表114: q# H- Q4 \( i1 z( i* l
6.7 反汇编数组118
8 U0 O5 q0 |: `3 ~* \6.8 识别结构体119( c7 b4 ]+ e; g" {
6.9 分析链表遍历121
! K# x) k* T* s  C! [* _. v6.10 小结123+ b# P3 D* A# d. {1 u& ]1 _
6.11 实验123
* e: `, N" M' l' E7 P/ B
2 l$ _: ~# h/ I* a0 _第7章 分析恶意Windows程序 126
6 j+ k3 f7 d, ?6 {3 S
2 |  `  B/ h% M7 w! x$ z5 `4 A
7.1 Windows API126
" }$ B& O  o! r- y5 y7.1.1 类型和匈牙利表达法126
" y) @/ ^1 d  j  D! G9 a/ M7.1.2 句柄127
" D" F- B, h8 A& e2 F2 N7.1.3 文件系统函数127
( ], ?+ `) K' T* {* R9 `7 _7.1.4 特殊文件128) |  O4 G" H$ u
7.2 Windows 注册表129
% q0 m" U# I  @6 G9 w$ M7.2.1 注册表根键130- E9 L6 n- U" D. d% |
7.2.2 Regedit131. L7 |6 Z0 @# ?" G
7.2.3 自启动程序131
; |; v1 \9 q8 {, L' l# ^( L7.2.4 常用注册表函数131
% l. U0 P; [/ B7 y7.2.5 练习分析注册表操作代码132
' @& |8 [0 m% D! H1 E! j0 p. @7.2.6 使用.reg 文件的注册表脚本133
/ m) A9 ], `4 W; t/ }) _! I7.3 网络API133
' }: c0 P( h* r0 A: g" i4 |7.3.1 伯克利兼容套接字1342 e! A( X6 G+ f& E  b2 c
7.3.2 网络的服务器和客户端134
4 a( P8 d$ `/ K. D7.3.3 WinINet API 135
5 W& l5 u* V( Q& |* F* @7.4 跟踪恶意代码的运行136# m. m+ e# ?! }6 Y( b( P8 I' @7 c
7.4.1 DLL136
  G& J. p6 e: A# f7.4.2 进程137
0 p- D/ f) @% ]! ]7.4.3 线程139
# u- M5 I0 ^$ i# P$ P$ W& w. `' W7.4.4 使用互斥量的进程间协作142
. M3 X0 A1 [0 X7.4.5 服务1431 a+ a% A5 \) Y5 O! z8 N/ I
7.4.6 组件对象模型145* t: n$ P% j9 \+ a" ?
7.4.7 异常:当事情出错时147
3 A7 `# {6 |% Y) b0 R. F1 e5 m4 t7.5 内核与用户模式1489 _2 U/ I. T4 n6 d6 ^7 C! e  D+ ^
7.6 原生API1499 Z. }' P) J2 H# ^: {
7.7 小结1518 j3 K' a# g+ j* |- E& ^
7.8 实验151& h) k3 J' N( E# I, q. h
8 W* F/ K6 d2 M( w+ d  l
4 e$ ^6 u3 Y: V5 f: j- K- c
第 3 篇 动态分析高级技术篇
# @$ L, x% W, p( }. p# o& D: |. B+ B
第8章 动态调试 154
. c6 @! B* Z% f/ B: E% w
& Z# p& v4 K8 J/ k9 j" S- d; L' i
8.1 源代码级与汇编级的调试器154
8 X0 Z- H' n: j/ C& y# I1 ^8.2 内核模式与用户模式调试155; [2 y% G: x' z1 l% Z0 a
8.3 使用调试器155
% q: |  w, c' p2 \& V% ~8.3.1 单步调试155+ f  \- L* Y1 c
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
" `5 Y! Q4 `: q8.3.3 用断点暂停执行1570 T! G! a# x( C$ m% F
8.4 异常161
% B& b1 C% p; B3 t1 _8.4.1 首次和二次异常处理162
, G! V5 D; s4 w8 Z8.4.2 常见异常162
4 }# W& L/ Q& ^; p5 f! w8.5 使用调试器修改可执行文件163
9 S2 p! w; H1 L2 w7 d" h* X$ E4 c8.6 修改可执行程序的实践163' l8 }) j1 ]/ r5 Q' R' }
8.7 小结164/ n5 v- {- }: T) @/ G4 L
  m2 b* [' L3 x+ h3 ]" E
第9 章 OllyDbg 165

7 i9 c/ v% o/ |9 a6 P  X% T: R, _* k# |/ z: o  g3 A6 k4 e# ^
9.1 加载恶意代码165
: ^1 K; U1 A- V4 G; C/ @9.1.1 打开一个可执行文件165. g' n1 ]- N# d: j" D, K& u
9.1.2 附加调试器到一个运行程序166
. _' W- q: {% u7 D9.2 OllyDbg 的接口167
+ }+ x% r9 H7 V9.3 内存映射168/ m! m) r2 ~' M- B" Q
9.3.1 基地址重定位169% K$ m' }; m, P. I& w6 h4 l
9.4 查看线程和堆栈170
+ v$ {1 E4 q. ?8 x5 g! g7 X9.5 执行代码171$ x! F. t8 s' F* h, G! U) B
9.6 断点172
( H+ `& u) A# d- ~3 w/ O0 P9.6.1 软件断点173
# e( O) b. D) Z0 X9.6.2 条件断点174
7 D$ A- S* _$ z3 c  k1 X7 U9.6.3 硬件断点175' w. [; a: ?  R' {0 B* D4 s
9.6.4 内存断点175% E3 C* W4 R5 T0 D2 C( _$ j
9.7 加载DLL176
% O) q! {; k( `$ z2 T7 l9.8 跟踪1778 a8 [2 a# ]* B9 O7 |" c6 u
9.8.1 标准回溯跟踪177
7 n2 H) r/ b* a/ _! q9.8.2 堆栈调用跟踪178
/ L- V% Y  D- H% w+ k. _* F- w9.8.3 运行跟踪178; h3 u3 B% N9 i. E0 w
9.8.4 跟踪Poison Ivy178
( h0 J% g# R3 K7 l( ^+ [9.9 异常处理179
4 D& O$ G4 y) d9 `9.10 修补180
( r( W, W/ O7 I6 L7 s; s/ v9.11 分析shellcode181
* i6 [* c0 {, x' C; U- w; e( {# V9.12 协助功能182
: ]; `4 _3 e, ^" L9.13 插件182
) ]% J: i' ~2 ~0 }; l2 y) c9.13.1 OllyDump1839 r* u  `$ s0 O6 c
9.13.2 调试器隐藏插件183
5 {* g2 Q* o; Y  G- f& Z+ J3 m. X9.13.3 命令行184
3 }% |9 V* ~: F& r8 ]. W. [9.13.4 书签185
3 ^0 Y: B* y% ~& }# ?: L- ]9.14 脚本调试185
, n; Q. m& A( W) J& E, J9 _9.15 小结186
! K) ^9 U/ [0 q5 T3 i  ~9.16 实验187
2 c) _) g# J& x' k; k# B+ v' B0 C8 B5 H3 [, w: d
第10章 使用WinDbg 调试内核 189
* T8 O  ?6 H3 d" J% @) T% L- I. o: O8 P' y/ n5 n- v& r
10.1 驱动与内核代码189
% E) h9 s& s  `  U10.2 安装内核调试191: a) U( `" x) \& H3 g8 s( v/ d
10.3 使用WinDbg1938 u+ a# p0 @; \1 b0 k# `7 c2 \9 m8 J
10.3.1 从内存中读取1940 h0 Z8 W8 l* ?* |5 H
10.3.2 使用算术操作符194
8 q0 y* }  @- ^. b7 E. @/ D10.3.3 设置断点194
' l+ H2 A& T: H  z% B" r. f10.3.4 列举模块195+ I- w! Z! _0 _, d: o# T* f" t
10.4 微软符号表195
+ u5 Y/ N2 [& E7 p+ {10.4.1 搜索符号1958 P; @8 A. I$ d2 g2 O% E# @! u
10.4.2 查看结构信息1961 Q* m7 J1 l, \% x
10.4.3 配置Windows 符号表198
! J2 _9 h' q1 }3 d10.5 内核调试实践1989 x0 j* C( U1 x+ J; a% M& A: v! |. I
10.5.1 用户空间的代码198
  N' U, Y9 f0 s% L4 o1 d  z/ K, u* y10.5.2 内核模式的代码2000 \0 Q7 {0 V, E
10.5.3 查找驱动对象203
7 U. Z) g1 N: A6 w& ]/ H10.6 Rootkit204; z8 z$ x) O2 ]1 @
10.6.1 Rootkit 分析实践205
$ Q$ W' I, L3 g. M! i$ [; g10.6.2 中断2088 C' H5 q3 @6 X  k$ i' J, S
10.7 加载驱动209
, K7 P+ R2 P3 Z8 u3 I10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
# |% h' B$ i' Z$ c10.9 小结2105 {1 g6 S% q+ w: v6 z- D
10.10 实验210
: G4 D6 y6 C: P5 P/ l
  g7 r% g  J% D4 t! j- ?$ M- e5 m3 {
第 4 篇 恶意代码功能篇
1 q- [9 R, K/ b0 k4 J2 S" m
  U) V$ O9 z8 F第11章 恶意代码行为 2141 i$ ?& s# G2 k4 J3 m; n
! l, G6 ]2 n9 N( b4 l- a( N
11.1 下载器和启动器2148 n' r+ Q- i$ u
11.2 后门(backdoor)214
! M! ^* I6 E$ X% ]; w) Y. G$ f* i; `11.2.1 反向shell2155 v/ j  y* S" C1 u) D" `
11.2.2 远程控制工具216
) k6 _* x  a' s11.2.3 僵尸网络216
- h+ ], s$ d6 E5 H' h; s11.2.4 远程控制工具与僵尸网络的比较217. Q- F4 t; L/ G& y( ^
11.3 登录凭证窃密器217. ^* m1 g2 g) v6 u1 _+ i
11.3.1 GINA 拦截2175 e; W4 w3 Z$ w0 l# K
11.3.2 口令哈希转储218
- k5 U% ]; r3 m; o( S: D11.3.3 击键记录221
' ^4 U/ p1 W+ c- J11.4 存活机制223# f7 U; s5 c( N/ s
11.4.1 Windows 注册表223
# y3 J2 ]: v! a& P5 y6 P3 N% x11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
5 s4 t- Y5 ~1 r! x8 K+ T11.4.3 DLL 加载顺序劫持227
! w# W/ T2 ?, s8 W, {  l& j9 {7 }11.5 提权228
# W+ {& C4 N* w7 o8 G11.5.1 使用SeDebugPrivilege228% m$ B3 Q$ H- A  U. o
11.6 隐藏它的踪迹——用户态的Rootkit229
/ f: w3 e/ Z1 N6 y* U11.6.1 IAT Hook 230
. Z0 P: G) g% Z- @: t11.6.2 Inline Hook 2318 W# |/ ^' c* U* O$ p
11.7 小结232
9 \0 ?0 n$ b1 ~7 X, O7 B11.8 实验2321 D$ n* k1 z  |" j
0 _: i" K0 o: H3 g/ a
第12章 隐蔽的恶意代码启动 234! s: C- [2 L9 ?. @5 S

$ q5 I4 a: s- n+ T* h& x7 ^: X4 w12.1 启动器(Launcher)234
. G3 Q" U' U, r9 \2 X" `" U12.2 进程注入234/ G) k" w+ L, d( `( @  e
12.2.1 DLL 注入235
4 ^1 y6 T; D9 K' o$ K; _: I12.2.2 直接注入237
) N# L( c3 f2 s! v6 p( R" A12.3 进程替换238
4 f2 G9 s" \5 `; M$ j12.4 钩子(Hook)注入2404 i- c3 u- E0 \9 Q5 y
12.4.1 本地和远程钩子(Hook)240" O6 i5 |+ y2 Z
12.4.2 使用钩子的击键记录器241
/ Z) O, y1 N$ T& g' ^12.4.3 使用SetWindowsHookEx 241
3 Q( L: b# `$ r+ r; f7 ?" ]12.4.4 目标线程241
, n) {& u  s& A0 U7 Y12.5 Detours 242
: b1 @# i! G  L; R) f12.6 APC 注入243" s. v  K2 r0 ^0 ~  G+ @/ B
12.6.1 用户模式下APC 注入2445 U/ q* o+ G8 f" d! I
12.6.2 内核模式的APC 注入245
) w7 c2 ^  |% V6 S2 T12.7 小结246
% y( ]. N2 t& Q& r9 i6 B12.8 实验246
/ I* _1 [3 y: V7 W2 G, Y+ T
! V" u4 r3 q$ E5 h第13章 数据加密 2486 Q+ D1 E- C2 ]* i  _: V

. W+ W. G9 I- j- g13.1 分析加密算法的目的248
& S; m- F5 g5 F% n, @13.2 简单的加密算法248
" K! Z$ v3 j6 J( }7 N1 G9 X13.2.1 凯撒密码2495 i  |' F  f4 V# g% z6 X9 ^
13.2.2 XOR249
, E( `# W/ Q. _7 \3 x0 L. ]13.2.3 其他一些简单的加密策略254
6 A) M$ T1 M2 q9 ^: S13.2.4 Base64255
: j  W$ [  l1 b5 ~* P0 N- s2 ~: I13.3 常见的加密算法258
3 L' ^& C3 N& G! N) J! Z13.3.1 识别字符串和导入259
7 l& o& S2 e6 x13.3.2 查找加密常量259
7 c4 x2 o" I$ g9 P0 \5 s- {13.3.3 查找高熵值内容261/ d5 K+ P4 r" T; ^
13.4 自定义加密262
: Y0 o" T+ [/ R8 W) i# J3 P13.4.1 识别自定义加密2635 \& P: C: P' T/ e: n
13.4.2 攻击者使用自定义加密的优势265) A- S, {* K* f; d6 {5 A1 Y8 m
13.5 解密2658 j! K3 J- A( M! q3 X
13.5.1 自解密2656 E# z- C4 a' t
13.5.2 手动执行解密函数266/ s" M! p6 \5 n: d
13.5.3 使用通用的解密规范267) r8 i8 F- U+ g2 z* R/ |' S
13.6 小结270+ c0 R5 C3 d$ z# |/ ~1 J; c. T  P
13.7 实验271
4 z9 j* Q; g" ~5 D4 x
. |) C- g# {" J6 R) a! H4 S第14章 恶意代码的网络特征273! \$ ~! b) q; N0 {: |
! e, Q+ W8 q% e% ~3 `( f$ _
14.1 网络应对措施273$ C7 C8 ]& W$ f$ ~( M
14.1.1 在原始环境中观察恶意代码273
+ q% i, E* t# l0 r) K14.1.2 恶意行为的痕迹274
1 p/ g/ x# O" Q& h9 m2 j14.1.3 OPSEC=操作安全性275, ^; [) J: f. K9 o
14.2 安全地调查在线攻击者275
* d) C; R( v% y1 B14.2.1 间接性策略2755 d$ E. f! w3 T* a/ z# {
14.2.2 获取IP 地址和域名信息276* s1 f3 b3 l5 b' K
14.3 基于内容的网络应对措施278; u! ~/ U1 A3 X' d5 `! b& r
14.3.1 使用Snort 进行入侵检测2787 j! f$ p: b$ d: r
14.3.2 深入观察279' W0 t, n/ c% F; ?4 A
14.4 结合动态和静态分析技术2827 K& F  M7 D1 ]
14.4.1 过度分析的危险283' J+ t. x  x/ r- }
14.4.2 在众目睽睽下隐藏283& X' N* E; {$ S  h7 A
14.4.3 理解周边代码286
* m1 P# o# Q' b( w7 O* E" e) ?0 J4 Z14.4.4 寻找网络操作代码287- M+ H8 }2 c/ ]+ Q. `: o& {7 T
14.4.5 了解网络内容的来源288' p6 O6 t; E- ]* }4 }2 \
14.4.6 硬编码数据 vs. 临时数据289
) G  z, @; I$ _/ v- Z( J14.4.7 确定和利用编码步骤289
. P* h& ~, D, s* f& Y  g14.4.8 创建特征291! Z1 g4 J! B9 D$ D5 _8 N
14.4.9 分析解析例程2928 j+ L5 z: T3 i% u) I% Z
14.4.10 针对多个元素294, \  ~" Q% R3 t. M( E( i! H8 t
14.5 了解攻击者的意图2950 X- v! ]  {6 y3 j/ F: W, H2 h- l8 t
14.6 小结296, c! N( q* k. h, @% Y  i
14.7 实验296! L& G3 E0 c: o6 z

/ m, a$ e( T( m. t3 r/ v& M- s
% W/ I' G- i$ M8 i2 i第 5 篇 逆向工程& Q+ O7 X1 `3 ~5 R5 Z- b

# o5 l1 U5 @; m& ]第15章 对抗反汇编 3009 C! k: e- X7 a! A* P& \
, h2 M9 r, ~: Y" j
15.1 何谓对抗反汇编技术300- J/ Q- }9 h+ ]& V
15.2 挫败反汇编算法301+ ^& I1 R& k% n- D
15.2.1 线性反汇编3020 f' k5 n: h6 t; T6 t# N. ~
15.2.2 面向代码流的反汇编303
& q( E- E  K) @' p, F15.3 对抗反汇编技术3060 M, b6 g1 K, V  r
15.3.1 相同目标的跳转指令306
- f' Y" y! D/ O6 j+ L5 _, C. U! }15.3.2 固定条件的跳转指令307
) w. S& d; ]$ W4 f  b+ N: ?15.3.3 无效的反汇编指令308( G+ W7 Y1 a4 H/ h' g
15.3.4 用IDA Pro 对指令进行NOP替换311) @. F1 ?, L- H( O3 D  W1 D
15.4 混淆控制流图312/ w% N/ C! b* Q' }! S8 ~
15.4.1 函数指针问题312; ~, a, B7 T. u! Q* H' t$ K+ M5 w
15.4.2 在IDA Pro 中添加代码的交叉引用313( [6 f, y: e+ ?6 ^6 t
15.4.3 滥用返回指针313  ?7 [( S( `) P8 j3 g
15.4.4 滥用结构化异常处理315
9 `+ s2 i2 M$ E* Y# _) h# N0 i: _15.5 挫败栈帧分析317
- _1 @# l1 |) }5 Y15.6 小结320* _( R1 w5 V+ q3 Y
15.7 实验320
) S5 |; ?: P& ?( s4 H( s: w
7 ]; s" z: l" Y0 ^: K' z$ T第16章 反调试技术322% [1 f$ s7 W$ T/ g& o1 ?
+ [- _$ u; M: H9 F0 l
16.1 探测Windows 调试器322
/ `0 U: f* q4 y6 z! D16.1.1 使用Windows API322) L& A2 v) x3 K+ p% B  I
16.1.2 手动检测数据结构324
, s, T: k' n9 b4 F+ S2 z+ a16.1.3 系统痕迹检测326) }9 y6 t% l3 F9 W3 G
16.2 识别调试器的行为327
! }! J% U' C% w16.2.1 INT 扫描327
" b! Y* p& p$ ]16.2.2 执行代码校验和检查328
* F4 _( @4 L' Z- N+ e16.2.3 时钟检测3288 ?0 a4 R8 @& h, S( {' ~" J
16.3 干扰调试器的功能330: a  K8 y0 d6 \: W
16.3.1 使用TLS回调330
- c( v1 n- K/ t5 P8 f* C16.3.2 使用异常332
% Y) f3 L. \! Z3 u! q+ V16.3.3 插入中断333/ C5 j& }/ c2 G& \" D5 _4 }
16.4 调试器漏洞334
/ Q- ^" `9 ?- Q  M16.4.1 PE 头漏洞3341 H  L$ F) ]7 z! p6 H; z8 z* l
16.4.2 OutputDebugString漏洞336
! z6 N: W! B* r( Y- E; E16.5 小结3369 h2 [' d- H. n! \
16.6 实验336
7 I* J: S; v* ~* t! v/ A0 B2 {0 m; G! z* z
第17章 反虚拟机技术 338
0 f! v$ ~0 l7 G2 j; P" S" g* M- v6 z% B$ M: i
17.1 VMware 痕迹338/ O/ J$ R1 ~& Y$ g5 _% X
17.1.1 绕过VMware 痕迹的探测340, I6 x6 c/ b$ ?( P7 u- ]. x
17.1.2 探测内存痕迹342
" V: F% j7 [! q1 m2 B. [9 H5 u17.2 查找漏洞指令342
1 D  `: F& B  Y4 S$ x17.2.1 使用Red Pill 反虚拟机技术343; w- b4 w* `9 N* J
17.2.2 使用No Pill 技术3442 g  ~2 Y( f2 a" [" z1 {3 y
17.2.3 查询I/O 通信端口344
. O$ e7 D2 c- H1 v  e3 ~, M9 S17.2.4 使用str 指令345' ?  b3 z6 i5 z: Q. h5 o( e) U% r0 e4 V
17.2.5 反虚拟机的x86 指令3463 c5 W: Y/ ]* Z4 E0 i- a
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347& v) p2 H) c- ]
17.2.7 使用ScoopyNG347
9 A8 \2 K' c. b# T17.3 调整设置348/ }6 p3 q& S& _% k0 r6 }7 b
17.4 虚拟机逃逸3499 w  k8 M7 _# P5 i6 |
17.5 小结3495 M0 [6 t$ J8 {3 B3 H! x
17.6 实验349+ ^+ B" a& Y1 L# H1 R6 Q% L

! ]) J2 U. O  X- E( d; u第18章 加壳与脱壳 352
9 J0 B6 s, [  b4 P- p
% `- p7 [& w8 I, C7 F/ J18.1 剖析加壳352
4 f/ h- h1 C; f- b2 W18.1.1 脱壳存根353
2 H5 i) [% C& s2 d' @1 m18.1.2 加载可执行文件353$ J1 ]" v+ N, l# @
18.1.3 解析导入函数表353
/ c2 U" T9 y% z; F: m18.1.4 尾部跳转354" A  i3 f& C4 O9 a$ }8 O
18.1.5 图示脱壳过程354
! v6 l' _2 u& F; M18.2 识别加壳程序355) W3 E$ P; h4 u- D* e% [
18.2.1 加壳程序的标识3557 X' I: d) g8 C) ^: ?7 I" X3 X
18.2.2 熵计算356
9 s5 [, C, L1 {( `0 L18.3 脱壳选项356/ h  [) ~. M- x
18.4 自动脱壳356, _8 C' x1 Y2 ~7 r
18.5 手动脱壳357! l0 ~* R, b8 m! e  M. Z& ^
18.5.1 使用导入重构器重构导入表358- q/ O. k6 B$ U( m
18.5.2 查找OEP359
2 E) u3 t+ z6 r1 q( z- V* B' M, d: N18.5.3 手动修复导入表363
; T/ L" ~4 R8 j$ j/ {" [9 R( }18.6 常见壳的技巧与窍门364  S1 L8 m" \/ I# B* T
18.6.1 UPX 364- C& l! e2 Z: V; R# ^: u
18.6.2 PECompact 365
' q5 E* b2 `. e- m" O18.6.3 ASPack365
; Z/ E. H: g' Y* n. S2 O' P18.6.4 Petite 365
% V1 d. P  ]3 Q# G18.6.5 WinUpack 3667 k7 t( A6 T7 n, }9 L5 {3 k8 [$ H
18.6.6 Themida367# B. C6 y# f  x* ~  F. a0 b
18.7 不完全脱壳情况下的分析3687 B) K- Q( @; K9 p
18.8 加壳DLL 3688 O+ @+ i% T: P9 s4 w) ~3 G
18.9 小结3694 ]1 ?; k! U/ N' ~) O' b
18.10 实验3698 f0 W  W; u" X& W# l4 {8 R) o1 K

& v* g7 L9 p. {* A. t: o& i" F1 I# D, L
第 6 篇 高级专题. ^; t! u1 a! N  H/ ]9 x
6 }/ D5 X8 i- ?1 G# w2 D/ s
第19章 shellcode 分析 372
! c% c7 E6 H4 E8 Q: `- w' x: H$ m! h7 \9 n7 G
19.1 加载shellcode 进行分析3725 K% l6 E. D1 |: }0 z) j% c
19.2 位置无关代码373( \9 j& t+ L4 N1 {/ Y+ v7 \% A
19.3 识别执行位置3736 h& T, h# B7 p# E  M. m
19.3.1 使用call/pop 指令374
7 n) F/ @* n3 ^% b0 |19.3.2 使用fnstenv 指令376
8 S6 h9 I1 @4 I9 ~$ C19.4 手动符号解析3772 W# {# d2 v: V. o; x4 Y
19.4.1 在内存中找到kernel32.dll378$ k4 d* ~" Q7 p2 j2 E
19.4.2 解析PE 文件导出数据380% x, O+ h8 F0 y& q% \/ W4 Z, ~2 H7 x: C: U
19.4.3 使用散列过的导出符号名382( F1 P. l8 j# ~3 j; u. @
19.5 一个完整的Hello World 例子383
8 r# M/ U# I# W# u/ X, E! d19.6 shellcode 编码385! M  ?$ \/ G& V
19.7 空指令雪橇387
* [  T; `" e+ P! W6 ~% q9 Y; q19.8 找到shellcode387, b6 P% H0 B6 ?/ J
19.9 小结3885 L2 T( U, S6 K0 ~
19.10 实验389
1 |' F4 K3 h5 p/ g! G, p8 `; @* r0 v6 I  v0 D+ C7 t
第20章 C++代码分析 391
) O& @. z; B  Q( Y. w, d" A. n, q! z& w& Q  a3 N
20.1 面向对象的编程语言391
- {, U+ W8 {" a, [) A20.1.1 this 指针392
$ E/ l8 E8 d4 E( d! d. |20.1.2 重载与修饰394* p; h) K" F7 S
20.1.3 继承(Inheritance)和函数重写(Overriding)395
9 o7 W/ f3 N& Q5 F20.2 虚函数和非虚函数396
" w0 n  `6 W6 c& C" z7 y0 w20.2.1 虚函数表的使用398
% `3 T" V" C+ H- w' u. b5 k20.2.2 识别虚函数表399
& ?: _2 G9 K1 {: _3 i3 i20.3 创建和销毁对象400
" D- L- t5 \5 J1 ]; g4 P20.4 小结401
7 e2 A: v4 H* s/ d1 K20.5 实验401
( ?9 ^$ G0 y6 D4 C! j" d* K) Y$ {2 s7 ^1 Z5 d$ |* I& e/ X
第21章 64 位恶意代码 4039 z9 G( g, j* m- ^$ m9 H

$ W# _$ `( C7 I1 p; X$ [  e% f1 b21.1 为什么需要64 位恶意代码403
9 c7 e0 [, D* ]* r! b" H$ N) C+ R, g7 v21.2 x64 架构上的差别404
0 n8 P8 f% l, x* D' O  {7 |0 ]21.2.1 x64 调用约定和栈使用上的差别406
. _2 E8 g# R1 a21.2.2 64 位异常处理408
/ j8 a5 Q( H1 s; V: m% i3 u21.3 在Windows 64 位上的Windows 32 位408) b% l  x2 A$ b4 C
21.4 恶意代码功能上的64位提示4090 Z5 L4 a  g* Q1 D
21.5 小结4102 S1 a) C& w% P8 _
21.6 实验410/ Y9 {  J! X: U# i% D7 f& D
6 \' d' p) a! M- d5 j+ F
附录A 常见Windows 函数列表 412
: s- H+ z3 `. {) u: H
& g, `. [; d' P3 {- C% D附录B 流行的恶意代码分析工具列表424
: G' O+ u% ]' q4 L  A; h  K
$ w" L" a- R# C9 p4 b附录C 实验作业参考解答435
3 r, Q6 ~  y5 v9 K4 S" |( m8 o" n& Q2 P
. g7 j. B; M% ]附录D 致青春,基础软件开发的中国故事 6914 G! I' m+ o' A/ a# N

) y# P# r2 w0 `附录E Syser 操作入门 695+ Z  ^/ E& K4 X+ |# G' y
+ Q- u$ J" z; i  X

& z# o( I/ d5 f6 ]  ^" y$ f4 ~
想知道小甲鱼最近在做啥?请访问 -> 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* j: v6 q" U& p7 O
什么编程语音写的?
) f% i  _5 P2 u( \4 v
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 06:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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