鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

# D+ M5 M4 g! @  z& _- y8 U5 m
/ _* J( t" U7 m! ~书名:《恶意代码分析实战》, M6 D. N! G$ D' n, V
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
: ?( g3 v6 I( w, {译者:诸葛建伟,姜辉,张光凯
( i9 \5 R7 B4 W3 g5 G出版社:电子工业出版社: K. y, |; k$ k/ h8 K
出版年:2014年4月1日(第1版)
9 [4 n; U$ b+ N' t2 A定价:128.00元, S% [+ M/ \/ D( T
装帧:平装3 x! w$ l, e( \5 b+ e, V) T
ISBN:9787121224683
/ i5 O6 `3 d2 s3 {7 J0 H3 Q9 C: ]7 R' x. g  l9 Q' x/ Y5 ~
购买链接:' d7 o7 [+ N1 X

# \$ _2 T8 h5 e$ J+ |6 ]- X3 O

8 g3 R$ }# N0 e: |' W' p亚马逊 -> 传送门
. s: H. L' }/ H+ j
/ w/ z# }( ^. w8 _当当网 -> 传送门  l. c% ?( h7 l

: _: H& Y& n3 T, n! Z京东 -> 传送门
% i: X' c0 r" ]/ l. |  I, N0 b7 c! l3 g3 S3 A
天猫 -> 传送门
0 M4 b% D+ B# M- h8 X1 E  ~5 D* E; y  U( M3 ^  B* @. U7 E
- X0 [, X3 u. Q
内容简介:
' z" ~& F: L' r& u9 n: J
) O+ ~% a, F* [& Y

1 {+ v7 i/ n- V  i$ C3 ^& L7 C《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
, g* t! J4 K) U  }' d0 e/ \* i# Z6 G* P
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
( P8 P& A' j- W$ A1 g3 `+ F6 F6 m( I/ |. F8 m+ c
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
3 i( V7 j3 J; U' |( j针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
( e) Q( h* T) ~/ }
9 j" u' T1 ]: \9 {目录:
, S8 P: Q5 I4 I; x9 ^4 X
- p+ J0 a) T2 E6 Z

1 G; K; m) _! c5 e+ S  N" ?) v第0章 恶意代码分析技术入门1
% A  `5 ?8 z4 m; ~/ ^# o1 k" D# j( K2 }( D3 r
0.1 恶意代码分析目标1
2 n' o8 m% {$ f, g- k3 q( o0.2 恶意代码分析技术2& }8 k- e% G* ^3 ~6 [8 ~, A
0.2.1 静态分析基础技术2; q! F- J$ Y+ Y2 O, p7 _7 Z5 Z7 I
0.2.2 动态分析基础技术26 j) V: M7 ?  J3 C8 U, s
0.2.3 静态分析高级技术2
  q( t  J5 z; P* q/ B0.2.4 动态分析高级技术20 y1 J6 t" y! \# ]
0.3 恶意代码类型3: D, c  D' l! O$ T
0.4 恶意代码分析通用规则4
7 A4 ~! P  k9 |6 ^" K, u  C1 K; K
5 ^  l  i+ U* Y' {; E. e! I0 o
第 1 篇 静态分析
& B. f( g" g4 e* d" f: k3 ?) \' x# s- s2 x' [
第1章 静态分析基础技术 6
0 L) q% O8 M  B6 t  `2 V6 M

% f! J" n' D1 ~# x) \  c! a) o1.1 反病毒引擎扫描:实用的第一步6
. L/ e" o1 G8 m; t1.2 哈希值:恶意代码的指纹7
7 T- S9 Z) J& ~' r# O& \' {1.3 查找字符串7
8 a- d% \3 g! o, C/ w0 i! {3 Z1.4 加壳与混淆恶意代码94 L. l7 J* E. R7 V% |% R
1.4.1 文件加壳10
$ Y0 b! s& m  h- m6 l7 c* i/ L- x1.4.2 使用PEiD 检测加壳10
- s3 D# C5 I% y' g2 c1.5 PE 文件格式11
: [3 h2 k* C  b1 B& b9 l1.6 链接库与函数12
, N/ e* ~% A9 h+ `) K: x1.6.1 静态链接、运行时链接与动态链接124 B/ a% B+ A% ]
1.6.2 使用Dependency Walker 工具探索动态链接函数13
5 B( W+ y7 b* s4 C; V" R# S. @1.6.3 导入函数14
) Q( D% x  V* e& ?( c! e1.6.4 导出函数15
2 c9 X" t: p# u3 q' T3 `1.7 静态分析技术实践153 Z5 W$ h& x8 c) R5 C2 E
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
& |  U  p8 R- h+ ^# g4 e5 s1 p, V1.7.2 PackedProgram.exe:穷途末路18# e1 w5 d1 R6 |7 L
1.8 PE 文件头与分节18" i6 o$ z  J& A; Y; X! l; i
1.8.1 使用PEview 来分析PE 文件19
4 y# _5 O6 D6 e& k0 K9 E1.8.2 使用Resource Hacker 工具来查看资源节22
; ~9 w+ W/ ^: `) T$ t1.8.3 使用其他的PE 文件工具23
. `0 _) T2 t% ~( B1 l1.8.4 PE 文件头概述23
; f' P, y' V9 H1.9 小结24# D2 j, z7 f$ K
1.10 实验24
- U2 R$ B: ]; r; M* N
1 ?4 v) q. m4 t第2章 在虚拟机中分析恶意代码 274 s% I2 B7 ]& |" y, t
3 {& m% J6 W, N- A8 m- R
2.1 虚拟机的结构27
. p: J0 c. G+ I1 [7 |2.2 创建恶意代码分析机28
8 [- h$ [$ e7 h3 F) f8 S/ }) J2.2.1 配置VMware29, \) N- }2 |, Y/ c
2.2.2 断开网络30
' J* u7 ^/ R/ Q8 C* i) g8 A2.2.3 创建主机模式网络30- {9 v1 n2 q  X; q! X. `
2.2.4 使用多个虚拟机30
( v9 f& I- X* i9 p! v2 H1 [2.3 使用恶意代码分析机314 q9 \4 `; [. A  h1 u5 b- N
2.3.1 让恶意代码连接互联网31
# T% L* q# I5 s2.3.2 连接和断开外围设备32
4 e5 r5 {2 M2 k2.3.3 拍摄快照328 ^4 C* }/ c4 T% b
2.3.4 从虚拟机传输文件331 b: T- J6 e2 l
2.4 使用VMware 进行恶意代码分析的风险34
# I# }; m4 x- f2.5 记录/重放:重复计算机运行轨迹343 [; Y5 _. ~8 b4 g% P7 ?5 }
2.6 小结35
, O1 I) o$ |/ G1 W$ [% u+ i: \; z; L+ b+ O/ Z; S$ F
第3章 动态分析基础技术 36

+ E1 O/ J/ @5 J9 t% I
2 k) i; I" D9 D+ c# b2 `2 k3.1 沙箱:简便但粗糙的方法36) J0 d: m4 v! R  S( G9 T( B
3.1.1 使用恶意代码沙箱36
6 }- h  W7 P& z5 K3.1.2 沙箱的缺点373 j2 C: Z, |$ `* E3 |% ~! }2 }* G
3.2 运行恶意代码38, h% o/ _6 J% M3 `/ \7 B% x
3.3 进程监视器39( X" T! I1 Y# M1 y! K4 `. x$ h: _6 w
3.3.1 进程监视器的显示409 r7 X, r8 I( O, a6 g& y+ f9 _
3.3.2 进程监视器中的过滤41
, C% G- C7 B8 \3.4 使用进程浏览器(Process Explorer)来查看进程43
6 E5 y) _" A1 e) @; Q4 h; d3.4.1 进程浏览器的显示43
7 Q4 I, Z, j. ^# s& v3.4.2 使用验证选项44
: m9 Q. {' p- D5 p3.4.3 比较字符串45  D  A% A* W4 Q9 R, q6 ]" T
3.4.4 使用依赖遍历器(Dependency Walker)45
( F5 k' h- N5 S1 ^- E3.4.5 分析恶意文档46
4 `, O$ k; i0 x; R3.5 使用Regshot 来比较注册表快照466 ], y/ }. v, G; R" W" ^% v
3.6 模拟网络47
+ h" @0 Z2 Y" M3.6.1 使用ApateDNS47
% T: f3 Z0 {2 ]3.6.2 使用Netcat 进行监视48( r9 |$ ^; y9 w" |# @7 v
3.7 使用Wireshark 进行数据包监听49
/ ]6 n/ W! l* E7 M9 ?2 ^3.8 使用INetSim51
7 Y1 h8 @) {7 |4 T3.9 基础动态分析工具实践52$ q4 J# b3 P: U% y8 g' T8 M2 ?( F
3.10 小结558 g7 I$ U2 y/ A* Z  |: \
3.11 实验56
" k  F/ k7 W  V; B0 b9 s( [4 c, Y1 |4 U( ?& @
! U/ L) `) n$ _, e$ o0 n
第 2 篇 静态分析高级技术篇
0 A& x! Q3 w% u# D$ g! K$ V7 A, X% f9 `6 W. J
第4章 x86 反汇编速成班 60
  L" K4 P3 u/ E# V' o
& V2 v3 G8 Q5 p5 ^4.1 抽象层次608 u; l7 M! }+ w; E- P
4.2 逆向工程62
+ |2 Z* L. Y" x4.3 x86 体系结构62
: O5 d( L- ?& a, m- r4.3.1 内存63
5 w  n& m1 C. U/ _4.3.2 指令64$ q1 g: S: q2 c% g! s  h6 X1 q
4.3.3 操作码和字节序64% K* |; t& V7 p6 l: ]8 W8 O; A
4.3.4 操作数65# M4 i3 F, H' r1 H( Y! o) W
4.3.5 寄存器65
9 J& |; S0 b  N9 v2 ?8 r* W4.3.6 简单指令67
& K6 l, ]( N# q( E7 H8 z5 d4.3.7 栈70
# F0 w6 C; h0 d1 c4.3.8 条件指令73
' \* r# X0 }+ `3 b  d) I4.3.9 分支指令73
4 O9 M3 k! g$ {, r8 u! X+ D, {8 Y4.3.10 重复指令74
6 v1 h) z5 |! ^& Z( v4.3.11 C 语言主函数和偏移76
/ n3 [( G* T* u: n! i% o, I2 G4.3.12 更多信息:Intel x86 Architecture Manual771 c; A* m9 b! X; c4 O. z
4.4 小结78
/ E* K: W! @2 `. Q
2 G0 Q3 c# X2 j* d* u- t第5章 IDA Pro 791 A( a* j  R( k; }
' [% D0 ~4 z0 N7 m2 O+ x& V
5.1 加载一个可执行文件79; {8 U" W3 ^% c/ a& I6 l
5.2 IDA Pro 接口811 Z: C" [% G0 |! ~- Y  {) `
5.2.1 反汇编窗口模式81
& p: u0 t0 c6 y$ q' Z/ t5.2.2 对分析有用的窗口83
! m9 c4 ]2 j. r$ F) W5.2.3 返回到默认视图83
: E5 Q/ A" i. ?5.2.4 导航IDA Pro 839 z  O" b# v2 {
5.2.5 搜索85
  T+ n! }- G4 R! E5 g' A5.3 使用交叉引用86
. R$ q6 D9 {1 P: f; Y5.3.1 代码交叉引用87
$ d! F3 y4 @. S  }+ h5 [# ^5.3.2 数据交叉引用88
( l( u' C' n5 X# D- Q; t# T5.4 分析函数88
4 j9 ~& {! J5 l$ ^8 L8 n5.5 使用图形选项891 b* z/ q$ z" a8 y
5.6 增强反汇编91
. \7 F/ T9 N! X5.6.1 重命名位置91# k8 ^3 C/ O  l: J, e
5.6.2 注释92
: n) s8 \5 x2 j. g0 [3 V, |5.6.3 格式化操作数92. l" q3 O& {' l' [9 Y
5.6.4 使用命名的常量93, I! N3 q, S! m% r' o5 K" g1 w& C
5.6.5 重新定义代码和数据94; C+ C3 ~  k! V* V
5.7 用插件扩展IDA95
0 _1 Y9 p7 G- o6 w) H7 }5.7.1 使用IDC 脚本96! z, v* ]& y3 I5 g
5.7.2 使用IDAPython97/ b' D7 p7 ~: m
5.7.3 使用商业插件97& o6 o" b+ h+ P" Q2 k7 }" G
5.8 小结98
/ H; H. U- X6 q7 r' M% }: L. v5.9 实验98
) s2 H$ ]' Q' Z" [, _+ E) Z5 \! `# {4 M+ D2 p1 Q$ S4 C( b
第6章 识别汇编中的C代码结构 100

; \5 h5 h1 T8 Q. _/ R+ _" x9 n7 r8 N$ c7 I. d
6.1 全局与局部变量1014 T2 S' ^! r. L& m; `+ M
6.2 反汇编算术操作1023 M' b& b$ ^5 c9 s
6.3 识别if 语句104& x, V3 j/ b0 `# \/ y: O. v" \
6.3.1 用IDA Pro 图形化分析函数105. k- Q" ]2 U! @2 l8 r
6.3.2 识别嵌套的if 语句106
1 {" F8 ?# V# J$ ~$ B( p  S6.4 识别循环1072 a1 ~# m8 Q( X( o  Q% p" t, N
6.4.1 找到for 循环1076 Z7 n. u3 D' E$ L, X0 e5 S
6.4.2 找到while 循环109
( S# M7 ^; e1 W  o0 q! V6.5 理解函数调用约定110* O1 ^8 [. A" W+ d* ~( v
6.5.1 cdecl110# q/ R! v- K1 w
6.5.2 stdcall 111
! x1 s1 `) n' ]3 Y! `, \! Y% o6.5.3 fastcall 1114 J: B& N6 s- i4 f8 H- a7 L
6.5.4 压栈与移动 111& ?( b5 A: |9 ^8 g7 q: R+ |
6.6 分析switch 语句1127 e2 R0 f" U( V. ^9 C$ v
6.6.1 If 样式112
8 m' W$ ?$ n% i  |5 T; V, q8 I( E: ^6.6.2 跳转表114
9 M5 O) |( E7 \. o6.7 反汇编数组118
, |1 w0 p9 J6 A3 L1 D3 ^/ x. o) Z* R6.8 识别结构体119; q# _7 w( t) K6 z. K0 W( F
6.9 分析链表遍历121
3 W1 S+ ?3 m$ O6.10 小结123
- o, n/ S5 \: f+ T! T/ t6.11 实验123
' Q' q/ h' B% B5 f. t4 r
4 c0 K' [* S. y  P第7章 分析恶意Windows程序 126

/ Y& _8 U* e: o5 W  x% y+ `: D) p2 E+ w& w
7.1 Windows API126
+ @* i+ G; H$ l- t# r2 _' Q5 e7.1.1 类型和匈牙利表达法126
6 r0 B1 o1 [) X6 \7 G! _7.1.2 句柄127
( C/ z; V/ z4 d; k& p7.1.3 文件系统函数127
! z/ ]  U% E: |- H( i7.1.4 特殊文件128
6 f' ~, O% H8 `& _- q/ m7 u  k5 s7.2 Windows 注册表129& K; N/ M' k1 W5 p- d1 Y
7.2.1 注册表根键130
/ E" C* W+ j, t. P7.2.2 Regedit131
6 R# ^5 D& s6 A: S7.2.3 自启动程序131% ^5 _, K- o0 z
7.2.4 常用注册表函数131: [  p8 c8 E* P' \6 @
7.2.5 练习分析注册表操作代码132: n/ H: Y& Q( e$ D
7.2.6 使用.reg 文件的注册表脚本133* T7 ^0 I9 q( {  ^1 u
7.3 网络API1335 N! h5 B9 m/ k# j' d8 _) u: ]8 o
7.3.1 伯克利兼容套接字134; Q* I" S/ h( X( {6 d
7.3.2 网络的服务器和客户端1344 [' ~. V9 D4 M& [; ]' t, E
7.3.3 WinINet API 135$ y$ X( ~7 Q4 ~; o0 i1 ~: {7 w
7.4 跟踪恶意代码的运行136! L* p3 C! ?: [4 X$ f( R5 k2 P
7.4.1 DLL136
# o: Z  \+ F6 [9 c3 U5 w+ o7.4.2 进程1371 X$ @% u" T  C# Q& c, b
7.4.3 线程139
! x+ _( G% C& N  r; H- B7.4.4 使用互斥量的进程间协作142. I% \. T; Z2 J3 d3 O4 q) j
7.4.5 服务143
. C( Q/ L' y1 \, D" C7 t0 _7.4.6 组件对象模型145
( S" `8 ]* j5 @% T& `& L5 [7.4.7 异常:当事情出错时1475 b( N- M# Q+ j$ }' z- N* p. X3 j
7.5 内核与用户模式148& e, g5 c8 M" y, G4 e' ?
7.6 原生API149
8 C, a- q2 C+ v- ~( k: {7.7 小结151
' f. Q* i# z. @6 n& w" A$ G7.8 实验151
5 f; m( T1 J3 O2 E* T  a/ Z, p
- b: d% r) x* Q) z* I+ f
& z5 F) A4 c# C( V+ ]" o第 3 篇 动态分析高级技术篇
2 T9 }% n0 r1 I# `- v; Y& {6 u; G/ d$ o! i0 U+ I% F, O: x
第8章 动态调试 154

% h3 f! [2 G5 X! l- B- @, Y% o# P5 q. V
8.1 源代码级与汇编级的调试器1546 w; H1 n$ K" q- N, Z
8.2 内核模式与用户模式调试155
" t+ r: R* Q+ \8.3 使用调试器155
# N3 N5 x8 l# s2 c. E5 A# I5 k8.3.1 单步调试155
, G4 M2 l& }; x# i* X* U8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
7 {" }$ O: I8 G! m' C8.3.3 用断点暂停执行157
; D: y* ^9 l/ M+ u4 A9 |' u8.4 异常161
5 L  r% d" p: s8.4.1 首次和二次异常处理162
: N: M8 {8 U' N% W* ?8.4.2 常见异常1626 j+ X: m6 q4 M* q2 Q5 h2 G: v
8.5 使用调试器修改可执行文件163
5 m+ q# e3 h" u3 F0 J8.6 修改可执行程序的实践163
) Z; @6 Z- l6 U5 E8.7 小结164: `. ]5 I! c: p2 C( W/ I( \( G

4 H& M! q9 E- z' {  ^第9 章 OllyDbg 165

7 `0 ^* N/ {! v. q0 t$ W- r; F9 U7 T$ h* A3 ~& b
9.1 加载恶意代码165' G' i, r4 k% U3 T+ `0 g
9.1.1 打开一个可执行文件165
, Y: a1 |, G/ v6 V/ h: t+ O( e9.1.2 附加调试器到一个运行程序166
. h1 ?) j: Z/ L3 ]; J9.2 OllyDbg 的接口167
1 ^7 x" E7 c3 y9.3 内存映射168# k' G- `" d  y- l, ^& s* j
9.3.1 基地址重定位1693 R* l" w" h' t0 r5 ^& }
9.4 查看线程和堆栈1701 }* a' D* R. S% G: u0 d) Z6 m
9.5 执行代码171
; j7 [% }( z7 q, a9.6 断点1723 j3 b6 x7 @: k+ a
9.6.1 软件断点173
6 Q' v0 o$ u/ `- D- R; z8 I! e. D9.6.2 条件断点174
! D  J& C( ?$ u5 R7 y9.6.3 硬件断点1758 {: d+ ]/ L) w, n( F7 f
9.6.4 内存断点175
' }. H! `7 s2 b! l9.7 加载DLL176
7 x# K& e4 l# ]; T/ Y# `6 G/ L% F9.8 跟踪177
& b% s7 e. }( d, m7 R9.8.1 标准回溯跟踪177
/ e" Q! u# J* _9 \, E* o# v1 C9.8.2 堆栈调用跟踪178
* p+ q' a% B& e( D+ S3 e9.8.3 运行跟踪178, U; Y8 N2 N: z/ U8 Y: R4 D# C
9.8.4 跟踪Poison Ivy178: X1 q2 u' H+ j+ C( Q9 N0 B
9.9 异常处理179
; \3 u/ z* X' G( z4 o; |9.10 修补180
* p1 a6 s0 O/ p8 n9.11 分析shellcode181
% ^# a0 r) n7 ?6 r$ [9.12 协助功能182
7 y  l$ a0 `0 [7 W9.13 插件182
5 ^% b* [+ A; m7 D/ P$ d2 M; r/ [9.13.1 OllyDump183
* S5 ?& a) [: @* L7 j& U! r9.13.2 调试器隐藏插件183
' o7 y8 S, B' f* s, ]; E5 C" E9.13.3 命令行1842 q1 ?5 {, _+ i) F$ r- M1 S# t
9.13.4 书签185
+ V# [7 A* s2 ?2 O% K5 ?9.14 脚本调试185
  G" a# M2 f+ w' O+ t& S9.15 小结1867 @5 P( P9 i6 s* E4 u" }  O+ @
9.16 实验187
8 q* ^) w: P! }+ y' n; ]. ~- I' x# @1 {+ R
第10章 使用WinDbg 调试内核 189
" v4 V9 x. G, y6 B( c0 ?4 _$ f
' R6 c# Q$ n; Z( ~10.1 驱动与内核代码1890 W' j" G; v8 i% f- b3 z
10.2 安装内核调试1912 T+ D/ G; r4 D
10.3 使用WinDbg1933 T* T) d; ?7 ~7 t* L; [
10.3.1 从内存中读取1940 Z  I) m8 y2 r+ Z! v
10.3.2 使用算术操作符1947 X# L& P: Q) Y  t
10.3.3 设置断点194
9 ~; I+ c1 B2 @& V% ^10.3.4 列举模块195& Y( U6 k& a1 Q* y4 e+ Z3 [
10.4 微软符号表195
2 u8 N, _+ R! A8 G10.4.1 搜索符号195
, B& w4 u# o6 n0 [6 }4 P10.4.2 查看结构信息196
8 K" I, [; o7 b! W2 M' p/ G) e10.4.3 配置Windows 符号表198
; K7 ?0 y1 m9 l/ Y& t* e9 c9 d& @: e- Z10.5 内核调试实践198  A0 U9 G7 Q, c( }
10.5.1 用户空间的代码198* S$ v- ]- _9 C) V9 n/ V7 h$ u$ g
10.5.2 内核模式的代码200$ _6 P+ M9 n/ ]* Z& l8 e7 t- U5 W2 G
10.5.3 查找驱动对象203
0 T  e" m' x6 A9 d2 l10.6 Rootkit204
+ C, }5 P2 |, H10.6.1 Rootkit 分析实践205
3 @2 L  {$ Y4 c5 {2 o! X10.6.2 中断208
1 j, A" C( _+ ~8 P& W6 f& \10.7 加载驱动209# ^; y+ S! {% D  _
10.8 Windows Vista、Windows 7 和x64 版本的内核问题2097 `; ?3 J& R& Z- C
10.9 小结210# a/ n: {3 W' R, ~" Q- l/ z
10.10 实验2106 @8 u5 S+ ^  |/ l1 }- M
' ]9 l, C' n! u7 w

9 `+ J3 o4 E* m第 4 篇 恶意代码功能篇
: G- g) u/ X! u/ x8 u0 w& ?/ n, x; _5 d( B6 c# w7 ]/ W: l
第11章 恶意代码行为 214
& r$ A- G  N; e9 n6 ?/ V' t& l# R# h( w; d0 Y3 a
11.1 下载器和启动器214
( e$ a. p' I' c1 B. k- X5 Y11.2 后门(backdoor)214
3 g$ C, N0 x7 V/ U  ?11.2.1 反向shell215, Z' h) C1 A6 [8 _4 O5 L. w% _& d
11.2.2 远程控制工具216
8 X! V9 o5 O8 H5 B5 v11.2.3 僵尸网络2165 d$ {( N) S& E
11.2.4 远程控制工具与僵尸网络的比较217  X& y& V  N; V3 t2 M; Y
11.3 登录凭证窃密器217/ ^) Z4 a9 u. A
11.3.1 GINA 拦截217
  c, V" ]3 {- i; y7 u/ z* \$ k9 Q11.3.2 口令哈希转储2180 d8 W3 N$ q, F( C4 t; d
11.3.3 击键记录221
5 N" h+ D5 L6 ?/ |9 I11.4 存活机制2232 u8 M$ G; {  w3 B- ^2 e; ~
11.4.1 Windows 注册表223
/ u/ ]$ L' x3 k7 {11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
0 J6 u( ~) u& r" A11.4.3 DLL 加载顺序劫持227
1 N& u( N5 o' d0 V, W: ?11.5 提权228$ D/ s$ `! l1 F  ^& w; I/ x* a
11.5.1 使用SeDebugPrivilege228
8 f+ H. D% I# G9 g. T11.6 隐藏它的踪迹——用户态的Rootkit229
, a* Q1 M5 n3 ?: V11.6.1 IAT Hook 230
, I  i6 S* T5 w. Q# P11.6.2 Inline Hook 231
+ n& G: O1 W4 H- d  q# x11.7 小结232
2 j# c1 q1 N+ X+ h11.8 实验2324 f+ M7 H8 J9 E  z
7 C6 I- L. c6 Q
第12章 隐蔽的恶意代码启动 234
& g9 [) `2 b' J9 s* V7 e/ c- \
12.1 启动器(Launcher)234" j+ j/ c; b: N& K
12.2 进程注入234
0 O6 W% k2 A/ N9 D/ v6 [9 h. N12.2.1 DLL 注入235* W! p, k) F4 C% `2 {3 _
12.2.2 直接注入237
% I! ~6 {% V/ k( p6 U12.3 进程替换238
7 ^$ R$ j. f/ x7 }1 Y/ X5 A12.4 钩子(Hook)注入240
$ q9 \1 |: v- p6 N12.4.1 本地和远程钩子(Hook)240
, o  P" M1 B1 D12.4.2 使用钩子的击键记录器2414 k" ~1 h; W% i9 y2 {
12.4.3 使用SetWindowsHookEx 2419 f3 U+ w: t7 R; F! t$ t( ]3 U
12.4.4 目标线程241
3 M; P7 m0 P! U5 X  I12.5 Detours 242
9 s2 H) k' o: A. r% V12.6 APC 注入243
6 C+ P+ E8 A( Y$ F$ H( e* i' W# Y12.6.1 用户模式下APC 注入244
8 ]6 n# E' x* `8 a, U1 o12.6.2 内核模式的APC 注入245
1 _1 T% N& {! x$ k- p1 p) q7 f  T  E) t12.7 小结246/ C! m" `/ `; i( r" i* N8 W
12.8 实验246" p8 C4 G, i: G; D! `: C* _

6 g6 D) y, h: e. b) _+ a/ c第13章 数据加密 248
6 y* H( Q! U0 P( Q: U( Y
6 ^( b  G. p1 q* y- h13.1 分析加密算法的目的2486 ~- }3 g7 d* R
13.2 简单的加密算法248: ]$ j, X5 Y8 C* t- Q/ i* V
13.2.1 凯撒密码249
% F3 N+ [9 l0 F! D( f13.2.2 XOR2492 d  g9 a) k5 f! R- z; u% @. X
13.2.3 其他一些简单的加密策略254
0 t/ |+ d, I% f9 q6 J+ O  P7 l13.2.4 Base642555 {" @$ g4 @) z6 D9 }, ~3 n. {
13.3 常见的加密算法258; Q- B3 F6 O, Z5 {
13.3.1 识别字符串和导入259, s3 D+ m: I' y* X& V
13.3.2 查找加密常量259
: l) J# {- X3 d1 [' u7 {: o13.3.3 查找高熵值内容261% ^( L# R6 a$ K  Z* x
13.4 自定义加密262
% U  B0 W2 a- B2 p. M0 K13.4.1 识别自定义加密263
% D# c9 p) F% O/ I- G& J, ]13.4.2 攻击者使用自定义加密的优势265! m+ i+ L/ U. J: S: h
13.5 解密265
. l: z1 A. v- U$ K% E! \, b2 e13.5.1 自解密265& _* t9 C4 h4 M! `9 U2 M
13.5.2 手动执行解密函数266
9 j" ]1 d  s0 s3 d) h13.5.3 使用通用的解密规范267
3 N$ u( J8 f" M2 G13.6 小结270: E# g  Q; {7 R1 q9 D8 I
13.7 实验271
3 h$ p8 K6 r+ w, ]2 Q
! p1 _% f3 j4 D8 X  `! c3 ]第14章 恶意代码的网络特征273' e5 o  J: B! O4 z7 q4 A

0 \( r. N1 a. X- q14.1 网络应对措施273! S( f2 S3 e" k& }# ]2 `
14.1.1 在原始环境中观察恶意代码273
3 x/ @" p/ V; i8 y14.1.2 恶意行为的痕迹274, x& G8 p  K, d: M8 y1 m
14.1.3 OPSEC=操作安全性275* o( o/ I) {  @. u) \" m5 g/ d
14.2 安全地调查在线攻击者275/ P* x; q& O6 k0 c4 o( e; |
14.2.1 间接性策略2753 |! |# }2 M  R. _: G6 n7 h
14.2.2 获取IP 地址和域名信息276
* m2 z# e8 i) h/ z( D" y( f14.3 基于内容的网络应对措施278
+ S) D% I! Y& M. }* g$ y8 Z14.3.1 使用Snort 进行入侵检测278' n& J* ^1 e) e( L
14.3.2 深入观察2799 h  C; v; e9 X+ V
14.4 结合动态和静态分析技术282
4 V8 m; y% o* n8 J6 {5 D14.4.1 过度分析的危险283+ k! d- u! e9 R
14.4.2 在众目睽睽下隐藏283
9 ]5 p0 _1 K: C+ x4 h14.4.3 理解周边代码286+ @" t" l5 a) |( S) D! ^6 K
14.4.4 寻找网络操作代码287
+ Z/ m8 C- _7 ]. u- S) L9 `; l& c14.4.5 了解网络内容的来源288; X8 H8 z6 n4 f& q0 c7 I$ Y
14.4.6 硬编码数据 vs. 临时数据289# `& Q9 n6 M$ {; e/ }
14.4.7 确定和利用编码步骤2894 f( z) v7 V5 J& [/ M$ u
14.4.8 创建特征291
! Q) P, J& k$ x4 \14.4.9 分析解析例程292
# m' |% d! V" ^/ `# H14.4.10 针对多个元素294
0 U4 B, N% X' H' H$ g4 X" l14.5 了解攻击者的意图295  S! z( K% y4 W  f/ x0 N$ I
14.6 小结296
( j, _' ]% I: z8 g3 @14.7 实验296
* F! T' E$ |# `& ]3 g  V  u; p
' x4 g' ]. h$ H& T6 t# ?! ], c9 k8 ^+ p0 o- ~2 b
第 5 篇 逆向工程, \1 W4 t8 n3 x; u5 d" y
/ V  ?4 U8 w, I; P, q& S5 P
第15章 对抗反汇编 300
, C- S0 i4 {& C: K& _, ~0 j+ q
$ s/ B  d8 {6 G. p/ X7 K15.1 何谓对抗反汇编技术300
; X7 E. t4 A% p: t0 i15.2 挫败反汇编算法301
/ T; k$ ~; A# C8 Z15.2.1 线性反汇编3022 p# T( E& [' y) u" H
15.2.2 面向代码流的反汇编303+ {  b# E3 q+ {) [0 O; Z. C
15.3 对抗反汇编技术306* G1 h: P( ?0 \" J! [
15.3.1 相同目标的跳转指令306
3 `8 s4 A: q1 a9 w- [15.3.2 固定条件的跳转指令307
: [1 F* S- S7 g$ U6 o2 S: M15.3.3 无效的反汇编指令308
9 }, H8 C# b: K15.3.4 用IDA Pro 对指令进行NOP替换311$ B! X1 N. N% _5 L( n' I+ T1 W
15.4 混淆控制流图312
' V0 s6 n1 j$ K6 C* D15.4.1 函数指针问题312  `- e3 K; x4 s( O  j
15.4.2 在IDA Pro 中添加代码的交叉引用313
- t5 [( e* r# n  r6 |15.4.3 滥用返回指针313
8 l+ K0 O1 D6 K/ p( T+ v15.4.4 滥用结构化异常处理315  `7 n" g9 v1 o* r  ?2 @
15.5 挫败栈帧分析317
8 D4 |$ K" W3 _15.6 小结320
7 A  J, x2 m3 }& I15.7 实验320
/ L) ~/ k( n9 ]0 V4 `+ t! O* [6 e0 v' i2 F' g) H0 i) N0 [: \
第16章 反调试技术322- p2 R4 J" S' H5 v6 {; z7 S

0 n9 F- [+ v1 o; B' h5 F  X16.1 探测Windows 调试器322, Z2 h3 s2 |3 O' R/ [) _
16.1.1 使用Windows API322
! z+ k( _3 [$ |, L5 \16.1.2 手动检测数据结构324
( U  ]9 w% `  D# ?16.1.3 系统痕迹检测326  a, p4 |# C# y) K* S; D
16.2 识别调试器的行为3277 d  L8 [" z% _
16.2.1 INT 扫描327
  Y# \1 }- C1 t# ~: N5 w16.2.2 执行代码校验和检查328
" X3 }6 [. H( o5 ~+ p6 ~6 `16.2.3 时钟检测3288 O& _( p$ }4 i- X
16.3 干扰调试器的功能330
) ~( u& R4 `. Z5 O/ ]+ |* ~: K16.3.1 使用TLS回调330
( i8 w, z$ A) t+ E! I6 W) H, i( T16.3.2 使用异常3328 }. u6 i* P6 Y
16.3.3 插入中断3334 I% m( ^2 k0 u
16.4 调试器漏洞334
* n7 d. ~* R2 g4 o9 ]16.4.1 PE 头漏洞334
: L& A6 S. x& \& @; H, B16.4.2 OutputDebugString漏洞336  ~' k4 P& ~8 s, p3 f
16.5 小结336. t; {* T; s$ N1 c3 |0 g5 x
16.6 实验336
  p8 E" {; v( \$ W
& Q0 l; \  T! v3 v# Z' [9 V. n第17章 反虚拟机技术 338! Q9 T# ^; ?$ O; Y9 ~! I2 s! {
5 v- f' X6 c; H) r
17.1 VMware 痕迹338
% t$ W8 V3 J) I* {1 |6 }# u7 }17.1.1 绕过VMware 痕迹的探测340# L4 x, h) h: O: s% |! o$ `$ d
17.1.2 探测内存痕迹342
; Z0 F: U  ?: X9 l  C% P4 x17.2 查找漏洞指令3422 x1 _( |2 g9 f1 B
17.2.1 使用Red Pill 反虚拟机技术3437 t, D8 s8 G+ V
17.2.2 使用No Pill 技术344
( R+ I" a1 _/ x6 l/ I0 t17.2.3 查询I/O 通信端口344
1 N' c+ B$ x$ A6 X- R17.2.4 使用str 指令3453 }: _+ [2 P' _: l+ _# U" s
17.2.5 反虚拟机的x86 指令346
' w$ \: M' i* K; ?17.2.6 在IDA Pro 中高亮显示反虚拟机代码347% y) L4 _) O; I& L' f) Q  f
17.2.7 使用ScoopyNG347# q$ T" L! t! O% n  s
17.3 调整设置348
$ f" P* u8 |# e+ r* b2 y. m' ^17.4 虚拟机逃逸349, a- d0 v3 L& H
17.5 小结349
' D3 e& ?* q0 \  r' p17.6 实验349
# S$ V  V* G+ m- z5 j" b! d
7 b" d5 l2 Z1 M4 f! x8 f2 ~9 [! d第18章 加壳与脱壳 3523 f8 U  {1 B1 v/ i# ^% h
. j  s7 Z) w) V4 w, ?- {
18.1 剖析加壳352
* Q8 u7 X+ q2 q18.1.1 脱壳存根353
6 x0 ~' m9 D3 S1 }5 q3 A4 t18.1.2 加载可执行文件353
* [( @4 k: b1 e% n18.1.3 解析导入函数表353: z3 P& w& i; m$ H
18.1.4 尾部跳转354
- p2 B; b  p$ G# d- w18.1.5 图示脱壳过程354
1 x4 H/ {; [2 M# z- b18.2 识别加壳程序355( {2 j2 _$ k, b1 t+ h4 E
18.2.1 加壳程序的标识355
# e3 |: Z! S5 |0 G' ~' i: x2 L2 ~# z$ c! f18.2.2 熵计算356
( \3 h+ c, g6 c. e18.3 脱壳选项356
! t7 [) V7 C5 N9 ^' T18.4 自动脱壳356
, F0 \" {. V+ N/ ]9 N0 Z7 x18.5 手动脱壳357
" @$ ?7 y6 p. H0 v, i18.5.1 使用导入重构器重构导入表358
3 f3 K' F9 F6 x5 J. f18.5.2 查找OEP359
% i/ [2 H# s& [. [18.5.3 手动修复导入表363
; P' X0 L; I+ x0 g: |% ~18.6 常见壳的技巧与窍门364
, Q* q5 Y& v% j5 G. T/ Z18.6.1 UPX 364
" a7 F5 ^6 V* |7 z! `18.6.2 PECompact 365
  \8 ?2 k  d5 ?: f1 ^18.6.3 ASPack3655 ^! D& o; F5 W8 I, Y7 E! Q, W1 X$ m
18.6.4 Petite 3650 ?0 ?4 p& v- t( }0 L6 }
18.6.5 WinUpack 366/ P! H% w+ x! e; k, Z+ ]
18.6.6 Themida367$ S1 H  L3 ]$ p5 `" |2 U
18.7 不完全脱壳情况下的分析368+ c- N' _2 _( f( ~/ y% [, N7 y1 q. F
18.8 加壳DLL 3684 M" M: @/ ?+ ]3 X
18.9 小结369, i/ T6 N, @4 p. j$ M1 x
18.10 实验3698 W) F# [* `, L+ k* y, R+ B
4 c' f7 E) s; I( M8 l) z$ g5 E/ o7 ^
' J8 g# N$ u) F" @0 p7 F
第 6 篇 高级专题+ c/ n2 B5 e- J5 m4 Q+ W* D
+ `5 e/ a% d% P& s0 G+ y
第19章 shellcode 分析 3728 l0 q- l6 ~8 \5 U+ O% c$ U/ E

' u4 v# e" l. Z4 c. y( K19.1 加载shellcode 进行分析372! G8 c4 R# F: Z( `  M( o/ z
19.2 位置无关代码373
1 \2 `9 b* k: a$ }9 y19.3 识别执行位置3731 D9 l* U5 |% |2 f
19.3.1 使用call/pop 指令374
7 c2 @) l& W" t) i3 ?19.3.2 使用fnstenv 指令376
* p  i! ?8 d  L1 v  O19.4 手动符号解析3779 N. E2 A6 |& J- K0 X6 q
19.4.1 在内存中找到kernel32.dll378
( g. G; C( u9 g! s19.4.2 解析PE 文件导出数据3809 Z3 J3 l) V6 K: I. n: W
19.4.3 使用散列过的导出符号名3825 \3 g1 H$ _/ F4 o4 E
19.5 一个完整的Hello World 例子383
' \5 l& X9 D" B/ c9 R19.6 shellcode 编码385
! b* r! V) t- k. r$ Q19.7 空指令雪橇3876 i" D7 \' P1 Z
19.8 找到shellcode387
$ t" x9 \  g7 W. [( z  r2 e19.9 小结3884 p* `5 r& B; d2 {$ S  k/ x! G
19.10 实验389. H( b* s0 ?1 i5 P. p' L+ x: A
# R) O9 ]" ?2 m, M0 g
第20章 C++代码分析 3917 e- U- U3 y; t2 q3 U% N! v8 J

6 L; @* ^: _) W$ ^0 B, b20.1 面向对象的编程语言3919 L+ ^9 f& u# I
20.1.1 this 指针392
( c. K* ]7 I: L- v8 c5 g% G8 o  ]7 n( g20.1.2 重载与修饰394
0 {" Y+ r, J' F! y" ^20.1.3 继承(Inheritance)和函数重写(Overriding)395# M! h8 Y+ B- C% d7 j
20.2 虚函数和非虚函数396
0 V, p0 }" j# V20.2.1 虚函数表的使用3980 w6 h6 X; E# j: Q# F. O# w
20.2.2 识别虚函数表399
* c" S! r( `" T" S+ a+ P20.3 创建和销毁对象400
9 ^; Q! Z5 S6 a  {0 w; I$ D# d20.4 小结401  i/ ]6 A. B  i9 K( X& ]9 Z
20.5 实验4012 ^! a% F' H, B, }: @/ p7 A+ E" f

6 d! Y7 u; x: N第21章 64 位恶意代码 403( N) M% w, N# n' z
* X* a( s7 q0 R+ U1 V* I# ~) d
21.1 为什么需要64 位恶意代码4034 }/ v$ e* |9 p8 c' o( m9 }
21.2 x64 架构上的差别404: R" ^# }9 [: Q" i& D+ y* D8 s
21.2.1 x64 调用约定和栈使用上的差别406/ T+ A4 o. m$ o, |
21.2.2 64 位异常处理4087 g) U. I/ z1 P. O, ^7 |
21.3 在Windows 64 位上的Windows 32 位408* g6 w8 Z, W  [; f
21.4 恶意代码功能上的64位提示409
; S& [* I+ d: k. w21.5 小结410
0 f& A0 s- P2 ]" F3 U21.6 实验410
7 V% Q" Y5 B  E: e& h& y" |
/ P+ i; c+ T- G, A" `% }附录A 常见Windows 函数列表 4121 @$ j4 W/ U9 m3 F$ r2 ~0 f% Q

6 N2 G0 k  {+ ^; k3 S7 I# C4 P附录B 流行的恶意代码分析工具列表4248 o7 l7 d1 G) u/ \5 U

% t5 W6 x- q/ H+ W; y, E, c附录C 实验作业参考解答435
' l  P7 b  Y9 N2 A; J* L8 i7 `: W4 n7 i
附录D 致青春,基础软件开发的中国故事 691* O, p% h4 w$ z, I$ c" Z
- j; X+ ~, g6 b4 @  W' n
附录E Syser 操作入门 695- b  E; T+ x5 K2 D* U

; @* V4 S/ z1 O6 U$ B1 h& l, _+ S+ ]: e" c0 }1 d
想知道小甲鱼最近在做啥?请访问 -> 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. Y- e, w* v8 |- f& k
什么编程语音写的?
1 G* T$ O" z) H) i$ Z4 _
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-2 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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