鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

) Z9 H7 s3 |/ I. v9 }, \+ A# |9 G4 s: ?6 J3 O+ a
书名:《恶意代码分析实战》
$ |4 h. w+ |" R. M作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)" B+ P5 x: h# ^4 n* I2 U; I
译者:诸葛建伟,姜辉,张光凯
2 A' H7 d/ |3 W- @) a出版社:电子工业出版社
) W$ C! Z) g2 }2 u: H出版年:2014年4月1日(第1版)0 H' I' R4 _8 n
定价:128.00元
! d; i) y2 }1 B% K- z1 z0 q& D装帧:平装& Y  n5 N) G, @$ f) g3 K3 e
ISBN:9787121224683
( ^3 W8 q9 m  ^$ A/ `' R! o  d
, m8 \, f/ h/ k. \! E购买链接:
' g8 J) V( {; m4 S  [+ j$ Z
# b- O0 O! f: w% w" s1 b* s' q. ^
8 m' _9 `+ b1 V$ z- A& V
亚马逊 -> 传送门
$ \8 Q  ~2 N) {% @# P- ~. b% ]6 G! d: E; b* d. \
当当网 -> 传送门
: H( }1 Y( [7 o! ^
) ~1 I$ S) ^  L( ?% _9 }京东 -> 传送门
- j& B: ]) a6 I; V6 u
+ @* R9 K" p2 \; i天猫 -> 传送门
0 M1 t# ^, M( ?7 \3 o- y( K. p
/ A/ M6 g. k. ?9 m% ?8 D
! Y" E8 s/ D. y6 d内容简介:
" _: I: W" E0 ~4 l: x
/ n# a$ s) @' [

- N+ ~. {4 @7 p. x1 @) M5 Q1 j* \0 m《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。; ~6 b) j* Y5 a& c
3 A2 p2 r7 o/ N) C/ S0 s$ W% h. K% S1 q
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
2 b2 k3 X4 @- v9 q! I
1 N" c  D/ G  U  e4 ?6 ~) _' L针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;9 ~1 v7 s& W% Q; G- v3 _
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。! @+ q/ _% j8 b3 n6 r& c& F0 k
# `9 k$ \4 F/ }
目录:8 v1 S* Z$ a  y7 d% U" {( e
: M7 O0 z8 D8 L  t


- I/ I9 C7 E# f  o* a1 P第0章 恶意代码分析技术入门1
* C. Q. H% B& F3 M& U0 s7 n# {# `
. y6 ~7 A# V+ b4 u0 m0.1 恶意代码分析目标1" e1 L  X2 d. q9 X
0.2 恶意代码分析技术2
  P  F" @0 b9 f3 g6 l7 n/ @0.2.1 静态分析基础技术24 O  H, ?2 k0 ]0 w
