鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

/ k0 l/ W0 \' H# J" N+ S* m% e, C) D+ t* A
书名:《恶意代码分析实战》
/ E" g0 N& ]3 v+ _8 f1 n作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)# T& [6 f: d3 f1 C2 r0 X8 d3 b
译者:诸葛建伟,姜辉,张光凯 - r& I1 ]* g: v3 ?: v
出版社:电子工业出版社& I) F% p$ B) m6 y1 j; f
出版年:2014年4月1日(第1版)9 @- d! I6 u3 [" W8 y
定价:128.00元  @0 {: Y! R7 _) Z) D( N
装帧:平装. u# m( u  f7 x- z
ISBN:9787121224683: y  G1 W  D/ B" ?! n+ `; h

5 f' b6 ?8 q( L, i1 t购买链接:
! q$ z5 {5 C4 t2 o9 h# ]* \
$ ~9 d3 u. F/ E

, Z7 _# C* ]& ]* m! H亚马逊 -> 传送门
4 V& k1 O8 L- x( q% R9 I) ?, j4 V  [3 q
当当网 -> 传送门
7 S) I5 d$ h5 M2 E# m, T* B' I) V' [! \3 ]2 s- E: w% f7 i  j( B  o5 l
京东 -> 传送门
5 `3 C3 `3 g& R/ T/ t% z+ G" `/ q  w
, R4 T8 w$ n" N! ~# C. R天猫 -> 传送门# \) f3 `& i1 i2 N
, M- J5 J. b( [' e7 a" H

* _8 F5 S" C( i$ U% m+ ?9 J) m; Q2 [内容简介:& @, B0 d6 K3 @. J9 k) ^( F0 P
. [; Z( h+ L4 z1 D

& f' K6 I- J, P1 e, g' {% v/ j7 _
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
- r/ R) t7 Z; J! s% n7 g& z( c4 j) K1 e9 n+ f; V% h
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
9 r9 X+ w$ \3 N9 E% K  e& f* }5 h8 }8 W1 E* [0 _" U& A/ ^; [
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;+ [2 Y. l2 `/ H3 B, w4 ?% E$ z
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。  k$ {  w, B+ u$ W

; w1 Z( P1 `7 x" i  b& V' g: R+ R目录:3 i/ H  ], f3 X8 C$ O& d
5 `9 B' P, [: B$ ?/ U1 Z9 g


6 I2 O/ ^, M6 k9 @( |+ f第0章 恶意代码分析技术入门1
$ h2 J: V" a" V5 ^, Y& L! M# z2 h+ H. V& g# E$ _) Z" n3 L( }$ H
0.1 恶意代码分析目标1
* J/ X- s# l; R( _0.2 恶意代码分析技术20 z& l, U! W/ X" D
0.2.1 静态分析基础技术2, k% S& o+ @  h  n/ @
0.2.2 动态分析基础技术2, f, f! A; {! f4 S2 g
0.2.3 静态分析高级技术2) M5 i. |5 K# @& [) F0 n- `& J
0.2.4 动态分析高级技术2( U- M6 u1 U  P2 ~" v; o% K
0.3 恶意代码类型30 L$ |0 Y' z" Z" `
0.4 恶意代码分析通用规则4
) j) I1 O0 S: r) w% i2 Y. y* k6 [! e8 i4 K5 A" C& B

5 k. q' P; f$ @8 b: f- K* Z第 1 篇 静态分析
, O% i% }% _" ]3 M' J1 |4 z, K, ~! c6 z& {9 f$ i
第1章 静态分析基础技术 6
! \$ k# d- d. J' u! C1 T( y8 G
( W; F" K- s" @! Z! ]( h
1.1 反病毒引擎扫描:实用的第一步60 n# G% Q9 T! @' A: e8 _0 l; R
1.2 哈希值:恶意代码的指纹7
) e. ~; y. P9 c4 V1.3 查找字符串7
' D5 [) c! |. T1.4 加壳与混淆恶意代码9
9 ?7 r- y$ v1 t1.4.1 文件加壳10
6 {4 f6 u  N6 t  N, R( \; L. u1.4.2 使用PEiD 检测加壳10/ Y0 _' X1 D6 A5 o6 l2 f
1.5 PE 文件格式11, y0 h$ P, v3 x: K( N
1.6 链接库与函数129 I0 i0 d, E: b$ E
1.6.1 静态链接、运行时链接与动态链接120 u) Z1 p' y5 p' i  J0 r* n: f
1.6.2 使用Dependency Walker 工具探索动态链接函数13
$ z6 E7 h" ~6 q; s- q' h1.6.3 导入函数14
; v8 r) E" e. n( S1.6.4 导出函数157 Y" W3 r6 a: ?- w" F
1.7 静态分析技术实践15& k0 M) p- ?; P, @$ [
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
( U; C# h- s! @/ g! Z% F7 `9 \; T1.7.2 PackedProgram.exe:穷途末路18
7 E7 Y. h  A) C1.8 PE 文件头与分节18
8 Y+ k6 D( S7 H( w" q1.8.1 使用PEview 来分析PE 文件19* \6 x# h5 ?% U  {' ~* p+ Q
1.8.2 使用Resource Hacker 工具来查看资源节22
0 o3 q  H& U( f1.8.3 使用其他的PE 文件工具23
) t: U8 _- K2 A6 H# d2 e1.8.4 PE 文件头概述23
4 c2 m! Q/ U- l( ^" F/ V1.9 小结24/ X: _% J7 M; B- F: t
1.10 实验240 F  J/ Y+ b7 R2 H

2 o6 {- m, A" x5 ~" y: M2 i. |第2章 在虚拟机中分析恶意代码 27
) `& O5 n5 K& L! E; G7 d1 A% i, V" R1 r' q/ `  J
2.1 虚拟机的结构27% a$ X1 P. T4 J2 |
2.2 创建恶意代码分析机28
+ Z5 h. l5 L3 g& V0 B) f2.2.1 配置VMware295 ?: ^% _; n0 z+ y/ v
2.2.2 断开网络30
  N$ e6 p+ Y& ~2 J, d, Y9 E* h2.2.3 创建主机模式网络30
  ]! t$ o7 y& m, @5 [2.2.4 使用多个虚拟机308 F1 x1 R9 D' j
2.3 使用恶意代码分析机319 R5 G5 l" |5 A' y5 N+ X' C* q2 H
2.3.1 让恶意代码连接互联网31! [% B2 m1 P+ q7 ]
2.3.2 连接和断开外围设备322 T( m; z/ V& E# p2 e: o0 V/ o) Z
2.3.3 拍摄快照32
, q3 v8 K3 ]! i7 H2.3.4 从虚拟机传输文件336 I$ F1 X! b6 a7 x
2.4 使用VMware 进行恶意代码分析的风险34
+ M: k; q) n4 Y9 G  a0 b8 v2.5 记录/重放:重复计算机运行轨迹34- J, _7 f/ U2 |  u# b$ i9 J& |# p0 M
2.6 小结35
" v- [9 P$ h  \1 S8 d; K1 I0 ^4 H, _6 n8 @
第3章 动态分析基础技术 36

9 j" D2 w1 w4 y% U0 n6 |; A* _4 z1 j
3.1 沙箱:简便但粗糙的方法36
$ P% I( S4 ~! q# x* F3.1.1 使用恶意代码沙箱369 n9 p& f  Q. ^2 k9 Q4 i* H0 |
3.1.2 沙箱的缺点37
) u, o6 `2 r* Z; g1 e3.2 运行恶意代码38/ s& V3 H. r! j" O7 C- K
3.3 进程监视器398 I8 b! y+ u4 Y) |: y
3.3.1 进程监视器的显示40: X' s9 D$ b5 [- u' l
3.3.2 进程监视器中的过滤41: L# A* Z5 a$ B" x
3.4 使用进程浏览器(Process Explorer)来查看进程43
& G* v& o* c3 }) |3.4.1 进程浏览器的显示434 J* B- b( f9 q7 a
3.4.2 使用验证选项44
7 i- S& C) X3 c/ J3.4.3 比较字符串45) z' i9 g* I1 i7 C; `
3.4.4 使用依赖遍历器(Dependency Walker)45
9 e# m' G. j! `8 f( V# Q; I3.4.5 分析恶意文档46/ C5 E# t2 P. x; A' m0 G& u- \3 l
3.5 使用Regshot 来比较注册表快照460 {4 x5 M! U( O4 }
3.6 模拟网络471 O& G* v1 F+ U
3.6.1 使用ApateDNS47
3 d' M2 |" x3 Z: _% L! N$ X3.6.2 使用Netcat 进行监视48
6 y+ V6 k* z8 n* ?2 ]& b. P. r$ w+ n3.7 使用Wireshark 进行数据包监听49& `3 W" K9 ]4 Y  t
3.8 使用INetSim518 |5 ~, p/ m0 x8 C: t
3.9 基础动态分析工具实践52. G# a% W/ c/ G5 o+ n% S
3.10 小结55
; O0 p/ H; p2 P3.11 实验56; ]) u% E+ H6 L
. F$ n! ]  X3 z+ Y) x& m
) Y9 K$ b! z+ c9 A0 c& u5 G9 {3 G3 f
第 2 篇 静态分析高级技术篇! r, |6 a0 R1 q' B" l, L/ @1 g

8 E8 z; P& x+ c! h9 m3 ~第4章 x86 反汇编速成班 60
! n5 i! {( B+ \$ S  s" U
) P1 j  c. M, a: H+ R9 P* ?) o4.1 抽象层次60
- H$ [( U3 G& l% w- U( F( f4.2 逆向工程62
0 Y# b/ C. N, E/ l' N) @# A9 g& S/ I4.3 x86 体系结构62
( G( L' \2 `" Y6 f9 J$ @4.3.1 内存63
  I/ \! C- k$ @  \4.3.2 指令64
& w1 _& ^' A  n/ o4.3.3 操作码和字节序64/ g3 |( e7 m/ \+ V1 T
4.3.4 操作数65
& i1 b- D% A  X4.3.5 寄存器656 h5 s8 r3 [( b* Q7 P$ l" J
4.3.6 简单指令67
9 Q" O8 w' @1 c! f4.3.7 栈70! Y* O1 F* M% r4 J
4.3.8 条件指令73
4 g$ x. _0 A  P' \8 X- ?) k4.3.9 分支指令73! E4 d, i! n( H4 y( l0 H# e$ Y% c) d
4.3.10 重复指令74
) T- J3 t  B+ F$ B2 C% y4.3.11 C 语言主函数和偏移76: {" V# N3 s  |- q1 H8 \
4.3.12 更多信息:Intel x86 Architecture Manual77
9 w/ ^* q. Q8 O. W9 e# ]4.4 小结78
/ f( J; R/ C( ~& N
0 x. _% \) z) U( \第5章 IDA Pro 79/ u/ y: _( O9 u' f; p

0 B% i7 f$ b# S8 N& [5.1 加载一个可执行文件79# P' k0 |4 z2 n" b& ^
5.2 IDA Pro 接口81' B) H6 H( Z7 q( K
5.2.1 反汇编窗口模式81
4 x9 Q9 Q( O. S" E5.2.2 对分析有用的窗口83! Z6 _+ `+ E: P# j9 |0 P
5.2.3 返回到默认视图83. y9 ^4 P7 d0 \2 m; V4 d
5.2.4 导航IDA Pro 83
" ?; s, c% @- x- C  [, `7 G5.2.5 搜索85. |, c2 `  k3 }& ~; ~9 _
5.3 使用交叉引用86
5 z" o5 v+ c& Z( K# R5.3.1 代码交叉引用87
- h: h9 E6 f2 L. U5.3.2 数据交叉引用88
, f* L5 g3 P& o0 Q5.4 分析函数88
& @* D. G* d/ F! \! B: N5.5 使用图形选项89
# a* b. @: v' F5 M) z1 E8 k5.6 增强反汇编91
9 r. j+ b9 T: s5.6.1 重命名位置912 X) H2 m) Q; M, F, [7 G5 O
5.6.2 注释92
8 Q7 w! l. [- u' L0 N! z5.6.3 格式化操作数923 A2 U7 |* I% f" w7 H* h# E! |
5.6.4 使用命名的常量93
6 s1 _3 `8 w7 F* I2 K7 _1 E5.6.5 重新定义代码和数据94  C  h& n* m/ i" L* B
5.7 用插件扩展IDA95
/ a1 R5 s: A5 v! L' i( L* o% ~5.7.1 使用IDC 脚本96
! J) ^4 T; O. w) \/ J. @5.7.2 使用IDAPython97
! e0 x8 y1 p, X! P/ _. S3 n5.7.3 使用商业插件97
. X+ u7 C" O8 t6 t& A" G) Q5.8 小结98  t- M% [5 E3 P' Y; i) c
5.9 实验98
9 M+ f( q5 I: D+ Z% y# g
$ x9 S. Y4 D! E第6章 识别汇编中的C代码结构 100

, \3 y4 N7 D, v2 V) m
0 G5 F, A' A+ }' K# z6.1 全局与局部变量1017 ]& h$ K$ Q0 W7 m( P
6.2 反汇编算术操作1028 W, A& g' b# p9 V
6.3 识别if 语句104
: q" \/ l# M! p# k5 e5 p6.3.1 用IDA Pro 图形化分析函数1052 H1 \$ q$ r- \$ k. Q2 l
6.3.2 识别嵌套的if 语句1065 o) P! l3 A  T8 a' ]9 }# y
6.4 识别循环107
/ G3 y& [, _( S. l6.4.1 找到for 循环107
% N. G, }- @5 |. _  D3 z2 _6.4.2 找到while 循环109
& e8 ]+ t/ x2 w! o4 b6 I6.5 理解函数调用约定110& o5 Y+ k& Q" o4 O$ a2 O$ \" @
6.5.1 cdecl110/ g# }' }3 ~" ~
6.5.2 stdcall 111( J9 R# K( t- n: }, y  [# J
6.5.3 fastcall 111. Z3 a7 Q# k. W* E8 }
6.5.4 压栈与移动 111
+ x7 `+ y$ F* t" P$ U. ]! P6.6 分析switch 语句1129 U7 n# r( I9 H4 v; r0 |
6.6.1 If 样式112
: D6 o: u3 A3 b- R6.6.2 跳转表114' L3 R7 K4 ~# n$ I0 o8 V. ]
6.7 反汇编数组118
8 J6 Z6 M* R9 t+ {% ?9 Y6.8 识别结构体119
+ P, {) }7 r9 L) \6.9 分析链表遍历1214 U6 u7 i* N( Q, W
6.10 小结123
2 J0 r) w# J! ^6.11 实验123$ ?9 G) [3 @9 P2 w6 f! T
. G* ~9 _2 u& R* H
第7章 分析恶意Windows程序 126

1 ~; w* v7 u) E/ g
0 u4 [' b+ s8 H6 [7 W2 L6 R- C7.1 Windows API126
5 e' M( W* l, t7.1.1 类型和匈牙利表达法126+ w  ]7 y1 ]7 j
7.1.2 句柄1272 r4 c7 D6 L4 [0 y/ G5 N* r
7.1.3 文件系统函数127, [* C. l& \; t% ]6 c0 [9 d! l
7.1.4 特殊文件1289 |: ~% V6 H5 ]% ]- B0 e4 m' E
7.2 Windows 注册表129
7 q# [, S: A. x0 `. P  j7.2.1 注册表根键1302 r7 M8 L9 R) I" C
7.2.2 Regedit131$ K( S) [) [- q' f4 [
7.2.3 自启动程序131
3 }; ]* B0 y; t1 \7.2.4 常用注册表函数131" M. i* H; c. g7 u& P
7.2.5 练习分析注册表操作代码132! D$ q" c; Q  ]$ F# |6 c" K
7.2.6 使用.reg 文件的注册表脚本133
  ^8 ^+ t' P" K# u% |8 _5 c7.3 网络API1336 M9 F0 A8 t3 ?; q3 L
7.3.1 伯克利兼容套接字134
: U* x1 s) ~+ F- L, q7.3.2 网络的服务器和客户端134. M9 @0 r6 P& t( P  D
7.3.3 WinINet API 1359 F2 `5 n0 i9 ~; l0 P5 ?5 L
7.4 跟踪恶意代码的运行136
8 g% G4 d9 o# y" t' p- }7.4.1 DLL136/ t' Q4 w. y4 U" @
7.4.2 进程137/ |1 [  f% |# h# ^& V
7.4.3 线程139; W+ ?4 E8 B  Z7 ^
7.4.4 使用互斥量的进程间协作142
+ X+ P! \- V. ~, Z7 _4 j7.4.5 服务143
1 z# \2 d6 ^- |7.4.6 组件对象模型145
& Q" _0 d  A5 y; o3 e8 E7.4.7 异常:当事情出错时1474 u9 F* V" J& F7 z/ M7 t
7.5 内核与用户模式148
) {" u) V; F5 _7.6 原生API1491 r( K# I7 m2 c3 T" s$ r, r
7.7 小结151
; I& z9 c9 J1 M& C7.8 实验151
/ N5 ]: q8 q" Z  Q7 K7 z, e' j+ a) I

, h) P- b! X5 w7 z1 g- F; x第 3 篇 动态分析高级技术篇7 C' T' b, J2 i! l7 N! d/ O- J

( U1 J* ?  k8 w5 k% V第8章 动态调试 154

0 H5 b3 D/ o7 `% S2 g5 B5 I( N( G1 V, Y
8.1 源代码级与汇编级的调试器154  a9 B' A2 e  W
8.2 内核模式与用户模式调试155
" `' _, P6 A5 [6 \$ \! F6 R8.3 使用调试器155  R0 q# O3 A) m1 K7 l
8.3.1 单步调试1551 y' i4 n4 l6 d- \- P
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
5 D' j# l. C, [3 x8.3.3 用断点暂停执行157" @" c6 P7 P6 d) {. _' s
8.4 异常161
- A" ~+ [% |8 r3 P- m1 T8.4.1 首次和二次异常处理162
' O( ^: s. @  a. p# q, v0 P# F8.4.2 常见异常162
) h2 ^  P8 l6 m6 [9 J/ w# P7 w8.5 使用调试器修改可执行文件1638 x: b$ y" A1 X. X- T7 s
8.6 修改可执行程序的实践163
3 Z& g+ {  s2 W5 X9 N  Q+ W( x* c8.7 小结164$ r$ x% c4 h5 X. G

0 K" R6 f: n8 [! E& ?- z) y第9 章 OllyDbg 165
9 }" C. D- H) c% Q; p9 x

- v5 s* H( R1 Y$ ^9.1 加载恶意代码165
: r/ z  q2 r- u: G9.1.1 打开一个可执行文件165
# g9 {  S: N2 W3 n9.1.2 附加调试器到一个运行程序166
. P: Y, F$ K0 i# p; G7 v9.2 OllyDbg 的接口167
8 I( p9 n$ ?4 W) V9 n" ~9.3 内存映射168
9 r3 u* w; F! ^, R- _8 b- @; A9.3.1 基地址重定位169
% W- l! [# ^! ]2 r6 {' K9.4 查看线程和堆栈170  g7 b9 g8 Q# a' ^
9.5 执行代码171  j7 \! R$ @5 d' F, v+ h9 f
9.6 断点172
! o/ Z) N+ o% D' e9.6.1 软件断点173
4 Q9 o# [( m7 y4 X; ~: Z$ R9.6.2 条件断点174
8 ]& X$ y2 l7 ?; ]! u& q9.6.3 硬件断点175" I% c- E0 U' \; O$ a
9.6.4 内存断点1756 ~5 z  |! \' j* b/ u
9.7 加载DLL176
! t* |' h1 o  Z9 d4 _2 j# {0 X6 s9.8 跟踪177+ _" o2 {8 T3 q, O& Q& z9 d$ F
9.8.1 标准回溯跟踪177# h: V2 Y, e9 M% q6 @+ k5 r$ g
9.8.2 堆栈调用跟踪178
4 ]; k; R% X# a7 I7 {3 V9.8.3 运行跟踪178+ q1 }( f! e, W
9.8.4 跟踪Poison Ivy1784 r7 l" e+ m9 b# l  h8 A  R
9.9 异常处理179
0 f. I1 Q2 P, S2 z, {9.10 修补1808 I" d; U8 B+ Q& x2 ]: a4 k
9.11 分析shellcode181& L: a) b" a4 U% U" S" O
9.12 协助功能182
- _) D6 l( B% |( ~0 X2 \, `* M9.13 插件182% L0 d) I7 w4 e- b# p6 Q& ~
9.13.1 OllyDump183$ e& w2 D4 `: F$ S- X7 i
9.13.2 调试器隐藏插件183" T. Q7 q- y; ?/ V
9.13.3 命令行1844 ?/ {8 p" v& J  K, y* Q( x$ ?
9.13.4 书签185, g( P! b4 ~& X% T4 C
9.14 脚本调试185
) {) ^- P2 j4 N" n, @9.15 小结186
6 V: k( N2 q3 I0 E# B9.16 实验1871 t8 b9 U6 x; p/ ~

0 u0 S, n) Z1 O& z3 }第10章 使用WinDbg 调试内核 1895 s/ q. X9 w; g( R

4 @  L6 d' O+ m6 H8 j$ N0 H10.1 驱动与内核代码189
& w% I' c+ t7 T9 x10.2 安装内核调试1910 F8 j8 g2 ?& E; z' f6 A
10.3 使用WinDbg193
; W8 X/ j& V# g% F5 N1 K10.3.1 从内存中读取194
. C( Q* J, C& Y; a10.3.2 使用算术操作符1948 k0 E0 ~& F# l% A: |% A" T
10.3.3 设置断点1945 p5 ], r3 U2 o# {: A7 \: I
10.3.4 列举模块195
4 B- T0 J1 f9 s4 D% |( k10.4 微软符号表1958 ~9 D3 j5 z% x5 N; W' y* Q  \: B
10.4.1 搜索符号195" n7 H, ^8 f( `" l
10.4.2 查看结构信息1966 I- O, L$ b1 M3 r' Z
10.4.3 配置Windows 符号表198# o- K' M$ y; W, w9 `: R& Y0 b  b
10.5 内核调试实践198. U9 Z( f3 |$ b
10.5.1 用户空间的代码1983 ~: p9 Z5 j2 _4 J# k
10.5.2 内核模式的代码200
* o. s5 z4 z0 @4 E" l: I9 q2 e9 k. O10.5.3 查找驱动对象203$ c" F6 m* F( o3 g, O: ]  A
10.6 Rootkit204
$ |5 Z; M$ V3 C. {4 e10.6.1 Rootkit 分析实践205* H! h' `% g1 m" [% x5 y# L2 P9 {
10.6.2 中断208
: _1 f( H; r0 ?9 s# w+ @2 k10.7 加载驱动209
% O3 L# }/ ^6 ?10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
" E3 K# g  _% S6 I, a, r6 c# ^10.9 小结210' E: {( d" ^# |6 T: V% ~
10.10 实验210+ f- b4 J( ~9 Z! h" S5 K% t
/ r, K9 Q: [% B( E' K

" L; O6 v# ~* Z$ {第 4 篇 恶意代码功能篇
5 S/ n- q$ X4 L  x5 R1 r
1 ]. @# R$ s2 r. N, L, r) T! b第11章 恶意代码行为 214
+ ?8 X0 C& i5 ~  |) O2 J4 Z- I& P, p5 Q- ^, E) k! K
11.1 下载器和启动器2147 y) x- N* k5 A. L
11.2 后门(backdoor)214+ h% @% F; E3 Y4 G
11.2.1 反向shell215
% f3 f$ {! R) k# f' c11.2.2 远程控制工具216
6 k" E7 @9 N4 l! k9 w; r11.2.3 僵尸网络216
& ~  _6 m: B1 q/ |% U11.2.4 远程控制工具与僵尸网络的比较217
. z6 n0 ^$ o* ]8 W: k" u11.3 登录凭证窃密器217- U9 M  k2 S3 U" ^2 |  q
11.3.1 GINA 拦截217
2 O' M& b( H% |  D- f11.3.2 口令哈希转储218# ^. F) E" H8 f- W" x" t$ s- I* z, }
11.3.3 击键记录221( l8 ~; K0 o$ z' h6 }4 f
11.4 存活机制223
9 r# F4 k1 Z' @4 ~* ^3 L# i11.4.1 Windows 注册表223  x# }- B) K8 n, e# O% p2 i5 N
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
. D. Y% s: r. p& |0 i" T- C11.4.3 DLL 加载顺序劫持227
8 f; t8 d  [+ s+ Z" j; k11.5 提权228
9 N( P8 }( v$ j* R11.5.1 使用SeDebugPrivilege228
' _, ?" m/ W0 ^- n; k3 A' p11.6 隐藏它的踪迹——用户态的Rootkit2292 Y2 @8 n) ?- O* R& ], @8 G' w* Z
11.6.1 IAT Hook 230
# ?. z5 G* n9 z9 {' X; M, n1 ~& A7 c11.6.2 Inline Hook 231( t) c  U& `: L. P) b
11.7 小结2323 d# D5 _* o+ b' g' D# l5 m1 d
11.8 实验2320 t# b& w% n0 ~! `
! I6 e- b' L; J+ Z/ \
第12章 隐蔽的恶意代码启动 234- s' g* W' W- y
. {6 @* W$ @, S( Q' u8 u! U
12.1 启动器(Launcher)2346 Z4 Q# Y* d! |+ ]! C
12.2 进程注入234
; T+ S# V( I9 `) _12.2.1 DLL 注入235& m0 N+ f: E" O, Y# M) ]1 f% F- r
12.2.2 直接注入237
, g8 X) O6 ]% h; c5 H12.3 进程替换238
2 ?* m% s7 P/ j12.4 钩子(Hook)注入2407 g  ]9 @, y. j: T4 L% P0 x& S4 i
12.4.1 本地和远程钩子(Hook)2403 u1 g$ o, r* K
12.4.2 使用钩子的击键记录器241# z7 s* h: q. W
12.4.3 使用SetWindowsHookEx 2415 x7 ]$ f# P- ]4 d  W/ X7 A  T
12.4.4 目标线程241
! h0 y/ v  S  F/ c, r0 P$ y12.5 Detours 242" V) H: O! {- {* N1 X2 p
12.6 APC 注入243, d3 x% d" E& C; V
12.6.1 用户模式下APC 注入244; ]& V0 N$ p2 e- j) s9 l( R
12.6.2 内核模式的APC 注入245; ~% s) K# M3 S" t- P5 Z
12.7 小结246* [) S2 ~$ Q* ~0 V  [7 E
12.8 实验246/ \5 K3 r" P5 ]" s4 q' a7 c
# D$ F+ t, _7 U- I9 b2 }
第13章 数据加密 248
4 i0 x2 ?( H! _; Q( e/ M3 f0 a! r: w1 H% @% a
13.1 分析加密算法的目的248
3 Q7 J& P- I; \, V3 }13.2 简单的加密算法248
7 [4 o$ y4 l6 `  f5 r13.2.1 凯撒密码249
7 Z1 U. \- G$ g) t8 _& H, D2 c13.2.2 XOR249/ M7 O: J( }! n  K- [$ n
13.2.3 其他一些简单的加密策略254+ i/ x7 d( x( @: z. m6 ~
13.2.4 Base64255# p& s1 K5 j/ R' S5 j' p% N/ x
13.3 常见的加密算法258
; r9 Y/ h0 [8 O9 y5 d3 ]13.3.1 识别字符串和导入259
" D" Z" d! X  `5 R8 b* t3 U13.3.2 查找加密常量259+ z, t5 E# e+ i1 B  f) Y% B$ R
13.3.3 查找高熵值内容261
9 h( T; y- P3 C9 ]13.4 自定义加密262* V3 d: b) ^: @. I
13.4.1 识别自定义加密2633 u5 ?" [+ _3 {% q, o
13.4.2 攻击者使用自定义加密的优势265' M: F8 |. N, O( k% M% n
13.5 解密265
$ k3 s/ `7 J' Z13.5.1 自解密265: B, y7 g6 b( Q- {7 \4 D' P2 j
13.5.2 手动执行解密函数266
: G3 Y9 G) ]$ Z: ~( k13.5.3 使用通用的解密规范2675 J7 Q- t2 H: l1 o& Q& a
13.6 小结270
8 U6 z9 B: G4 Q6 o13.7 实验271
3 z  `( B3 T; U3 k6 T2 u
4 e" S6 l# x  A* Q2 L: _第14章 恶意代码的网络特征273, n) E: H+ B) h8 F  O2 z
- Q8 R, ?0 K# I. I
14.1 网络应对措施273) j5 d5 Y5 a* [& E9 G$ L
14.1.1 在原始环境中观察恶意代码273
' ^7 l% }& d: }2 [( v2 F; V14.1.2 恶意行为的痕迹274" a" P% O, W" K$ @* C& a$ W, R
14.1.3 OPSEC=操作安全性275
8 H# Y+ }, v% b) o+ b0 b' t14.2 安全地调查在线攻击者275
+ e2 L" v2 Q9 h14.2.1 间接性策略275
4 `' r+ S6 e2 a' E; F$ u14.2.2 获取IP 地址和域名信息276) }3 z& ^! t$ t  d) ]0 p- Q1 S
14.3 基于内容的网络应对措施278
3 f, u: \  j1 d: y* R2 R  W1 W14.3.1 使用Snort 进行入侵检测278
4 p" s# o  Y' ^; `' E/ _' |14.3.2 深入观察2797 P' c( r; U1 D$ M& B# S0 g( I
14.4 结合动态和静态分析技术282
- |" _0 a; _9 H" G. |1 F: l. ?14.4.1 过度分析的危险283$ D5 I+ U! u5 A' S8 C5 _: U( X
14.4.2 在众目睽睽下隐藏283
4 a+ E* k3 P3 p14.4.3 理解周边代码286
0 ]5 L/ o9 f) f0 L14.4.4 寻找网络操作代码287- T, l' s; d; `3 X
14.4.5 了解网络内容的来源288
5 X, z& I! K$ J, X7 ^14.4.6 硬编码数据 vs. 临时数据289) {) I: q! p- r8 Y1 g
14.4.7 确定和利用编码步骤289$ N; {! w& L3 c/ {
14.4.8 创建特征2910 K/ n# Z9 v7 q
14.4.9 分析解析例程292
* A: c1 t1 k6 K0 i: x1 ]" t& A. A14.4.10 针对多个元素2948 C0 V" H- J1 X
14.5 了解攻击者的意图295
( o; `, i' j3 l# y14.6 小结296  y: ]$ V3 V; V8 O" Q( b: x
14.7 实验296
& r" ?. }; G( L$ x  G# H
; o1 X" O  w4 ~! Z3 L* P* N
8 k6 d  @$ |' ~; {6 v+ e第 5 篇 逆向工程
( }' U) f9 N/ c& \5 I* h  Y+ T
8 Y$ I5 j9 J; B) ^' J) X5 u第15章 对抗反汇编 300
9 C4 J  h8 @# k9 d4 v+ \1 C. i: ~6 g7 y# c9 o; a! ?* S4 V$ z
15.1 何谓对抗反汇编技术300
" ^4 m) I9 b6 l  u1 H& X15.2 挫败反汇编算法301
' y7 o! s  h6 x! Q/ F15.2.1 线性反汇编302
, }% ]; a; W* ?( s+ h: f! i15.2.2 面向代码流的反汇编303$ X  h/ Z; L; H1 H. b; d1 }+ J$ L1 t
15.3 对抗反汇编技术3066 I( L4 K8 l* B) ?" V
15.3.1 相同目标的跳转指令306+ h" G  D9 `( E* i0 D
15.3.2 固定条件的跳转指令307
0 u9 w8 O/ o$ E# @) ~0 b) A3 N% ]+ y) E15.3.3 无效的反汇编指令308% c) z* g! F, e; \- a% `9 c5 X3 B$ L
15.3.4 用IDA Pro 对指令进行NOP替换311, B% `2 |, {6 ]( i; T
15.4 混淆控制流图312; T+ Z( r- S4 B( ]8 \% W5 U
15.4.1 函数指针问题3129 K; S: A$ t; V: ?
15.4.2 在IDA Pro 中添加代码的交叉引用313# o/ d( @5 Z  A
15.4.3 滥用返回指针313( }3 n! y" _! K' D( n
15.4.4 滥用结构化异常处理315
5 f& f, q* m3 G! f& ]15.5 挫败栈帧分析317
" u1 d! R8 q8 _9 f3 ^% B! b15.6 小结320
% I% c- M, P: F5 k/ Z15.7 实验320& d& F. Q6 \+ Q4 f/ X
( s: C- A* U  X/ y6 F
第16章 反调试技术322
0 Z  w# o0 I+ u% Y3 f* [! h3 \, r; d8 e, E7 y( _; x; m. A; X
16.1 探测Windows 调试器3227 [# R) u$ _2 e
16.1.1 使用Windows API322# T% B* {! a) R( W
16.1.2 手动检测数据结构324! G! L* f. G2 c5 `
16.1.3 系统痕迹检测326' Q9 A8 `: i3 X# y8 s
16.2 识别调试器的行为327- y6 D1 B5 \) X6 V' S: c, |
16.2.1 INT 扫描327, X( C( E* P& C/ V) K! {
16.2.2 执行代码校验和检查3287 [5 X* ?1 Y! w5 d$ g' H
16.2.3 时钟检测328
, }0 }, k8 W% `16.3 干扰调试器的功能330
9 h& a8 K  T2 e2 X+ d16.3.1 使用TLS回调330  D  w, l) o% ?, o! H
16.3.2 使用异常332
/ ?" R# I, Q) h6 Y4 a16.3.3 插入中断333
/ d0 i0 M/ s+ ?, d16.4 调试器漏洞334
$ J( d- w* Q2 G5 u" p. }5 q16.4.1 PE 头漏洞334- _  t1 s0 H1 C$ i
16.4.2 OutputDebugString漏洞336
. O* ]5 O) k! H1 A1 V$ }3 D, }0 W16.5 小结336
0 d  |. N5 S" x7 A16.6 实验3361 S3 G6 q1 R# j" v
; O. E" [6 [# j- J; h8 c; t' Y
第17章 反虚拟机技术 338
8 |+ l8 N8 ]  k+ k( x' ]7 v! u& D5 y& X! K
17.1 VMware 痕迹338
! r/ ^" a: T5 J) Z* H9 G" q- D17.1.1 绕过VMware 痕迹的探测340. P! `: G+ }; a, R3 S4 f& r
17.1.2 探测内存痕迹342
# J7 F3 E) F* ?! @( U. q, u17.2 查找漏洞指令342
/ Y7 E2 O6 b1 U0 Z9 f- i7 |& q17.2.1 使用Red Pill 反虚拟机技术343
- l* z( ^. N5 {9 l0 l/ k17.2.2 使用No Pill 技术344
$ Z: O) `0 x. @$ W2 J, K0 r17.2.3 查询I/O 通信端口344
; r" |8 M  Y2 O" F17.2.4 使用str 指令345
% p1 g2 P3 i% y8 X/ r3 P4 q17.2.5 反虚拟机的x86 指令346# Z) ~; X$ s  Y  G5 K1 a* s
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347! ~% g. |9 a2 d6 m* Q) x* m4 k0 b  U
17.2.7 使用ScoopyNG3479 R% B( Z( M/ n  e( {& ^
17.3 调整设置348# L, f' v6 @( T$ \, s; ~
17.4 虚拟机逃逸349
4 i$ ~& q6 ~; _# M17.5 小结349
8 D& C' k3 p) O7 c4 M' X17.6 实验349
. o9 E! f6 ?- T9 E4 m
( E  r( f0 R/ S, v$ _第18章 加壳与脱壳 3522 H* _3 p$ d( ~) \/ j
. T: c4 u1 U8 R* [: m
18.1 剖析加壳352
4 |6 c; [  V8 q4 }18.1.1 脱壳存根353
) G% V. Y, T$ w( ?2 a5 ~18.1.2 加载可执行文件353
* u/ g  p4 h$ U4 i2 m18.1.3 解析导入函数表353* ~* ?8 Y  C4 L. `) J
18.1.4 尾部跳转354
# r8 X; g! D4 S! n% O0 n" k; {0 z" K18.1.5 图示脱壳过程354
% U# C; g2 V; E18.2 识别加壳程序355
% v* k) _4 n+ [7 u7 A0 S+ u9 X18.2.1 加壳程序的标识3553 t2 L9 l4 D! s! \0 m* @
18.2.2 熵计算356
6 M) n& E: ]6 a2 R8 d18.3 脱壳选项3564 ^9 u7 j/ \" m$ p5 q7 x! z
18.4 自动脱壳356. k9 }4 y8 N6 I) a2 ~
18.5 手动脱壳357
  n5 H: w0 T8 D3 w# I( T) N) k3 @18.5.1 使用导入重构器重构导入表358
; w  b5 G9 U2 g% b/ n18.5.2 查找OEP359
4 Q. V! Y& K* C9 O' @# `" Y18.5.3 手动修复导入表363
( X; ]$ C& P1 y+ d: T18.6 常见壳的技巧与窍门3642 P1 n4 R: [$ U7 G  C4 _! i
18.6.1 UPX 3645 O0 L4 l2 y1 _  U
18.6.2 PECompact 3658 ]( U) j  A; g, E
18.6.3 ASPack365- n0 y, ^% D. f/ l6 H
18.6.4 Petite 365) |9 @. _2 S# f* r+ e
18.6.5 WinUpack 3660 r* b' K; t$ R6 |
18.6.6 Themida367( d3 T, L$ n, o" k1 z. o: m
18.7 不完全脱壳情况下的分析368
1 D- h* c7 k/ ?, y% V) c9 o18.8 加壳DLL 368
5 O  i, }- a3 z* n$ U18.9 小结3690 L4 a# c/ H$ l5 o8 w& O& D' D& {" c) O2 K
18.10 实验369
* W. K3 R1 t% A/ B- m1 p3 a- ?- [) }7 C+ \$ k/ `$ ~, _4 P

" i3 U2 ]% m5 ~9 [) u6 F; p第 6 篇 高级专题
3 q$ }5 b0 j' }2 n- z6 k6 F6 ?+ j; _7 j% j9 q$ Y' V: i6 f% Z
第19章 shellcode 分析 372  r4 T9 T- l2 q! X2 U8 Q
) Z1 f- S" i; Y. D
19.1 加载shellcode 进行分析372! b# [& e3 D- g4 }+ `
19.2 位置无关代码373
" z# T8 q/ @6 T2 o: a, m19.3 识别执行位置373  o* p6 |8 o7 x; \- L
19.3.1 使用call/pop 指令374
: u4 Z) E3 l* t19.3.2 使用fnstenv 指令376
) c3 k$ {( N$ q- C5 K( a19.4 手动符号解析3772 G2 j9 _, W! c0 |& Z, P
19.4.1 在内存中找到kernel32.dll3786 o( ^$ e8 q/ F: M4 @& D0 \3 m& Z
19.4.2 解析PE 文件导出数据380
! ~* U: j6 z4 i/ O3 G3 q% V8 A19.4.3 使用散列过的导出符号名382# p* ?8 J& n' @
19.5 一个完整的Hello World 例子383
+ M! ]; ~' d/ Y3 r: @! E19.6 shellcode 编码385* a% X& v4 [5 X* P' K$ X
19.7 空指令雪橇387; b& Y/ ^7 y& b3 ?) z7 T8 W/ K
19.8 找到shellcode387
2 I4 J8 _6 G) P& q" K% E19.9 小结3885 w/ C' ~5 B4 L8 B: d
19.10 实验389" ~, n6 z  c. O- J' t7 h
* c$ f& t) C; T4 d7 d, J" I, A
第20章 C++代码分析 391
5 s$ f$ L2 |/ X4 w/ k+ K' d' A& O" \( M, [: n" Z
20.1 面向对象的编程语言391' N- ^% |5 N3 f+ K) J4 I, e
20.1.1 this 指针392
( M- e% D. B" y! o$ N  h20.1.2 重载与修饰394! \: v' h' r- M2 }2 S% t
20.1.3 继承(Inheritance)和函数重写(Overriding)3952 X3 [$ w% f0 y7 z; a+ G/ Q
20.2 虚函数和非虚函数396
1 T8 T9 V+ Q' |) C9 a20.2.1 虚函数表的使用398
/ O( r2 c! k. ^% w& @! b20.2.2 识别虚函数表3991 l( }& \9 p! W6 g, \' ?
20.3 创建和销毁对象400
/ w$ g' {: f! C0 u' W9 v20.4 小结401
9 H0 m9 l. H$ W/ G% L0 W20.5 实验401) D. U7 j& Q! F' L

9 z- p  a/ y$ U第21章 64 位恶意代码 4031 y8 c( }$ O! U% x& \) T* f8 b

7 ^( r8 g/ J0 L# T" ~  V21.1 为什么需要64 位恶意代码403/ `* w; ]+ L8 N  A$ |
21.2 x64 架构上的差别404$ z5 e% E9 D2 a+ `0 g7 f
21.2.1 x64 调用约定和栈使用上的差别406( `- ?$ S0 E0 P, A4 v4 l1 P
21.2.2 64 位异常处理408
* \* P3 L1 N+ Z6 S21.3 在Windows 64 位上的Windows 32 位4080 E5 Q9 L6 ^. v" ^0 X, j
21.4 恶意代码功能上的64位提示409* A$ ]8 Q- X+ A: O2 b
21.5 小结410
6 y" m+ q& j6 n21.6 实验410
, a  z6 x# k. B# `7 t8 U3 f+ F7 K2 i: K1 c
附录A 常见Windows 函数列表 412
3 ~; e+ T$ ~: T" @3 d
! t, S, u, f6 l1 }& V# m4 @8 K" t附录B 流行的恶意代码分析工具列表424' K# x2 `: h8 _* \' M$ O
4 a- G! Z8 G6 M" X
附录C 实验作业参考解答435# [, ]& V+ s  a7 l4 I/ u8 B

1 O5 |! h' |6 w' |( Z. y( F; x附录D 致青春,基础软件开发的中国故事 691
  j# P& _4 s2 k1 I5 n( ~
' y& \" [/ h5 i; L附录E Syser 操作入门 6959 M1 n4 K- L* t2 z  i
( ~' Y- b. U8 G, i
& c; A5 ]% V; q+ s9 u& y. ]  N+ v. A
想知道小甲鱼最近在做啥?请访问 -> 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
6 q. c- K; b7 I8 |. u: k什么编程语音写的?

1 k4 \5 L& c" @. U4 z$ Z/ m0 }什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-7 20:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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