鱼C论坛

 找回密码
 立即注册
查看: 16608|回复: 21

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

7 p# M) Q' M3 I/ {0 V4 w; \3 W: @: i( E% K
书名:《恶意代码分析实战》( \1 \, z" ]6 }# M
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
2 k- ]7 @8 n3 Z0 ~译者:诸葛建伟,姜辉,张光凯 5 {- }/ T3 Y( [* c8 {, G
出版社:电子工业出版社, p7 m% {" S0 h" z" C! c( x
出版年:2014年4月1日(第1版)
9 e2 K8 u0 Q9 [9 w: ?1 W( J( L定价:128.00元* y3 ]  O( |# d5 N3 z$ c
装帧:平装
; t! H2 ~8 S/ _* FISBN:97871212246831 P1 B& s% L: C4 P# P1 L' Y/ G# ?4 |

& n$ }$ p8 ?  U1 B' i7 \( D购买链接:1 v( x: s% t" U. m1 Q. i% R- g

5 C( z1 E7 S/ Y  u  x- g
7 \% @9 a# r$ u& `
亚马逊 -> 传送门/ m8 c$ C7 t$ P$ R/ e$ B
( e0 i' b; f; g+ N6 n6 R" d. g& {
当当网 -> 传送门
4 \# t1 X! c" k6 g8 C6 `
& q# {, G5 s3 [) t京东 -> 传送门
% v9 g) F' f' q6 g# O; |
- G# I3 f, A$ S/ {# f天猫 -> 传送门
5 j# z* A9 ~% y# V2 [( h/ W" X8 U6 }. t' q' A

4 h1 A; O" X5 l" ]1 e/ F内容简介:) ~; {6 l4 X' P) ?2 j

- h3 u4 s$ X2 e  z4 n+ L

, Q- D: t! H+ }8 n6 n# E6 Y《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。+ g. ^7 p8 w$ U( A: v5 v9 U+ Q
& e! }% S8 k( U4 U4 E! q! ^
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
8 W/ W1 K' K( Y! j, \! R* }5 z% y( J, ?8 f+ r* R. w& Z/ C1 ]4 y8 T; _* z
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
, t6 K2 N4 P- w8 c5 `, b针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。+ w: C( _* f  a! J4 Y2 Y

/ B5 _; p# D. T8 X0 K: S目录:* i4 A2 [  i, b3 e7 }
  E, D# D' k8 S$ O

) }4 s2 ?% J! ^3 D8 i
第0章 恶意代码分析技术入门18 n3 b+ C" z9 H2 y+ b0 N
% V1 s" {* t. o6 J, X4 H" s3 I; x/ @
0.1 恶意代码分析目标12 L* \. T  @/ S$ j* X( j3 s7 M8 S& j
0.2 恶意代码分析技术2* Y" e3 P, N8 D: z
0.2.1 静态分析基础技术2/ K7 ^, h0 U) K$ W& F* t7 C+ [
0.2.2 动态分析基础技术2
2 K# f- q. Z* u1 S4 [0.2.3 静态分析高级技术2
: p% g6 R3 Q! C+ L7 R) [0.2.4 动态分析高级技术2
0 o- L. a1 h! B# k) n: O' V/ V0.3 恶意代码类型3
7 _8 H) ~' q2 e9 H$ x4 P0.4 恶意代码分析通用规则4
# t' h$ g8 e, p6 g! y4 o; ~7 r1 z% m" D
1 l+ g" f( z$ O' `
第 1 篇 静态分析0 m& t7 _  v5 W5 \" G2 g1 i9 O
( ]  A, e9 u1 F; b# T" T% i; a
第1章 静态分析基础技术 6
& P! H5 K( A" G; Y/ X
  Y+ b/ t- I% D4 X# ?9 s2 Y1 I$ q
1.1 反病毒引擎扫描:实用的第一步6- J1 y3 b8 V3 m0 B8 u9 b% C
1.2 哈希值:恶意代码的指纹7
8 Q# }$ R% s, d& x1.3 查找字符串72 S- D# K+ f; E* d
1.4 加壳与混淆恶意代码92 H+ G$ [, V& F6 q6 V; T
1.4.1 文件加壳10
7 h' R: H3 e4 |$ H9 \& H* R1.4.2 使用PEiD 检测加壳10
4 b5 P) m3 s: k+ T1.5 PE 文件格式11
& q: w$ X! @1 \; e& f3 k1.6 链接库与函数12
8 l% t' E0 B4 G1.6.1 静态链接、运行时链接与动态链接12! ~. E/ T6 i$ {1 \9 @! \
1.6.2 使用Dependency Walker 工具探索动态链接函数13# }) B# `1 j9 ~
1.6.3 导入函数149 ]  f$ c9 i/ x
1.6.4 导出函数15, v* s2 K. d4 q! a# V) F% k
1.7 静态分析技术实践15$ l: I7 t  |6 }( g
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15. \8 [/ M; w% t" ?1 u
1.7.2 PackedProgram.exe:穷途末路181 T% i9 R4 Y/ G/ V/ j; \
1.8 PE 文件头与分节18
& K& J8 k: h# W  b. F1 H, o1.8.1 使用PEview 来分析PE 文件19! i! t) J& J: {3 D# z
1.8.2 使用Resource Hacker 工具来查看资源节220 [, T$ v& V* e; i9 o( \
1.8.3 使用其他的PE 文件工具234 g7 B8 ~) q2 g( `, @7 h
1.8.4 PE 文件头概述23
: u  W% p% U8 }5 n0 \, f1.9 小结24. W# I- c" j0 h3 y) t- T9 z
1.10 实验24
: P0 {% v1 O1 p, }$ k9 R( [/ S0 H' m2 R( z0 U
第2章 在虚拟机中分析恶意代码 27
8 f6 C9 G# U) R" x, L0 K1 w$ T) c: N* [) e; L
2.1 虚拟机的结构27  M% K" W; {5 `( M0 w) ]
2.2 创建恶意代码分析机28
9 U7 P% t0 Z$ E0 Y6 l5 }7 B2.2.1 配置VMware29
7 `+ b. M: t4 J. x2.2.2 断开网络30
1 Z& |- o% N$ X( B8 M7 [2.2.3 创建主机模式网络30! n/ L9 _1 g  Q  P5 u) V: \
2.2.4 使用多个虚拟机30% J$ S$ E- n) _! I0 x( d
2.3 使用恶意代码分析机31
2 I: i$ ^# |$ l) |2.3.1 让恶意代码连接互联网31+ |" z" j/ M! Z. Q$ s; }1 r: F6 O' d
2.3.2 连接和断开外围设备32
9 m/ X8 w2 C7 N3 h, h) b) _  {2.3.3 拍摄快照326 S$ d2 b" ]% I6 r
2.3.4 从虚拟机传输文件33
) S3 x8 S4 j" }1 N$ d2.4 使用VMware 进行恶意代码分析的风险34
6 z) F. `9 h  u# [9 I* R2.5 记录/重放:重复计算机运行轨迹340 s$ F! [" d2 ?
2.6 小结35
1 i: ?% S' Z. o; Z1 M5 }  B7 `' `2 W' G- H
第3章 动态分析基础技术 36
8 r, S' f) X: ]% {

& F( L1 y$ I, l: A! o) Q3.1 沙箱:简便但粗糙的方法36( f! Y0 g: u: k, G
3.1.1 使用恶意代码沙箱36" r% F) l/ J4 G" [
3.1.2 沙箱的缺点37& d! Z( Z' x7 F9 z% @0 p+ X
3.2 运行恶意代码38
$ K0 D1 B, n: f* P  f) a$ O3 ~3.3 进程监视器39
) l# V1 r% m3 Z9 f1 {3.3.1 进程监视器的显示40
4 m0 e7 E0 v9 }1 _9 y3.3.2 进程监视器中的过滤41
3 k# T; W4 K+ ~( O4 |& P* [3.4 使用进程浏览器(Process Explorer)来查看进程43
" c0 q) _1 a# W% F3.4.1 进程浏览器的显示43
( k4 ], B( ^2 \- w5 B7 j3.4.2 使用验证选项44
5 g0 c7 w8 \% s  E+ E3.4.3 比较字符串45
; |4 p! |  {2 p$ @+ Q+ {3.4.4 使用依赖遍历器(Dependency Walker)45( z+ i. ~8 P5 o
3.4.5 分析恶意文档46
9 i$ ^3 Y4 s/ q) b# d3.5 使用Regshot 来比较注册表快照46
0 L1 v1 n& m: ~1 U( b' y4 j3.6 模拟网络47
* A4 M* m4 H2 w# v; J! v# M1 X; B/ B3.6.1 使用ApateDNS47
. n3 U2 C6 P, Y& O3 n/ Y2 Q2 m- n3.6.2 使用Netcat 进行监视48
* h% q! m/ O. J1 b3.7 使用Wireshark 进行数据包监听49
3 f4 \' }6 S$ d: |2 X$ J- P2 M! a* d3.8 使用INetSim51
+ I8 ~) r5 \7 d* n( c2 e2 e3.9 基础动态分析工具实践52
& }2 L8 U3 i2 E$ }: M% Q6 i  Q; t5 c+ k3.10 小结55
4 `, `- Y( r  y5 A0 R% n2 c9 V: V3.11 实验56# d( X- a; E4 _8 m7 e: I( U& O( o

* f) s" `+ Q" D$ d; x$ Q& I
( h0 j: s; \& c2 U# z$ w第 2 篇 静态分析高级技术篇4 P+ m$ r7 z8 Z0 @5 P7 D* t. r
! Y& [3 {) _; t2 x/ [2 t" p% ^
第4章 x86 反汇编速成班 60& [9 S* Q2 Y" h+ S4 m% E

% K# f1 r6 _5 i5 ?4.1 抽象层次60
' k; H1 q5 l* C7 i9 \4.2 逆向工程62
9 c% T, u( H& h( b  a7 N4 B5 u7 ~4.3 x86 体系结构62
1 K0 S& j! K; Y# a7 |& Q/ w4.3.1 内存63* s. x6 `0 B, \2 y9 l. D
4.3.2 指令64
6 X1 a! x- Z/ U4.3.3 操作码和字节序64% h3 f) _6 j0 W
4.3.4 操作数65
7 M# o8 `2 b  R9 y' w4.3.5 寄存器65$ H' A4 X5 t( ]9 S+ @: H
4.3.6 简单指令67; b2 I/ i$ {" w& D1 ]  T
4.3.7 栈702 Z# ?; P( t" R  T
4.3.8 条件指令73
! ]: S, X5 ]1 b) f; ?& N6 ?( J% g4.3.9 分支指令73- B  D7 U9 V/ h- U
4.3.10 重复指令74
; t. P3 F" g/ ?. {4 o4.3.11 C 语言主函数和偏移763 L3 c$ v, |1 O6 R% ^/ o3 Q
4.3.12 更多信息:Intel x86 Architecture Manual77
3 v1 Y; k: f! d' c. p! l4.4 小结78, P  z) k5 ^9 I" X- L

+ r4 M: [3 g9 {7 }" M第5章 IDA Pro 79
. j" o. b" r' E/ N
1 V! d( y' o( I4 e1 k" s5.1 加载一个可执行文件79& [4 d+ Y3 a( ]4 r& A) U/ J: f: ^6 b
5.2 IDA Pro 接口81# T% G4 [' V! `& `  x
5.2.1 反汇编窗口模式81+ n( N: l! L0 `: F, E
5.2.2 对分析有用的窗口83+ V: M% f5 B. V
5.2.3 返回到默认视图83" b# r& I+ E2 ^0 m! D5 O& e
5.2.4 导航IDA Pro 839 t2 I' j7 i; k3 A% ~+ Z
5.2.5 搜索85
: m9 }0 ?+ a: v. O) y/ m$ Q5.3 使用交叉引用86! \9 Q" U6 y$ N
5.3.1 代码交叉引用872 [/ c( H" t( t3 Y$ N" Z' b
5.3.2 数据交叉引用88
2 a8 `/ Y$ u- i. s. g! E; A6 k5.4 分析函数88
9 Y* o% e; G1 Y: X+ P! f5.5 使用图形选项89- o1 ?3 y& v! r2 k5 m1 |$ a
5.6 增强反汇编91
  p. S9 o$ h  M5.6.1 重命名位置913 |; Z% p1 E4 `; W
5.6.2 注释92
4 H* a0 {, O# x$ ~% ~5.6.3 格式化操作数92* z0 E4 v/ |- O+ s4 `
5.6.4 使用命名的常量931 `7 q" F. q0 {9 w9 N
5.6.5 重新定义代码和数据94
0 A. t9 u. }0 T" w$ m5.7 用插件扩展IDA95
* Q4 h, t( I" \+ {# r$ l5 F5.7.1 使用IDC 脚本96
2 q* H* p+ q" t: C- u& P  H5.7.2 使用IDAPython97; O1 d: g5 g& Z1 K- F
5.7.3 使用商业插件97
( D$ K6 n8 D, W* B! j5.8 小结982 ]& Q' Q5 C: u3 v
5.9 实验989 a3 _; M% Y2 c/ d8 ~: L: r& l1 j
: ?) G- C- Y5 T, f9 S
第6章 识别汇编中的C代码结构 100

$ I9 D# G& x) E, k, `/ r6 Q6 i; V7 k% q% y
6.1 全局与局部变量101
9 E7 k/ r% L% p7 m5 L2 T* P6.2 反汇编算术操作102/ O2 N6 V! C/ n6 I
6.3 识别if 语句104! [. {0 A& L* g# I' f
6.3.1 用IDA Pro 图形化分析函数105) |& J' s" L' w2 e
6.3.2 识别嵌套的if 语句1060 l4 e4 y) k& v: @
6.4 识别循环1075 G  H" c1 e( p( A1 v2 ~
6.4.1 找到for 循环107
6 k& H2 G, \1 M6 n, x6.4.2 找到while 循环1090 J" S1 d( ?3 Y; @, V
6.5 理解函数调用约定110
3 U. |8 C. u. u* h% s1 t5 Z/ r6.5.1 cdecl110$ [+ [5 e2 y9 F' ~8 Z2 y: K
6.5.2 stdcall 111
3 ?  u% _" x0 r! L9 @6.5.3 fastcall 111
) g2 p' i+ J% \6 H1 V2 L( e8 [9 D6.5.4 压栈与移动 111
, j3 @" w( h( W: B' w6.6 分析switch 语句1122 i) ~4 b* ]+ {. _9 e4 C
6.6.1 If 样式112- {' B" S. E% J7 N
6.6.2 跳转表114" I, u" P0 H8 p) T( x# u& D9 N
6.7 反汇编数组118$ D0 ?' S2 @1 R, d9 q! P
6.8 识别结构体119+ `0 j; k3 M3 ~" i0 a# f7 ]! E
6.9 分析链表遍历121
2 W$ j# K% t4 U# B7 o/ F. @* o& ]6.10 小结123& P7 e: q  B9 c0 Y* N. D
6.11 实验123
+ ~3 ^0 g7 X5 k7 c0 a3 z) b: [* _0 _
第7章 分析恶意Windows程序 126

5 K2 c- U# }7 \: A3 t
. k9 r) l+ [: u% t5 M7.1 Windows API126
3 C& u8 h8 k! _( N7.1.1 类型和匈牙利表达法126
' q9 i4 k9 R( T# Q" G7.1.2 句柄127
4 @/ J# L' |1 z9 \3 X7.1.3 文件系统函数1274 H/ O7 r* D( T  }; b- z  J
7.1.4 特殊文件128% w- F% d+ Q) h. s& s( y( z% ]
7.2 Windows 注册表129) Y4 p+ {( i& A2 m
7.2.1 注册表根键130
' a4 G8 \$ g* j+ o' h3 J6 r7.2.2 Regedit131
; ~8 m$ J9 C- I7 q7 I+ z7.2.3 自启动程序131
( q1 X$ y6 y3 i! ^/ x7.2.4 常用注册表函数131( E3 `0 |2 C& V# f- M+ V1 e
7.2.5 练习分析注册表操作代码132' |- W7 x4 d4 U0 L+ W
7.2.6 使用.reg 文件的注册表脚本133" T' F7 z" f& D* J' T' {6 B& Y
7.3 网络API133
& R- F! N9 n4 w) }3 u: b; }  B% ]7 l7.3.1 伯克利兼容套接字134
- _2 v6 {* Y  V7.3.2 网络的服务器和客户端134( [2 }8 j7 T/ a9 m' X  u" O1 d; T
7.3.3 WinINet API 135- }* Q4 n! B8 ]4 x7 S" \9 H% A( s
7.4 跟踪恶意代码的运行136
2 v1 Q* i% ?) T3 b7.4.1 DLL136! @) m# J# V4 j) p5 D8 A4 B
7.4.2 进程137
& x4 n7 \" y  Z- K$ P* z7.4.3 线程139- I* q1 r7 s  y$ B
7.4.4 使用互斥量的进程间协作1428 f  ?% }/ `! B, c3 A
7.4.5 服务143# m* S" d% G4 A5 g8 v% B6 N* a
7.4.6 组件对象模型145
8 x: s0 P8 t4 H" L) G5 L' o7.4.7 异常:当事情出错时147
& P3 ~8 T- j+ V7.5 内核与用户模式148
: C0 X$ p( [% ?6 e8 p7.6 原生API149
' P: q1 e* C3 B" X, V7.7 小结1519 T% ]* Y% I$ [, j
7.8 实验151
* Z+ C3 i* D. M" a, _( _" n( n2 u9 U0 Y( u, N5 C
) r! m' A5 ?+ x4 T+ Y
第 3 篇 动态分析高级技术篇
$ o0 x$ z3 ~& y7 o: }: P3 i
# g/ }4 ?, s) T) e1 D第8章 动态调试 154
) h3 A) r4 S& l6 H6 I
: N# N6 T- v" H* {& J8 e8 P8 H
8.1 源代码级与汇编级的调试器154/ n' ^2 o4 x( Q/ ^# A& C
8.2 内核模式与用户模式调试1558 s- S. r$ s0 o1 o8 ?8 G
8.3 使用调试器155( P$ x% X2 a6 S
8.3.1 单步调试1557 ]' y( H- p- t1 ]% k
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156; E2 @! f3 J! N$ s" g" [$ z
8.3.3 用断点暂停执行157) M2 n, |2 Y+ n4 M' d% d% ?
8.4 异常1613 \* Z6 R5 e- d# N4 a# G
8.4.1 首次和二次异常处理1623 P! H0 \" F" `
8.4.2 常见异常162
$ |/ g# b! a. s8.5 使用调试器修改可执行文件1631 @0 y' n4 s6 j2 Q! U( H
8.6 修改可执行程序的实践163
5 e$ |0 y) A6 P0 c4 `: J/ n8.7 小结164, {- |9 j% P& Q: ]  X2 d9 s0 l, @
8 k  W% u( M! p, Y/ M/ ^  W$ ?, C
第9 章 OllyDbg 165

( \, k$ H# ^* G+ u3 j, N: T+ B. i# [
4 F6 e, w) R9 R) ]7 h0 u( N. F9.1 加载恶意代码165* R. R4 H  ?7 z, i7 Y* P2 P
9.1.1 打开一个可执行文件1659 j2 K4 {: f" S) M9 Q# {
9.1.2 附加调试器到一个运行程序166
0 m+ U% @0 g6 Z+ i. U+ N9.2 OllyDbg 的接口167: A) p4 x3 i* ^' F  R* I1 }
9.3 内存映射168/ P# Y: ^% a. k! y& R; A" E5 A
9.3.1 基地址重定位169$ }5 B2 E2 F2 ]3 t6 ~( Z0 m; m$ x
9.4 查看线程和堆栈170' N2 K4 ]" ~7 Z, ?6 h. N6 D
9.5 执行代码171
8 z7 s$ x7 U1 O* P3 K: h# ^9.6 断点172) \. ~; Z& W6 u( m, e& p4 q# K' Y
9.6.1 软件断点173- k; I# Y9 e# {/ i+ x) {# L
9.6.2 条件断点174
" o% F! e  ~* ^+ i+ u9.6.3 硬件断点175
7 B9 ^. R; ?  T" f5 i8 l- c9 t9.6.4 内存断点175
, j  t8 Y7 A, U$ s" P6 o' Z8 K/ ~9.7 加载DLL176
  s) G  U! B* Y4 _9 K9.8 跟踪177) G8 E( D: G/ P" A5 M- }& d8 `
9.8.1 标准回溯跟踪177
0 U! ~- W, @- X5 K7 S8 g& q9.8.2 堆栈调用跟踪178  Q4 t' s7 d7 L, @3 B) W& d( ~+ b
9.8.3 运行跟踪1781 r5 ?5 @! \7 q; M" x* C
9.8.4 跟踪Poison Ivy178
6 u! d# }* a3 U5 [9.9 异常处理179
$ [7 Q5 u! w6 ^1 m2 a0 P2 F+ A9.10 修补180' t  K! p) b0 U) U# _5 G
9.11 分析shellcode181
4 c5 U- i) B5 n9 P1 l+ M- N* l9.12 协助功能182
+ W- r0 w& o5 n9.13 插件182$ z* i3 J4 o+ ]. K3 c) P, B' I
9.13.1 OllyDump183
" j) e4 {# v$ ?+ f& g% l9.13.2 调试器隐藏插件183! H! X0 E4 a. l2 p- K' `
9.13.3 命令行184
/ w" w% q9 @$ B* b4 t  W# \9.13.4 书签185% w# N) v, g- O) l- I; W8 b3 N
9.14 脚本调试185% Y8 l" w1 u$ b7 h2 [& [' X9 V
9.15 小结186
$ q: Z1 @) E+ J& }' r) J7 s- J$ Y9.16 实验187
. B2 S1 I6 ^: t8 f$ ?% q, P( l0 p: P' T
第10章 使用WinDbg 调试内核 189
$ Y; k" C, G% W3 V8 _1 ~8 t& h7 V0 g8 N7 Z2 A6 i6 z
10.1 驱动与内核代码189" x. t; {% c+ m$ k1 a2 |
10.2 安装内核调试191. v) }4 `7 c/ B' M; ?5 b9 E8 A
10.3 使用WinDbg1937 z$ f  {1 d$ u( |
10.3.1 从内存中读取194
3 q; n$ n6 f( t8 J' }10.3.2 使用算术操作符194( s* r5 H" d4 b( b( t
10.3.3 设置断点194
) n1 D( C, T' {+ g% y3 [; ?10.3.4 列举模块195
8 Y& ]! n" D; d& n4 D( E10.4 微软符号表195% i  f' ]+ o2 T0 g* M" d
10.4.1 搜索符号195
* L3 y7 M9 a; q  s10.4.2 查看结构信息196
% J, a0 M( _3 l" {/ @# K10.4.3 配置Windows 符号表1988 e1 X' ~8 k1 o" w
10.5 内核调试实践198
8 I2 r) l7 v( P! c- M10.5.1 用户空间的代码198+ M# l& k8 ?9 s! E- m
10.5.2 内核模式的代码200
% n* U# r! V5 h0 _10.5.3 查找驱动对象203
9 E" D: L" b- ]: ]3 f5 [10.6 Rootkit204, M( D" b* _$ J! L! g9 R7 O
10.6.1 Rootkit 分析实践205
$ U2 Z+ E: Q  C4 Z6 e! s+ P& {9 j10.6.2 中断208
, ~$ D6 A. V% n6 k10.7 加载驱动209
; R" K& P- t2 b" s+ L10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
0 }  V5 ~3 @( Z' j10.9 小结210
+ S7 H6 U4 q# ]/ `10.10 实验210
& O3 o* ]3 E; s8 ?/ g/ N# ]% M' z6 x( m4 r
1 s# S# z+ \, L) g: X
第 4 篇 恶意代码功能篇/ R. j0 Z8 S: r' H5 Q4 L4 s: O' O
$ n' |5 S& e- x
第11章 恶意代码行为 214# A- {0 e8 V( |$ e3 l* r
( h" {. J6 W% H2 {/ N0 F% _
11.1 下载器和启动器2146 O" O3 ?6 S9 g5 P1 `! b* K
11.2 后门(backdoor)214
% C  m% x% c5 N; D' q11.2.1 反向shell2156 e1 x8 z+ m7 R+ t' J3 Q, f. R
11.2.2 远程控制工具216) G  X4 E  \% r/ E% b3 d: k
11.2.3 僵尸网络216
' Z) K/ r) O( v( k$ t% n11.2.4 远程控制工具与僵尸网络的比较217
+ B5 J# N' W' w( M" }% s11.3 登录凭证窃密器217( r/ L/ ?- z! L
11.3.1 GINA 拦截217. L3 Q" }0 Y7 K9 `) _  \0 k% X
11.3.2 口令哈希转储218. l* i) N& p7 d! k  X8 Q1 W; q2 |8 V
11.3.3 击键记录221& v) M- I. G+ i4 r/ p  W
11.4 存活机制2234 W, u4 y+ ^( t1 f0 W
11.4.1 Windows 注册表2231 i6 W/ a$ c$ R) C2 j& u* O" R
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
3 ^  w$ c8 h3 p% ~6 ~11.4.3 DLL 加载顺序劫持227
+ F" u$ `2 U' ^4 C11.5 提权228+ T) ]6 j- a: E: W1 x
11.5.1 使用SeDebugPrivilege228. w3 r0 f* O) Q& H2 u" s7 q
11.6 隐藏它的踪迹——用户态的Rootkit2298 I1 s6 g2 O$ A& y5 P
11.6.1 IAT Hook 230" y# k; u9 A* M" Q! G3 J0 d: h
11.6.2 Inline Hook 231# x2 J5 M: i* U% `& e7 e2 Q+ S" y
11.7 小结232, {5 F: I' f# v* ?0 _
11.8 实验2324 I2 O% F& i+ s: \  {" l
, p2 S7 v# G, a; t, k) C( Y
第12章 隐蔽的恶意代码启动 234" j  k3 y9 g% ^! B% k

- Y1 U& R! o2 a- G12.1 启动器(Launcher)234
$ j+ L* V2 E1 F! ?6 D12.2 进程注入234
( `6 x5 L5 u0 }% v) s12.2.1 DLL 注入2358 y% Q8 f; W7 l' x
12.2.2 直接注入237( R" C1 a! @5 \* s
12.3 进程替换238
9 \: I/ Y6 ?  _12.4 钩子(Hook)注入240
0 u- A2 C( T: j; ^# c3 p' ?. p6 L12.4.1 本地和远程钩子(Hook)240: I& {. O7 F3 k5 W: W' q5 n2 F# q
12.4.2 使用钩子的击键记录器2410 c+ v0 |8 m* J) t% p
12.4.3 使用SetWindowsHookEx 241& W+ m' @+ ]2 ^+ j6 Y/ L
12.4.4 目标线程241
- F/ [" K) q! e12.5 Detours 242
. z! S! Z  t( v) N9 o" \/ c12.6 APC 注入243: ~9 D) y7 A" R
12.6.1 用户模式下APC 注入2445 c4 a4 e) x8 b. `
12.6.2 内核模式的APC 注入245
) l6 G. N# a2 S* A6 R12.7 小结246! |7 B, u( c/ F- |( h5 \# a6 _/ D
12.8 实验246# q; |2 ]; i6 c8 D8 d
, l% O) b: c) I' h, Z
第13章 数据加密 248/ R" V( f' y) i4 v; x  {2 q
% m; [- G6 p. O; H/ Y
13.1 分析加密算法的目的2481 X: f% T5 i- a+ j
13.2 简单的加密算法248
( g( ~, Q+ g! T/ E. V, e, q* r, y0 F13.2.1 凯撒密码249
. B" }! U1 Q/ F+ Q% F3 l4 g4 E13.2.2 XOR249
4 w: Q7 h- O; t13.2.3 其他一些简单的加密策略254% |5 V1 {: G+ h# Z5 S/ Q
13.2.4 Base64255
; D/ a9 U" [4 a3 \& q  G8 R1 C' T13.3 常见的加密算法258  ]& I5 z  L$ p) K9 g# H7 L
13.3.1 识别字符串和导入259- |- V4 x# y; C% @& P
13.3.2 查找加密常量259& ?+ w( M& t! k. X  K* u
13.3.3 查找高熵值内容261& g) H( Y5 `: w/ B6 p: W
13.4 自定义加密262
; P8 L+ A5 m/ t( e" c7 W1 ]( _13.4.1 识别自定义加密263
- K! U4 N2 U0 Z$ }. W7 \- ?7 l13.4.2 攻击者使用自定义加密的优势265. R7 l# _+ L" b" O
13.5 解密265
$ W" j( U: P8 j+ L/ ]13.5.1 自解密265
: B8 g3 f: E) z: Q/ c5 u+ E( Y13.5.2 手动执行解密函数266
, F$ \  w" M; J2 V13.5.3 使用通用的解密规范267
* ]/ ]) t" w0 `13.6 小结270
. T7 F$ S! W9 M% I" a. m0 j13.7 实验2718 x  c' p8 D7 D

4 f1 k# j, r; i  W& d/ u第14章 恶意代码的网络特征273
9 V/ {3 D3 u& P( p' d8 ]7 f& J7 A: B  {- `3 B
14.1 网络应对措施273
' o7 c0 F  s0 e6 E/ T14.1.1 在原始环境中观察恶意代码273& L# G8 C3 _8 [# q! c* P4 L! e  C) Y
14.1.2 恶意行为的痕迹274
9 L' j2 B, e1 Q- p+ F) ?% S5 A& h& B$ D14.1.3 OPSEC=操作安全性275
- m5 E- v' q/ ?' c14.2 安全地调查在线攻击者275
. l3 A( i9 r+ F+ Q: w8 P14.2.1 间接性策略2751 y+ o& U/ g. K* ]0 I1 X8 p
14.2.2 获取IP 地址和域名信息276, T: l1 N# A; d) _3 \/ k* f
14.3 基于内容的网络应对措施278
9 l- G3 S& h- M14.3.1 使用Snort 进行入侵检测278* T/ k; I8 L1 F8 k9 Q& ]( ^
14.3.2 深入观察279
4 A( F( p. v; V2 q14.4 结合动态和静态分析技术2822 \  s4 i. }4 \/ ^6 T4 A
14.4.1 过度分析的危险283( U' m$ N$ o, _+ R& J9 P) B+ n
14.4.2 在众目睽睽下隐藏283  i+ T- r- u- R) Q, A5 m
14.4.3 理解周边代码286: G# D& T, [6 a+ C% ~
14.4.4 寻找网络操作代码2872 i7 B& F& L4 ]9 T' O
14.4.5 了解网络内容的来源288+ S4 }0 F- J& f3 e3 o
14.4.6 硬编码数据 vs. 临时数据289' |+ b0 k% l3 c1 t' U0 G
14.4.7 确定和利用编码步骤289! s5 p7 Y3 v9 |( V" j+ c) o
14.4.8 创建特征291. x& L4 m& x! ^/ F5 ?5 W1 Q- i: c+ K
14.4.9 分析解析例程292
& O' F3 I4 ?) ^/ a. `14.4.10 针对多个元素294" r" D3 J" \5 G/ B+ V( k* v
14.5 了解攻击者的意图295: ~& S5 |$ M. S' h  |
14.6 小结2966 A) m$ Z3 J) L  R
14.7 实验296
0 `; \) D9 ^' L/ r2 s
5 c0 S5 o2 A$ e" M& W' C4 Q% [& N. O8 h, U- C
第 5 篇 逆向工程
! S. O9 l' T+ X  o; B& Y* v4 D5 Y0 [9 u6 E5 s% u& I
第15章 对抗反汇编 300
. t, F8 j. g7 U: w( j7 _/ i4 t' J. M+ z4 B& ^. ?4 f
15.1 何谓对抗反汇编技术300
9 k# T" K/ G) ]) X2 s5 Y; y15.2 挫败反汇编算法301
2 C3 r) K1 N' g7 X/ ?15.2.1 线性反汇编302" C4 I% Y% Z' S( i
15.2.2 面向代码流的反汇编303, {$ t) L6 p' H/ \/ w8 K9 J/ N# ]
15.3 对抗反汇编技术306
7 [! G9 G" w. R, q/ b! W4 v# G15.3.1 相同目标的跳转指令3069 Y( a' u+ u* Z+ U0 A" ?
15.3.2 固定条件的跳转指令307
1 a+ O) j: ~4 v) h15.3.3 无效的反汇编指令308, i1 {7 D1 M' l! y- [* L
15.3.4 用IDA Pro 对指令进行NOP替换311) v1 w. e& H6 O6 M* N  `
15.4 混淆控制流图3121 A/ j: |2 G- S1 d' A& n
15.4.1 函数指针问题312
3 `( B' _/ }$ a0 h& k& J& A15.4.2 在IDA Pro 中添加代码的交叉引用3135 `+ i/ K9 u0 b- H( W
15.4.3 滥用返回指针3137 D7 j1 b% O5 V% y# a7 m/ P6 X3 L5 B/ f! C
15.4.4 滥用结构化异常处理315: _1 w* J% ^6 ^& U: I
15.5 挫败栈帧分析317
% z8 {# `2 H8 s: W! a# b$ ?15.6 小结320/ T' X7 y! z+ s7 l, T5 x; X. [* M) Y
15.7 实验320
7 @3 C! y/ Y/ G* C3 \& o  v) ?7 R& o' W( U0 K% ]* X; S. a
第16章 反调试技术322
% d: ^: Q; Q% z: x# I8 f. h" \) d9 c+ ?- `8 m! K; {- P6 m
16.1 探测Windows 调试器322- z4 Q, G: @6 F; K$ O" X7 x
16.1.1 使用Windows API322! Z$ _7 R$ @: x: F( d
16.1.2 手动检测数据结构324) {. i& I- i2 s# `1 X
16.1.3 系统痕迹检测326
4 _# Y. ?- o  ^$ o3 A0 B16.2 识别调试器的行为3272 J" Y5 z( W! Q7 k1 \. O1 y* q
16.2.1 INT 扫描327
( s6 P9 s  ?9 D16.2.2 执行代码校验和检查328
1 C; [1 J1 ^" G' G: U16.2.3 时钟检测328! e( |3 c3 E& D. e. Q
16.3 干扰调试器的功能330# A7 c' F3 a( w
16.3.1 使用TLS回调330' k$ o3 n& Y1 R# H8 j  m9 J
16.3.2 使用异常332' }. Z( M6 Q/ f" I7 p2 C. \
16.3.3 插入中断333- P  o$ O5 H4 `0 k7 |0 d
16.4 调试器漏洞334& a; T, q# `# ~8 A( x1 c$ c
16.4.1 PE 头漏洞334+ {& S+ o; {6 t2 H
16.4.2 OutputDebugString漏洞336
. E2 s3 @3 j* I  e. O9 ~; X! V  q16.5 小结336
+ @! c6 y- d% J- ~4 x* y; C, R16.6 实验336
7 z8 f7 Y& E6 l3 ~+ f9 Q5 O0 C% M' V8 V
第17章 反虚拟机技术 338. X; g: n" S) O$ Q) H) G
. X: b( n% p5 g3 s# |
17.1 VMware 痕迹338- ^4 _  E' E& {' y7 @- k6 m- a2 p8 l8 _
17.1.1 绕过VMware 痕迹的探测340
9 a' S# ^) @' H% [0 g17.1.2 探测内存痕迹342
' D5 _% d! S- C0 Q4 |6 ]) ?1 M17.2 查找漏洞指令3421 F5 Y5 H% j6 L& Z
17.2.1 使用Red Pill 反虚拟机技术343
4 ~( ~  K: f' T9 L; d1 g, X3 X17.2.2 使用No Pill 技术344
( ]0 m# ?+ U, A6 |) b17.2.3 查询I/O 通信端口3446 v# N/ G! A, q: S. K/ U/ m0 J+ P" M
17.2.4 使用str 指令345
/ R# V! C" t. C6 A+ o17.2.5 反虚拟机的x86 指令346
3 Z9 E4 J+ [, V  R% v17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
- k/ }' g8 S3 c& E! I6 @. Z0 W17.2.7 使用ScoopyNG347
$ t- c3 x: K! o0 v! W' C17.3 调整设置348
: _$ U  O$ c$ K9 d17.4 虚拟机逃逸3496 `* k4 K$ k6 x4 O# ]
17.5 小结349
" W8 T% C( U! R! J% ?- e0 N  U! X+ M17.6 实验349  r8 `; O- c/ V% {% A

( U7 p# `7 f+ m% x$ I" L第18章 加壳与脱壳 352. U) j. r' |9 M$ X6 ?, Q

9 P- L0 }! y. y# C" C18.1 剖析加壳3521 s, k% ^1 A) O* q
18.1.1 脱壳存根353
' z# b# y0 V- o' K; Z18.1.2 加载可执行文件353
( N( P( i- w9 e4 W7 X* K$ t18.1.3 解析导入函数表353
" U2 T, s; r0 H/ b  ?+ a- M* b6 L. U) X. W18.1.4 尾部跳转354
* D- w, y; a7 Z+ Y18.1.5 图示脱壳过程354
9 Z& n. A6 G: ?$ k18.2 识别加壳程序355
2 a8 p! ^0 |) F  ^, k18.2.1 加壳程序的标识3551 r- e7 F; J3 ]: g' S- j
18.2.2 熵计算356
7 _7 [  E5 n- u2 d  J18.3 脱壳选项356/ F: J! D- w+ B4 v5 Q5 p) ^
18.4 自动脱壳356: i" K' b5 k% T) V* e9 D; r
18.5 手动脱壳357* m- @5 ]) g  z' _
18.5.1 使用导入重构器重构导入表358
- G9 ]1 @; R6 N9 {5 ]18.5.2 查找OEP359
7 m# V% ^5 E9 `+ l$ g, B, f18.5.3 手动修复导入表363+ p% l$ e1 T5 f1 X! V7 x
18.6 常见壳的技巧与窍门364
: B- [; S$ p+ e7 \- y3 O18.6.1 UPX 364
+ o! k$ h( Q# ~# z& q18.6.2 PECompact 365
+ M8 m' @* |: |18.6.3 ASPack365, Z( B- X7 [* f4 j  o
18.6.4 Petite 365$ b2 y" `' t/ j! K" W$ D
18.6.5 WinUpack 366
: V. x# I7 s7 J0 i" R# I18.6.6 Themida367' j8 Z9 A' Y+ x7 W* z( }3 e
18.7 不完全脱壳情况下的分析368/ Y4 g  p0 c5 t$ @
18.8 加壳DLL 368
! }) r* Z. N3 _# i$ H18.9 小结369
/ N7 E, m' k$ n- Q9 G1 J' V18.10 实验369
+ a6 d  r9 {/ ~4 J4 s. g+ |4 f, [; \& v  g" `4 ~
% ^5 ]3 r4 b  ^+ |% q: F
第 6 篇 高级专题
6 u0 H6 N* E$ g9 Z& K1 X1 ?6 g0 [3 [- n2 Z
第19章 shellcode 分析 372
, c! [( }  y8 W  E8 K9 t
' p6 b! I  z7 O  i+ {' Q19.1 加载shellcode 进行分析372
4 g+ o3 G, n2 |( f! B6 P% e; M19.2 位置无关代码373$ q/ X& @3 i4 p5 |1 }: W4 E
19.3 识别执行位置373; O- S: z9 K7 N% R; s
19.3.1 使用call/pop 指令3746 [8 ~5 ]4 g  l6 L7 A
19.3.2 使用fnstenv 指令376
- X' t# s. }/ q, E+ Q- M* _19.4 手动符号解析377
. L% Q9 W1 E; J' l; A' P19.4.1 在内存中找到kernel32.dll378$ }7 M6 n# i/ I9 g& X8 O: i. @, f
19.4.2 解析PE 文件导出数据380  h0 r3 m2 D- n1 l7 y: `# l
19.4.3 使用散列过的导出符号名382
: Z: z7 a4 p; o; n) n19.5 一个完整的Hello World 例子383( c$ H( R% |' w# h, Q) ]  q; F
19.6 shellcode 编码385
% N( v  F; V/ y7 I: u19.7 空指令雪橇387
5 H* w( a$ ~' U; z8 M19.8 找到shellcode387
( q& i8 m6 v  E: E9 q( ~( e% M19.9 小结388
! M3 o. ^1 t. |; }: ]! {6 F# k19.10 实验389& S/ e* Y4 i, r- R9 t+ s; C
: J0 I) S& Y+ T! h5 M
第20章 C++代码分析 391
! D- K; K/ S, X( ^) b) D( j# I' t0 U; W! Z. M8 H# a1 O! R! p
20.1 面向对象的编程语言391# E) R) ^+ s, p% u2 z" t
20.1.1 this 指针392  D+ q# p7 @4 K- _0 [% g0 m
20.1.2 重载与修饰394
* h+ x7 K, n! ?; ?, {20.1.3 继承(Inheritance)和函数重写(Overriding)395
' y+ m! l$ ^) F2 z* P) M20.2 虚函数和非虚函数3964 g' G" P- @0 K, m, z5 _
20.2.1 虚函数表的使用398  v! ]' @7 N- v+ ~+ Y# A( c
20.2.2 识别虚函数表3990 V! q5 y3 R" d8 W# Q0 r
20.3 创建和销毁对象4000 t. y5 V- z, ^# }, x( y
20.4 小结401" Z  p- R: O6 F5 C
20.5 实验401) B) ~( Z* t% Y* U2 y

4 s2 M; }3 r! c9 K! d1 j: ^% j  P第21章 64 位恶意代码 4033 ~1 M" R! p8 _" x8 b9 T8 @

+ [8 B: ~) Q" j# I% x6 o21.1 为什么需要64 位恶意代码403
; Q0 q; S# \; s7 o21.2 x64 架构上的差别404& A7 Q+ j4 ]' c% \+ s$ @
21.2.1 x64 调用约定和栈使用上的差别406
) E6 V" w, V2 \% s21.2.2 64 位异常处理408
1 V* Z8 K. i) k& i21.3 在Windows 64 位上的Windows 32 位408# K- z: @$ ^! f& z' x. H7 W$ G
21.4 恶意代码功能上的64位提示4090 f  y% P8 ]* z5 b
21.5 小结410
3 j" n9 z" n( c7 [5 v1 r- V21.6 实验4107 l! z! i7 }' ]

) L  Y9 _( |* h. H9 C: j附录A 常见Windows 函数列表 412
' W& R7 T# M1 L( S& T$ j( N/ j/ t/ L  q9 J% [
附录B 流行的恶意代码分析工具列表424
# O! B! n2 t+ w3 n9 q; N4 S7 ~/ D6 ~8 r6 h; i' }
附录C 实验作业参考解答435
8 O- h4 E  a: o. g* f2 Z/ B; t+ p% P  {2 y
附录D 致青春,基础软件开发的中国故事 691) I0 g9 n- e; d8 y

4 V+ k" v5 u: s( w4 {. O+ q: o0 ~- N附录E Syser 操作入门 6950 H- S# s9 k! ~' R$ A5 C# e3 h
! H, q6 P1 L0 W
6 T0 e& _, U1 r$ }* n9 r3 r, 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
7 `- e1 [3 _2 q+ F$ ~; t什么编程语音写的?
4 W% X6 L; v0 T5 _! t
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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, 2025-1-23 10:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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