0.2.2 动态分析基础技术2) s  [) [8 I1 R# m) N
0.2.3 静态分析高级技术27 A+ k' O; M9 h( }
0.2.4 动态分析高级技术2
/ f  L  m6 {" c. P; d) y0.3 恶意代码类型32 @2 Q8 P/ c, U& H% u3 E
0.4 恶意代码分析通用规则4
( I) ~8 y5 Q6 n3 o) r1 B8 m) p  Y% X4 Q( U# P4 r  ?1 s

3 M- ^8 g6 [. d6 ~8 j- L3 F第 1 篇 静态分析
$ V3 `3 L" h& t" S. H, |) a9 `1 E9 h( F: B; @
第1章 静态分析基础技术 6
- E+ _4 i8 c7 F: B) G  ]

7 x( D7 E0 h4 o# A" ~0 O1.1 反病毒引擎扫描:实用的第一步6, f( F. \! C% h
1.2 哈希值:恶意代码的指纹70 k; j' H/ ]2 [$ I5 f7 N
1.3 查找字符串7& {4 i1 Z  h! P. @# B" J% o! w. Y
1.4 加壳与混淆恶意代码9
4 ~2 N. @* Q: ^- D- k1.4.1 文件加壳104 ~' z, g0 N' H9 X; E* ^6 |
1.4.2 使用PEiD 检测加壳101 @3 x6 |& V( @, D% O' `
1.5 PE 文件格式11
0 z' {5 N5 b" h1.6 链接库与函数124 T- H2 l: x! h6 k
1.6.1 静态链接、运行时链接与动态链接123 a: F# g" S* P4 L3 t9 j3 J8 p) C7 V
1.6.2 使用Dependency Walker 工具探索动态链接函数13
' a0 w$ N/ ~$ A0 o% p1.6.3 导入函数14
4 p6 j& [$ v1 D  p) g/ ~1.6.4 导出函数15
, c+ e. Z. i  P1.7 静态分析技术实践15- s5 M; h) l& x+ k8 N
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
* Z: c) W( z5 A# a. v1.7.2 PackedProgram.exe:穷途末路18+ j6 O4 p5 W* |2 h1 w  T& w
1.8 PE 文件头与分节18
+ ]. B' M1 Q: h+ ~( {1 l' Q; s& |1.8.1 使用PEview 来分析PE 文件19
7 D; ?0 X  A2 c/ J$ `( _1.8.2 使用Resource Hacker 工具来查看资源节22
) h* d( V$ b3 ~: U. L/ V1.8.3 使用其他的PE 文件工具23. q, b1 C# F+ L8 p  [
1.8.4 PE 文件头概述23  x8 G' o# A' ^* G$ c6 t7 Z
1.9 小结24
1 v4 E3 {; @8 P6 O& E" S1.10 实验24
6 G# f: ^& e! r- p7 r' g. }+ G( L: p0 {- Q% B+ ?
第2章 在虚拟机中分析恶意代码 272 j2 [: O7 R# t! U! G

& g. p1 U0 @8 a2.1 虚拟机的结构27" B- r, ?1 k3 W+ B3 E- M
2.2 创建恶意代码分析机288 r; b# P# H+ J
2.2.1 配置VMware29' U" {. @0 _4 j, {* u
2.2.2 断开网络30
  {! ?- [5 ?6 D1 h  l. e) Z2.2.3 创建主机模式网络30. ~% ?# {. X5 {7 Q  x
2.2.4 使用多个虚拟机30
  V; O) @+ E( m2.3 使用恶意代码分析机311 q0 O" S5 ?" c- g6 W4 W# u
2.3.1 让恶意代码连接互联网31
1 V3 g! J7 |6 x; ]+ X9 j' Z: L4 k4 O2.3.2 连接和断开外围设备329 F# R" u2 l( _* K' t- L7 O
2.3.3 拍摄快照32
/ h' Y/ \9 H7 t' h) c2.3.4 从虚拟机传输文件33& Q9 V, E2 m5 f( W8 f- m% j1 Y7 A
2.4 使用VMware 进行恶意代码分析的风险34- L5 {" `, y" |. i  a
2.5 记录/重放:重复计算机运行轨迹34
) A% W1 }+ Q7 w9 w0 g; L( @% H  }2.6 小结35
2 H' w6 u' `, u) k
5 [9 P4 ~. |/ |# A3 Z& h0 J第3章 动态分析基础技术 36

* F$ z6 F7 Y8 f- X9 h6 M* r/ X$ }* u" ]0 t( }' I
3.1 沙箱:简便但粗糙的方法36
3 |0 K  @' z3 D) P$ M# N8 y- U2 {  I3.1.1 使用恶意代码沙箱36/ U/ u( ^* t& P+ _
3.1.2 沙箱的缺点37/ H7 V7 Q) P# Y, T" Q8 k
3.2 运行恶意代码38
' g" m& s9 L" k. U7 x+ s3.3 进程监视器39) Y6 f' {' A3 D$ L: ~
3.3.1 进程监视器的显示40
$ w( ~* w8 ~2 m3.3.2 进程监视器中的过滤41
5 `) j+ U# W* O  G+ y3.4 使用进程浏览器(Process Explorer)来查看进程43
4 u) [  I2 y" u& r2 W" o3.4.1 进程浏览器的显示43( G" l& ^% M: \# \% ^5 z
3.4.2 使用验证选项441 {: G' D# a4 i% v
3.4.3 比较字符串455 U+ ~3 Q8 a4 b5 @$ W( w
3.4.4 使用依赖遍历器(Dependency Walker)45
7 C' Q: Q0 z, T! R! x; d4 u3.4.5 分析恶意文档46
, P. [- c" o! J! A) h3.5 使用Regshot 来比较注册表快照46
9 r! U' L  M: a* b) q/ G7 E3.6 模拟网络47, C5 @: D/ S. T# C' M4 j
3.6.1 使用ApateDNS47
2 @/ ?, K& |+ c, w3.6.2 使用Netcat 进行监视48# m2 ]& v: Y5 m; g: P9 s8 _
3.7 使用Wireshark 进行数据包监听49& `! o: x& P1 A( ?! M- c
3.8 使用INetSim513 y# B" d. D# K; T2 y' ]
3.9 基础动态分析工具实践52" x* F' {) p6 E3 _* U1 L
3.10 小结55
4 r) T$ t$ x3 c  _3.11 实验56# _) n- s: L1 u( @6 x$ T' X8 t5 a$ _$ M

3 j6 Y9 U: D! L4 Y/ H0 e2 h
$ m9 A* v1 I$ U* l6 O2 l8 {第 2 篇 静态分析高级技术篇( g, k$ w! _; ^( \. I; z

* n: h5 }+ E2 c/ B: D$ Q+ \5 u第4章 x86 反汇编速成班 60
6 q' Z1 _. y* B* `. ~& B, ~; s. c4 N( I! ^  L/ h
4.1 抽象层次60* p; ?7 p" Z0 C2 F% R8 L
4.2 逆向工程622 b( v9 F+ X- l
4.3 x86 体系结构62
) t, D  C8 J$ j6 c: v" x4.3.1 内存631 R& L0 i6 D$ |2 ^0 v& X
4.3.2 指令645 n$ x% s0 }+ ~3 y
4.3.3 操作码和字节序649 A8 G6 M2 e5 s+ x: P
4.3.4 操作数65
' y# ]9 F( h1 C! J4.3.5 寄存器65
! u& x# S1 l) f# [0 h9 [4 F" K& [4.3.6 简单指令67) C2 z  n( B5 {
4.3.7 栈70" w# T2 H: [9 W
4.3.8 条件指令73
  r- J: x6 M2 f6 A' ~  D% C4.3.9 分支指令73
8 s; C. ^2 f/ u4 ^" E+ N' y0 J* G4.3.10 重复指令744 z" v* `: f& t/ D
4.3.11 C 语言主函数和偏移76
. D4 c- J: n1 h- r2 o: v- ^4.3.12 更多信息:Intel x86 Architecture Manual77
! ~! R0 I; C  o5 s+ h2 u! g4.4 小结78) f  U0 @( y) S# r

$ I0 n7 W% q* q( D( J0 z, b2 [第5章 IDA Pro 79
$ N1 m- q" m" h4 ]
, R' e) ?( x. z  l5.1 加载一个可执行文件79
; y$ z: ]0 n) W9 x9 }5 j; g) j5.2 IDA Pro 接口81% v$ p$ ~& `1 _) m. U
5.2.1 反汇编窗口模式81
+ n; H$ |3 ]) b5.2.2 对分析有用的窗口837 c' F' V1 g  H+ V: ?1 _
5.2.3 返回到默认视图83
7 x4 a1 c/ u1 _3 B* e5.2.4 导航IDA Pro 83
, p3 R) k' |5 |/ c1 V8 O) ~( p5.2.5 搜索85
3 h: b& q7 d! N7 D! x( u5.3 使用交叉引用86
% \: p) u' R2 J" y' ]. Z5.3.1 代码交叉引用87
- U7 k  q$ P5 t! I% H. U0 g5.3.2 数据交叉引用88
" [+ |8 U% s0 L5.4 分析函数88
5 e* |# J9 {! w: U1 x& W$ g5.5 使用图形选项89
4 ~% x. Y$ T+ Z+ k* V, G5.6 增强反汇编91
1 ^* [% ]8 Z( M! a9 I) e2 z5.6.1 重命名位置91
# g4 B, l! a: N. u3 `0 X5.6.2 注释928 c/ `8 r% \3 k  M" i, ]3 }
5.6.3 格式化操作数92
$ l1 x! j. L& x2 i1 X, M5.6.4 使用命名的常量932 ]2 Z$ ]* E$ b( {( M
5.6.5 重新定义代码和数据94
- Z! G3 ~. F8 X! A4 H- O( F5.7 用插件扩展IDA95
1 ~4 {2 q  w4 D' }) O% {3 }) l5.7.1 使用IDC 脚本96
0 C9 Q8 k" t6 ^5.7.2 使用IDAPython973 R5 M" ?1 N5 k
5.7.3 使用商业插件97- Y# S4 R+ [+ V' B0 R! M+ V) l; ]. p
5.8 小结980 g$ t) P$ y4 Y' D6 z. o
5.9 实验98
# W- f) r. m  i; f# k  ~9 k+ y2 T# I; Q+ R* Z) F
第6章 识别汇编中的C代码结构 100

# F- r* z. J* R& K$ I% C. ?& z0 N. t
6.1 全局与局部变量101
4 q- K* D: t' d7 C6.2 反汇编算术操作102# S+ U' T2 ?5 k! m0 M$ o8 g
6.3 识别if 语句104
/ t7 T3 P. e9 @1 M6 u6.3.1 用IDA Pro 图形化分析函数105
' X( ~0 @6 J) [" F6 d8 o7 I6.3.2 识别嵌套的if 语句106
6 s) e- H) C1 D! S8 Y# N6.4 识别循环107. f  e& `# V1 E
6.4.1 找到for 循环107
: ~3 @8 T( ^, v0 [# Y8 G. e6.4.2 找到while 循环109
1 K; d+ F! w* }6.5 理解函数调用约定110
, S' U: s0 b! S, t" ?9 M# W4 q6.5.1 cdecl110% d8 O: B* k) j4 M# I1 x
6.5.2 stdcall 111
/ x& n: W2 n6 Z6.5.3 fastcall 111
- q1 V3 \' l. t% q8 D6.5.4 压栈与移动 111
, p8 I' U) L, t, {, ?6 Q6.6 分析switch 语句1124 S4 N5 |1 ^4 n7 S% r+ B* H2 g4 i
6.6.1 If 样式1121 R2 B) R/ |  M' r0 v; x  }1 K
6.6.2 跳转表114
; i" ]/ D% p0 ^" {- x2 D6.7 反汇编数组118% p* M& P; U, N7 U
6.8 识别结构体1191 k& g- B# K6 j" ]
6.9 分析链表遍历121) L0 f4 ^: Y  s5 G" I  h) t
6.10 小结123& J3 d) y3 j5 K( H( f3 U0 u
6.11 实验123
5 ]: J4 w/ F6 N0 y1 m2 W8 @! Z5 ~
: h2 d; F3 E0 a3 Z5 u7 b8 f$ @6 Z第7章 分析恶意Windows程序 126
+ A9 I9 q) P0 ?- e

2 `) r" F! h3 Z. K1 P7.1 Windows API126
  U% _6 P5 S' ?+ c; ~+ u7 h7.1.1 类型和匈牙利表达法126) P* Q9 R; U1 p! T; R* y% ~
7.1.2 句柄127- Y% C' b- Q( L6 F' T0 [5 v
7.1.3 文件系统函数127
/ ^7 D' X! B" M& X7 X# v" p1 m7.1.4 特殊文件128
  u* n0 L9 }; l5 L7.2 Windows 注册表129% a, A* O; U9 l' l0 C
7.2.1 注册表根键1305 u' K& }9 E& I/ ?$ G
7.2.2 Regedit131
$ W- |& J, g- @7 w7 P! o  K4 h7.2.3 自启动程序131, }4 e; \' E5 i. X
7.2.4 常用注册表函数131) T" G* M' j7 X* r6 |$ X, \& k
7.2.5 练习分析注册表操作代码132
; `  j; g0 j9 j6 J7.2.6 使用.reg 文件的注册表脚本133
& o" B) k1 v) g8 b" Y0 {8 X7.3 网络API133
1 B$ S/ Q" `8 @7.3.1 伯克利兼容套接字134
; K' I5 l0 E+ ^/ ^' P# H7.3.2 网络的服务器和客户端134
7 q2 C) U3 E! o0 G, A* N3 e7.3.3 WinINet API 135" b6 m% _4 o5 ~& n8 S: |: z
7.4 跟踪恶意代码的运行1369 p1 x& }7 x: q: a, J
7.4.1 DLL136
; y* e: t0 q* n) H  I9 N& @: l- Y7.4.2 进程1378 U9 d7 L( c+ M" i9 S; s* u" ^
7.4.3 线程139
3 B" M5 \1 d+ a) e# `  S2 S7.4.4 使用互斥量的进程间协作142  ^3 Z5 J" H- w0 e
7.4.5 服务143
5 M3 F* |: C+ I0 h1 T) C* I7.4.6 组件对象模型1458 g; A1 q3 o$ |! M0 [( ]. O
7.4.7 异常:当事情出错时1472 m8 I4 z( Y$ N$ U: U- J4 T
7.5 内核与用户模式148
3 K: p! K4 J, c# `3 g7.6 原生API1498 m4 b  F0 E8 T0 N% I3 S
7.7 小结151
, Q# g! Q$ M6 s2 d& H( @7.8 实验1510 M6 d! E) V/ o2 T
5 d' ^4 j6 v% G$ e

) A  w  N( o4 a; \8 ~& U第 3 篇 动态分析高级技术篇- Q. B# T4 ]) n7 B, ?# E

* F  k: Z# n% X. Z; I/ B8 n) v& B第8章 动态调试 154

5 ^& j- x+ z; C5 e; J
  P% n* }7 P: t: d( J8.1 源代码级与汇编级的调试器154: p0 g# i9 R4 D
8.2 内核模式与用户模式调试155  ?2 G6 ?: L' b& k$ U
8.3 使用调试器155
3 X: n6 C# B' L6 f% }4 m, f8.3.1 单步调试155
, I% [/ ~( Z: M, d. z. O8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1566 r  y  A  c' w& W" z
8.3.3 用断点暂停执行157
4 n3 t1 m7 {+ U, Q8.4 异常161/ d( {0 ]1 I$ j' k- R  L
8.4.1 首次和二次异常处理162
* n% ~( m/ B. @' F0 \7 m8.4.2 常见异常162
. ]% l0 N  M' W' G6 j8.5 使用调试器修改可执行文件163
2 k: {. J: d+ k  v8.6 修改可执行程序的实践1637 O* B. N3 X3 E" @. C4 ^3 u( V  O
8.7 小结164
* Q" G# c; y1 L+ W( i$ B# b9 M1 c) F; v* v# ^" Y- o
第9 章 OllyDbg 165

% @0 v( x- }% t- x1 ^
- r) }: I  Z8 R, w; i9.1 加载恶意代码165% S+ Y$ d+ {4 k" A( J) a' V
9.1.1 打开一个可执行文件1652 g) X2 ~, n% |. Y, M# ?- V
9.1.2 附加调试器到一个运行程序166
! t$ ?$ ^  ^# D6 [9 D9.2 OllyDbg 的接口167
+ C% `) N! D# V3 H/ D7 C) g9.3 内存映射168
% X" B) J  v' q, g9 ^$ w9.3.1 基地址重定位169( f, S6 Q  i- j; R, h5 a
9.4 查看线程和堆栈1703 s2 u6 Y/ j2 H  p- {* b0 g$ `9 |
9.5 执行代码1714 Z- C( B3 b# h0 R! j; L
9.6 断点172
8 F& n( Z( E2 U: c& o9.6.1 软件断点173
% K* W0 X" A+ B  R0 a0 \9.6.2 条件断点174! J  q4 l1 M3 B/ F
9.6.3 硬件断点175
  q# j% c+ C7 P4 ]9.6.4 内存断点175
& ]! r9 }- ?  |9 L5 P9.7 加载DLL176
9 c* d8 y' l% P% m) I& @" Q9.8 跟踪177
, T1 d4 E6 a9 w0 j1 Q+ j* A5 ]9.8.1 标准回溯跟踪177
- A8 U# d% c* T/ r( ]9.8.2 堆栈调用跟踪178* Z7 e4 ]0 {) l5 o, N
9.8.3 运行跟踪178* ^' c9 v) H2 M6 F* m5 `# b
9.8.4 跟踪Poison Ivy178
$ r+ \7 [$ ]4 k0 T( ~9.9 异常处理179
2 T  A3 o& u7 _! \7 @# D6 K9.10 修补1803 o# U* k) R" D/ V- Z4 W
9.11 分析shellcode181
& a/ ^& }) W# L- ^% o9.12 协助功能182% H  M0 G3 I; C
9.13 插件182) i2 m8 w, v9 H4 q3 E, t
9.13.1 OllyDump183
& G5 q+ x$ H( P% i- t& `& I9.13.2 调试器隐藏插件183
. [, S9 k: z$ @( A" s: K9.13.3 命令行1841 ~5 R. C# f  b9 B7 C8 P9 C' ~" E
9.13.4 书签185
  F2 W+ l* e! }! L% `7 C9.14 脚本调试185- R7 r6 z' i% n8 \: j" m
9.15 小结186
  ?! q2 o8 V  h4 t& P' p9.16 实验187
. f. i* }7 F. c+ Q
' t) |3 _4 t# K0 U第10章 使用WinDbg 调试内核 1890 C) B; l5 [/ m/ B' w+ v/ B# {

6 Y( H$ K" O6 F3 U  W10.1 驱动与内核代码189
4 n. _7 W& |/ S% L' N10.2 安装内核调试191
* n3 ?& J/ l* a% k! ]10.3 使用WinDbg193
* S) e, F6 ?4 X, i$ m10.3.1 从内存中读取1949 X. b$ O) v2 P
10.3.2 使用算术操作符194& k# ]$ F# Q& U% ^3 m
10.3.3 设置断点1942 R0 w, @2 {( s9 Z6 W) J* }& E. y
10.3.4 列举模块195
; W# K( s  G6 m6 b7 R' M0 ~10.4 微软符号表195, W- F  I7 @" k( c
10.4.1 搜索符号195+ Z/ D  X6 ^( y, O5 g
10.4.2 查看结构信息196$ ]: r& O! a7 I% q* M% Z
10.4.3 配置Windows 符号表198
1 O& w' F7 C2 b  N10.5 内核调试实践198# w9 Y: G) C4 h* d7 a
10.5.1 用户空间的代码198
8 y; z7 p" ?% m$ e3 {10.5.2 内核模式的代码2002 R* A' a: w( ^: H
10.5.3 查找驱动对象203- Q  Y) U0 v9 W4 Z& h
10.6 Rootkit204
; V- n1 V5 [6 q5 E3 b. I10.6.1 Rootkit 分析实践205
7 h$ i) b- o- }& m$ J; O5 w10.6.2 中断2087 d/ h  Q5 x: Z! D5 N  C
10.7 加载驱动209* x- l' d" v% c  Z0 `3 K, }
10.8 Windows Vista、Windows 7 和x64 版本的内核问题2093 ~1 y: ]( F. K4 r/ ?: @* ?
10.9 小结210
$ G( o9 L+ w" V/ t4 v( |* e10.10 实验210" |' g0 w) A' W0 J$ I( ?! V
1 r9 m( u# Q( {! g2 u
, r! x+ R. c, _  S
第 4 篇 恶意代码功能篇
: x$ d( t( e3 U" ?& z7 y# L  X% x/ d, b/ J/ _7 |
第11章 恶意代码行为 2146 g2 Y  z- z) `
( v, a! x6 d  x  |& a* U6 f# }  L; @
11.1 下载器和启动器2147 m/ |5 ^( q$ L: p
11.2 后门(backdoor)214
3 \  E9 j- U! P8 Q2 c+ n5 b) t11.2.1 反向shell215
8 J; f5 ]0 L4 {- R, [) z8 e11.2.2 远程控制工具216
0 }  C/ [6 D; X% N11.2.3 僵尸网络216
; F" W$ _2 M& E4 ]1 z3 q11.2.4 远程控制工具与僵尸网络的比较217
/ R5 p; a* ?0 Q11.3 登录凭证窃密器217
# V1 g; P% Z5 ]/ s* _& x$ a11.3.1 GINA 拦截217' k5 S0 N. w& i3 x
11.3.2 口令哈希转储218
( \2 O1 l0 T) q9 R+ g( P11.3.3 击键记录221
8 S, m2 j+ l; p7 c11.4 存活机制2235 t8 _0 S. o  n: v8 J, N0 c6 n* {; S
11.4.1 Windows 注册表223
+ b4 @6 V# F- q% I11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
8 e  @  k8 F$ w7 ^4 v) y11.4.3 DLL 加载顺序劫持227
% A) Q4 o( z: x8 q11.5 提权228: B5 A+ J; K; \% ^$ _7 Z: E
11.5.1 使用SeDebugPrivilege228& Q5 F6 y$ _, r3 T$ O
11.6 隐藏它的踪迹——用户态的Rootkit229
6 b. i' w! n% d! |4 Y0 _11.6.1 IAT Hook 2304 [4 |& B7 \6 ^
11.6.2 Inline Hook 231
! t& i/ O5 k! W) [9 H7 R4 J% k11.7 小结232
' R9 t' i0 Y! B: e6 O11.8 实验2322 N& g% L, s$ s' @: I
- p& ~0 p, A. A. Z$ E. D
第12章 隐蔽的恶意代码启动 234( H5 i+ X7 j! A3 I! |

" y$ U  W% x6 |% g# q  v12.1 启动器(Launcher)234
( h+ @" [) X% G9 }' t7 O12.2 进程注入234! p9 k$ J3 ~5 d: o/ J
12.2.1 DLL 注入235
5 {9 N9 a1 U& ^, ^( V6 r( [/ E12.2.2 直接注入237: N* n: d/ E0 }/ g. Y# f
12.3 进程替换2381 J1 {6 ~/ v2 I! H8 Y; A8 F
12.4 钩子(Hook)注入240
% U8 N: @3 x) N6 {0 o12.4.1 本地和远程钩子(Hook)240
! ]3 p, y3 e& |12.4.2 使用钩子的击键记录器241
- v$ p0 E4 _# I3 i4 F12.4.3 使用SetWindowsHookEx 241
6 Z% E+ Y7 f+ r4 e# J' A12.4.4 目标线程241, c+ h8 e8 I* [
12.5 Detours 242
7 t* Z7 b! x. m12.6 APC 注入243! z4 C9 p/ n, B3 V: z- }3 Q& l' b
12.6.1 用户模式下APC 注入2447 r" R6 D# d' v, n, e/ C1 {) A+ ~
12.6.2 内核模式的APC 注入245
; c* _9 e( [9 i: T" V% N3 p12.7 小结2464 h2 I+ ^% }1 t/ o5 }
12.8 实验246  r; @4 T% ]& Z4 W* w
$ Q3 F, \( [' ]9 v3 v' c! \+ j
第13章 数据加密 248
$ j+ `# D) o- P' g
% J$ g& ?8 L8 t13.1 分析加密算法的目的248
& P  y) W/ o9 t+ u- f13.2 简单的加密算法248
  x7 w2 s/ z0 }' T, L13.2.1 凯撒密码249
5 ]' P% c& N$ H* K! I; w13.2.2 XOR249
, {0 c! T: O! Z$ W13.2.3 其他一些简单的加密策略2548 o+ [4 L0 _" }5 G5 H! A
13.2.4 Base64255
. u& a' N: g: U2 A  d13.3 常见的加密算法258
+ f2 Y6 @0 Q* o7 @# V# ?  h13.3.1 识别字符串和导入259
" O. `9 ]; x- H13.3.2 查找加密常量259
4 m, N. H, q1 Q, T; s8 T7 G13.3.3 查找高熵值内容261/ V+ T8 m! L: }
13.4 自定义加密262
& a( N7 m$ f' H& |1 Z- f, J3 I+ x; C13.4.1 识别自定义加密263
% ^" J, t" o: |7 _4 q13.4.2 攻击者使用自定义加密的优势265+ H; V' }' l, a* p' v/ @; N, E) }2 U0 `
13.5 解密265* e) q8 R2 n1 k8 X' P
13.5.1 自解密265
2 M. t& W4 ^/ q. B6 q, ?# u13.5.2 手动执行解密函数266, w, x, f) o& K
13.5.3 使用通用的解密规范267/ b1 ?5 U$ y, I
13.6 小结2702 [: b3 f; N! Y; u  a( d" ]
13.7 实验271
6 M6 A+ l) Q7 P1 t% x. w$ b5 Y4 U3 n& i0 X% I8 A
第14章 恶意代码的网络特征273' g# W' _# |) d+ ^0 L) M/ y

2 @& w4 k9 t5 m( g: ~14.1 网络应对措施273+ C. B% s* y0 r, S9 _: z
14.1.1 在原始环境中观察恶意代码273
. I% B/ z( Z+ h& N8 W- v14.1.2 恶意行为的痕迹274: h# T6 r' {9 K0 p! z2 s
14.1.3 OPSEC=操作安全性275
0 Q/ K/ J* r! P$ e% p% o! P14.2 安全地调查在线攻击者275
5 R  U3 i: e* `1 N( `1 i1 I14.2.1 间接性策略275! J; N$ D. F6 [% `3 X; ^# F* y
14.2.2 获取IP 地址和域名信息276
& E7 @( q9 J: R5 [1 r; J9 O14.3 基于内容的网络应对措施278$ l$ |' v$ {$ B( d
14.3.1 使用Snort 进行入侵检测278
9 _5 |) e* R) J4 f0 w+ @14.3.2 深入观察2792 Q! w8 P& K3 i3 X
14.4 结合动态和静态分析技术282
% |$ |' B& z3 E$ l14.4.1 过度分析的危险2832 [9 o9 r6 b! f1 L1 f% ^3 s2 y( t3 p
14.4.2 在众目睽睽下隐藏283
! z* A2 H* p  o2 U14.4.3 理解周边代码286" `% b4 m1 K+ J& H8 C0 y
14.4.4 寻找网络操作代码287
# V/ A5 Y% G3 E& X3 I1 t0 i5 ?14.4.5 了解网络内容的来源288
1 T$ l; ~1 ~; T9 _& f; W9 m, V14.4.6 硬编码数据 vs. 临时数据289
9 j/ H7 p' p% `" A7 J5 {14.4.7 确定和利用编码步骤2896 ^7 b% D0 w5 }+ c+ {& h
14.4.8 创建特征291. a6 Y# w) ~6 p3 M
14.4.9 分析解析例程292
7 h  T8 t, z, h& R14.4.10 针对多个元素294/ [6 M) G, i0 r, X/ f: @6 u, e9 O
14.5 了解攻击者的意图2952 C3 `3 P+ E4 c2 R) A
14.6 小结296% R. Z: r6 J9 ]2 o+ v9 W" A
14.7 实验296
+ y8 B3 j7 b' D7 i: }5 U9 Z% P9 ^$ _

$ U% c: x! _, P第 5 篇 逆向工程
6 Y, c4 W/ q$ t0 D% ?4 Z1 }  h
6 S+ k; t! A# b6 }% ?第15章 对抗反汇编 3003 h- A, m# ]( R3 t+ l" ^+ D0 z
, D9 B7 J0 w! i
15.1 何谓对抗反汇编技术300% T& O: t) v1 z9 G
15.2 挫败反汇编算法301) h1 m8 s1 B" @5 ]! s4 V* U" x
15.2.1 线性反汇编302
1 o) X2 Y0 L: b4 q) d15.2.2 面向代码流的反汇编303
* z" @, E! {5 d+ e# j/ s15.3 对抗反汇编技术306
! `3 L4 f- E5 g5 r. t: w15.3.1 相同目标的跳转指令306
+ t$ P" k, W5 V  K15.3.2 固定条件的跳转指令307: z+ x% n* t1 Z) P  [* M6 U4 O
15.3.3 无效的反汇编指令308) T$ P+ D! |& L
15.3.4 用IDA Pro 对指令进行NOP替换311
. Y; t- \6 i5 Q# A$ z# ]15.4 混淆控制流图312; S' }. X% U8 w8 F; \; Q
15.4.1 函数指针问题312
# l# D5 O) G3 B15.4.2 在IDA Pro 中添加代码的交叉引用313/ T0 e2 c7 w% p& S0 X& @4 a
15.4.3 滥用返回指针313) B+ M0 r  M& y5 E; t; Y
15.4.4 滥用结构化异常处理315
2 b0 _  @) r+ T2 w- i$ T. u* O15.5 挫败栈帧分析317
9 ^& I/ d- p/ H/ W, d( [" |) b15.6 小结320! n2 }1 B% w* Y% s7 z( C: v0 M
15.7 实验320
; k( g; e+ w" u' U" x8 _( U$ v& W/ i$ o
第16章 反调试技术3228 s2 W' v4 V" ~1 K! _1 f8 S+ p7 R

7 C& w) S, O0 z$ N& T2 x2 E16.1 探测Windows 调试器322' c/ V* h/ L! e; B3 i0 Q# N
16.1.1 使用Windows API322
: G2 E& j: x2 u$ S16.1.2 手动检测数据结构3245 r+ W+ b+ l; z! T5 o% b7 @! I  e
16.1.3 系统痕迹检测3267 i% \! e; g8 Z2 f+ L
16.2 识别调试器的行为327
7 t. a: u% \5 J8 P2 I16.2.1 INT 扫描327
8 g# n3 |2 d0 S16.2.2 执行代码校验和检查328
" i. o  P1 t$ O( w& j3 U/ N( Q% A) b$ a% d16.2.3 时钟检测328
7 g0 S( t. O# I* [: a16.3 干扰调试器的功能330
2 }7 Q' j" s* [  L8 ~7 ^6 ]16.3.1 使用TLS回调330
& T4 N2 l1 ~. x- \/ R3 s- o. J16.3.2 使用异常332. V$ B! j$ N6 D' j) N8 C
16.3.3 插入中断333* ^/ W/ h. J  S2 d8 W
16.4 调试器漏洞334
. O7 B$ i: f1 w2 V% G5 }; h* a16.4.1 PE 头漏洞3349 r+ M% X6 Z' z* V
16.4.2 OutputDebugString漏洞336
1 d4 o8 p  A' }/ c( Z4 j16.5 小结336+ B0 `" @$ z7 F
16.6 实验336; N8 n$ ^( V, s6 p  ~
! N3 _) M9 L) V/ ~# E! J( n
第17章 反虚拟机技术 338& {  G0 }  j0 M5 G2 G# C. k6 _
2 \2 M* `# m. @8 J6 G) W( ]
17.1 VMware 痕迹338
  e' \7 y/ O$ C7 `' w. _! q$ z17.1.1 绕过VMware 痕迹的探测3404 c, ]9 h' R* S2 b+ c7 H* _& _0 f
17.1.2 探测内存痕迹342: C3 Z$ x/ }& m! x" o
17.2 查找漏洞指令342
+ l* S. ~" Q! ?4 m$ ?% f* A# R& J17.2.1 使用Red Pill 反虚拟机技术343
2 y, }/ _, Q/ X9 H6 t" X9 w% s17.2.2 使用No Pill 技术344
# k3 Y! }" F) X$ J$ Z17.2.3 查询I/O 通信端口344
5 F7 ^: m" U2 u. }3 k1 _17.2.4 使用str 指令345/ N( n' i- ]7 @) w
17.2.5 反虚拟机的x86 指令346+ z5 r! s( V' X* p
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347& q+ x8 @4 l  `  E
17.2.7 使用ScoopyNG3478 k$ @! {/ }+ E
17.3 调整设置348
! v! t/ [2 g6 O' G* o' b5 L17.4 虚拟机逃逸349
- j2 W6 ^. U7 D" n" N+ L. Z17.5 小结349
! x! m; u  ~4 G- ^17.6 实验349
+ J2 {. m, n0 A+ X0 B; c+ k$ @: L/ v/ F
8 I3 }5 r2 e' J第18章 加壳与脱壳 352$ h# z* ]; f3 g/ j  X  o

8 A5 u) k5 s# j# _. J18.1 剖析加壳352" i) d% I# J- a; U2 h# q
18.1.1 脱壳存根353) l- X( B1 r6 \. `& s, N# J
18.1.2 加载可执行文件3531 U1 i& h2 T/ u& a6 p
18.1.3 解析导入函数表353
  y& q' J7 Z; p4 _, b5 E18.1.4 尾部跳转354. f5 K3 G9 O" z+ a/ @
18.1.5 图示脱壳过程354
$ W+ A* {' @, h+ b2 r18.2 识别加壳程序3558 {3 ]" Q0 l& ^& h' ]
18.2.1 加壳程序的标识355
5 I1 P3 X3 V( j2 _# S18.2.2 熵计算356
# t+ Q( B4 k3 f( C, X8 e5 U# T& }18.3 脱壳选项356
6 W) G1 c6 v- k( i* F, @1 M18.4 自动脱壳356
7 l$ K0 I0 ?3 y  H5 l18.5 手动脱壳357
$ n8 F+ K* K. t) B( z* o& a18.5.1 使用导入重构器重构导入表3583 J/ B9 [7 j% Z( i6 Z
18.5.2 查找OEP359
  k$ a9 G+ K- C5 b, y. b18.5.3 手动修复导入表363
, I" E8 d- P7 y4 Y2 b1 Y4 U: N18.6 常见壳的技巧与窍门364
, u0 @" a8 |, J3 z$ r) p18.6.1 UPX 3640 e! e% g/ b0 o5 q
18.6.2 PECompact 365  t; u% |' H# I: `) Q/ T
18.6.3 ASPack365% i9 d- {5 L! F& W) V
18.6.4 Petite 365
: m6 w6 C; s& P. n% M18.6.5 WinUpack 366
/ c7 @# A6 R4 v5 B6 m- Y) t" n18.6.6 Themida367
" q* A, u+ }, p' s; A18.7 不完全脱壳情况下的分析368
& d8 q0 ~! [: @+ j) ]  |$ `18.8 加壳DLL 368
! ]5 [% I7 X( C18.9 小结369
$ ^1 L4 j; `6 |2 @" y0 \18.10 实验3697 U; r4 }# n7 \% V
6 [: \* Y- L) a. K" r

3 f5 v+ N7 @" o4 J9 w+ n, B第 6 篇 高级专题
( x. N7 ]6 V8 L" y0 }( L6 ^2 m3 C" `) L8 l$ x6 Q/ l: y5 z
第19章 shellcode 分析 372" T8 h# q1 o( g$ Q- o

% Q1 I9 a) p* o5 q* y* e19.1 加载shellcode 进行分析3724 G1 {8 a" Z  F# i
19.2 位置无关代码3739 I9 s" W" v! _) G/ Q
19.3 识别执行位置3734 e& Z! n6 ]7 W* H# r) H
19.3.1 使用call/pop 指令374! s; M7 S$ f! e. [8 l# G
19.3.2 使用fnstenv 指令376
6 M) T8 B3 S1 [+ O19.4 手动符号解析377
* ]" t4 F1 D* u0 Y. k19.4.1 在内存中找到kernel32.dll378
. z# U! R8 _" [5 m/ s4 |# d19.4.2 解析PE 文件导出数据380
9 v* F" F( e; l5 j7 t! `! c, [19.4.3 使用散列过的导出符号名382
+ c2 r0 E: s2 }' D7 l/ V; V19.5 一个完整的Hello World 例子383
+ `! ~: K& C8 v" X2 T  b# P19.6 shellcode 编码385/ |3 T+ y- o2 r' m. B8 |3 q
19.7 空指令雪橇387% d  m$ c8 w  y. @6 U. m, u
19.8 找到shellcode387' l8 {# D, _" a( D$ A* e+ I- D. ]
19.9 小结388
* O, x! D+ O* t19.10 实验3892 V0 J, l; u! n  S; |; _1 K
7 M. l! `! ]8 P0 j
第20章 C++代码分析 391( F3 ]+ B  \- Q& ?" Z. r, i
1 F1 O; i1 p2 e
20.1 面向对象的编程语言391
- M4 F2 w2 p& `7 z9 {( C' L: [* I20.1.1 this 指针392! i+ X% c9 e! N5 b2 S9 y/ O
20.1.2 重载与修饰394
# p, w) \5 w, e4 j0 K20.1.3 继承(Inheritance)和函数重写(Overriding)395' f  a9 ~0 j( T' U  X+ R* X/ H
20.2 虚函数和非虚函数396
; y* `: C+ r! b) V/ X: ?20.2.1 虚函数表的使用398$ M9 @8 c4 i9 Y& q/ M/ [* u" C
20.2.2 识别虚函数表3998 h/ I! H# M! O/ Q
20.3 创建和销毁对象400( {; ?3 M& m. P0 p7 |0 k
20.4 小结401
/ f; G8 w9 L8 p4 v" P$ I. x  |4 p20.5 实验401! ^' Z3 s' N5 M0 a  P% e+ J
# r; S4 x1 y) I- a) D6 x$ R
第21章 64 位恶意代码 403" n9 \: o& Z% w- Y5 ?' F4 z9 U7 u6 E  y

' }7 m3 [9 [  W7 x9 s21.1 为什么需要64 位恶意代码403
5 g0 P9 b% _7 v# e! Y' e( t21.2 x64 架构上的差别404- r. @2 r) k" p  M- T; ^" R9 e  k0 l
21.2.1 x64 调用约定和栈使用上的差别4068 u$ K- W# G+ i" w8 M& n$ p$ P
21.2.2 64 位异常处理4088 l* `4 u) w5 G% ]/ s% X; `4 U! a
21.3 在Windows 64 位上的Windows 32 位408- m' E5 Z  L" v
21.4 恶意代码功能上的64位提示409
( r  D7 x! x  z! m5 U3 R) C. i21.5 小结410/ V; a" |; }: m2 e7 [
21.6 实验410
8 H: \' H1 o; k8 ^) O: B% [1 p& {1 F+ }+ w/ N
附录A 常见Windows 函数列表 4121 }' V1 F  e3 `
" f- D2 O1 L5 Q' L
附录B 流行的恶意代码分析工具列表424
% r9 B$ }* t7 E. j
( \: \9 v+ L: ?$ r2 e7 q1 q附录C 实验作业参考解答435
) q3 C5 [( {/ i$ G+ L7 a% a* k7 Y1 [9 a  |: Z
附录D 致青春,基础软件开发的中国故事 691
. \7 X" k1 P7 S" n& p
/ J/ @: T& s5 \- ?6 |7 H0 X- i附录E Syser 操作入门 6951 y/ T) r0 ~0 H; [: S  P0 |* F( i

" Y4 v2 [( n" w- I: g1 F2 n4 T$ {- u3 z& {. r6 s1 t- o& w% T0 R
想知道小甲鱼最近在做啥?请访问 -> 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:514 h3 H2 u6 _  E4 [" M4 r
什么编程语音写的?

: b+ |; t5 e  v# [* R/ y$ h; i9 Z什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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