鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

# t* y) |; J& G' p# {1 K9 O; F
& ?( L% v0 A6 a/ x* Z书名:《恶意代码分析实战》! M2 g- N# `# r  X" i
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
3 i+ @' f( \3 `6 [3 D译者:诸葛建伟,姜辉,张光凯
& s1 N. }1 Y( q6 L7 p; }$ x出版社:电子工业出版社
; l! F, T4 V: p6 i: `0 R# i. a出版年:2014年4月1日(第1版)! a& l7 m8 L( {9 b
定价:128.00元& `  q+ _+ z8 K. @
装帧:平装
9 j3 g- T" U4 _7 D6 a1 [8 X# K+ gISBN:9787121224683
8 M7 a6 L0 T4 Z) q, d* c/ a+ M& e
购买链接:
- i' K$ K; \* [: {) g: m2 T2 G( s7 N/ X' f: T7 ?


2 n/ N: Z% D4 k亚马逊 -> 传送门
: E) G/ k1 z/ D: h. _
# B0 e: }' ~4 n0 M9 E当当网 -> 传送门  N# v% L/ E6 H0 M3 n
9 r. K; p0 h- n7 D" n7 }7 U
京东 -> 传送门; G. A: I6 h7 i2 t; k- R, @: [

4 a! W& A4 h0 r天猫 -> 传送门
( Q9 s/ z6 t! V
( ~" I0 X: C% J+ K$ P+ s) d2 H9 B1 e+ e6 J
内容简介:
0 ?# J! [' @& l& i% @6 Y
4 r. M8 K0 A1 p7 Q1 @

- b, m+ d) h8 ]: z* J8 A《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。4 \$ e( B9 E5 L# m+ J

" e0 D: |9 d6 p《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。* C* `7 r2 ?0 E" u( Z$ Z" q

& a8 P& i6 c! o; P8 c0 q  w针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
  |" @: s  o# P: X) D' H* W& |% O针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
$ p6 m8 K, g3 W' q- P" n% Z6 F# ~: M8 [1 @7 U
目录:9 y# v* O& B: G+ |2 E, W

, m' n* K) c, G3 g5 b- K* @

$ P$ J( q6 `, \  W第0章 恶意代码分析技术入门1; |: u6 [' u! J- d& C: h5 w

( x( I, B$ g+ w. x2 `0.1 恶意代码分析目标1# c, B; u; m6 V* E6 H0 L* @+ u
0.2 恶意代码分析技术2
) z% o3 h; A' Z3 D0 r0.2.1 静态分析基础技术2' e9 F# E+ o1 l- N, I
0.2.2 动态分析基础技术2
% J' t5 c# i2 h9 Z; f0.2.3 静态分析高级技术2% H) b* O+ S) G* l! n/ h
0.2.4 动态分析高级技术27 H: l% k7 ~& b
0.3 恶意代码类型3
+ J! `" U  ~9 k; k7 M0.4 恶意代码分析通用规则4( w8 g+ |8 D4 n' \) D/ D

4 a- j' m) Q! t* Y$ P) G: \1 Q7 l- m0 \) E6 ~
第 1 篇 静态分析7 k# H! t, v' _5 N! D
. c" i. t0 W& ?3 l( {+ h( I( R
第1章 静态分析基础技术 69 n4 q8 A3 S' C4 n
/ @# [0 N" D8 K# [1 F$ [% }
1.1 反病毒引擎扫描:实用的第一步6! a& Q6 y% l- j) I
1.2 哈希值:恶意代码的指纹7
" O2 l* _& a9 b( v1.3 查找字符串7
3 g& ^/ d- d+ k' N1.4 加壳与混淆恶意代码9; A  b# l# m$ f" M- ?3 U+ F
1.4.1 文件加壳10
7 j2 a  t: A5 M0 V; o5 ?9 l- U0 ~1.4.2 使用PEiD 检测加壳10/ [0 v! o8 m' h8 C# y
1.5 PE 文件格式119 P0 g6 ~6 D6 o3 e4 t% `
1.6 链接库与函数12. g" V- {0 R+ [$ M
1.6.1 静态链接、运行时链接与动态链接12  q, V2 ~& M6 r; f+ j' I9 I! d
1.6.2 使用Dependency Walker 工具探索动态链接函数131 u: H* y9 j5 W1 W7 V/ ?0 h
1.6.3 导入函数14
3 a# D. X1 {0 e1.6.4 导出函数15
0 d+ B: T3 Z/ Q9 x7 I1.7 静态分析技术实践15& h$ V/ \* |& H8 W4 |4 S
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
* S3 B# q( Q& u- P1.7.2 PackedProgram.exe:穷途末路18; m. Y( R; {9 Q4 y
1.8 PE 文件头与分节18
4 U( M+ R* V* C' e* v1 ]' Y1.8.1 使用PEview 来分析PE 文件19
' @8 I; a- a) z3 Q1.8.2 使用Resource Hacker 工具来查看资源节22/ p. L% I! F0 {* z4 h
1.8.3 使用其他的PE 文件工具238 o" f0 p" Z' k& `$ c
1.8.4 PE 文件头概述236 P) n2 I8 j- X3 b; [
1.9 小结24
9 \& ?6 @8 E8 p1.10 实验240 ?* t! @$ U, f; P. Q% G, Q$ D  e
$ q" ]: k! k' e  O. c* C
第2章 在虚拟机中分析恶意代码 27. G) v. l/ J; ]; S' S4 |# n0 C
6 F/ l' C) s" @/ ]8 q" m9 Y2 ^
2.1 虚拟机的结构27
% n' \. p  m8 s% I5 N# e2.2 创建恶意代码分析机28
$ }, y1 r5 z; M$ ]" r2.2.1 配置VMware297 l, y0 p* Q/ L+ d) S
2.2.2 断开网络30
; Y! L3 B3 S1 L# u2 i/ f, R2.2.3 创建主机模式网络306 g7 D: w- L+ X  t% f
2.2.4 使用多个虚拟机30
, u" Q' r+ E5 P# l+ l2.3 使用恶意代码分析机310 w2 Q8 T7 }. t
2.3.1 让恶意代码连接互联网31
4 g7 p3 Z/ P1 E; \2 e2.3.2 连接和断开外围设备32( i% T3 Y/ C4 I) s# h
2.3.3 拍摄快照32: k  ~' D( m4 d$ r& f. E
2.3.4 从虚拟机传输文件33+ i2 X6 J! ]$ }1 w' P
2.4 使用VMware 进行恶意代码分析的风险34+ ~$ ?& {( v0 `3 I: b/ i
2.5 记录/重放:重复计算机运行轨迹34
$ E, X3 {  @/ r# a2.6 小结35+ y; T" {8 a8 X6 ]/ k1 ?

* D. r- H( T& U第3章 动态分析基础技术 36
0 L2 ^- C/ _& s  M8 f! \: R% b6 [
" e9 M! s! E& T( A+ f
3.1 沙箱:简便但粗糙的方法362 m$ c* l* t3 @" ]/ i3 a
3.1.1 使用恶意代码沙箱36
! U8 [% x6 V! G4 P2 |3.1.2 沙箱的缺点377 q: c% h: n9 I
3.2 运行恶意代码38/ ]6 c- K1 Z, h; P
3.3 进程监视器39
) I8 {0 l' Q2 p5 V; m2 l3.3.1 进程监视器的显示40
0 C; O0 A2 `% F: i$ B3.3.2 进程监视器中的过滤41( Y4 q3 I( ], C# w3 b
3.4 使用进程浏览器(Process Explorer)来查看进程437 |( u7 J- v3 @( x# M0 d
3.4.1 进程浏览器的显示43" a& ~* @3 J! E. T# |
3.4.2 使用验证选项44
- A& H2 f9 ~2 r) h+ o: Z0 Y3 D3.4.3 比较字符串45
" H; ?- w- H& O- }8 g+ N& O) r: z3.4.4 使用依赖遍历器(Dependency Walker)45' D( q2 F$ f- _  O6 v
3.4.5 分析恶意文档46
' _; a! z+ h. A7 o8 M: n* [% D/ B3.5 使用Regshot 来比较注册表快照46
" A8 ]6 Q4 @6 Z/ o8 f& X, m3.6 模拟网络47
1 Z1 P6 S* m2 A" U# U: _3.6.1 使用ApateDNS47: M. f6 y% U' `, H% U) i* Y
3.6.2 使用Netcat 进行监视48& Y/ G) t7 N) p
3.7 使用Wireshark 进行数据包监听49  Q3 N+ e' |( }' X; M
3.8 使用INetSim512 [  z' r( o9 y" F6 @
3.9 基础动态分析工具实践528 {+ A% n7 ~! h
3.10 小结55
/ {" L0 x6 e. B/ a, r; |1 m, u3.11 实验56
3 r+ x% j! v- x
. w! g( b1 Z- A6 D" m
7 F. h$ S( |+ c- c第 2 篇 静态分析高级技术篇
0 y0 Y; o& r$ @- h! e) k. R- p3 y5 h  Z4 y: H
第4章 x86 反汇编速成班 60' v1 |# R- }# y5 V

9 y2 S+ c) b4 I) {/ ]1 ^% v4.1 抽象层次601 X, {& G4 Q3 f5 E3 U) C
4.2 逆向工程627 x7 i2 K5 }; f4 j9 D
4.3 x86 体系结构62
4 |# o6 B$ c: T) \# A4 u( b* h& e4 i4.3.1 内存63
: H% ?# l. b) E- J, E; X4.3.2 指令64
; ~2 Z% l. H3 L( K, {, m* }4.3.3 操作码和字节序643 Y/ A% ^+ \, {' K& v  d% C, d/ l/ {
4.3.4 操作数65
4 K+ b6 C0 _$ S% r5 }6 |4.3.5 寄存器65
7 ], t) h. m7 X4.3.6 简单指令67
0 q- u8 X1 o9 C4.3.7 栈700 B* |) z: s; e/ ^/ d* a! h# n" j1 _
4.3.8 条件指令73
+ M8 D# I& k& D" l* p2 r# q) d4.3.9 分支指令73; {% N9 k. R* Z( U% O" p  k
4.3.10 重复指令74
2 h2 U, i( c' r" a$ h* y' B4.3.11 C 语言主函数和偏移76
7 }  S8 D  ]" z2 }* G# p$ f4.3.12 更多信息:Intel x86 Architecture Manual779 f0 a# X6 C& J  D4 l
4.4 小结786 c) k5 c1 W  P% u9 G& ?- n
+ X! y# N, m* n" ]$ T8 ?
第5章 IDA Pro 79
0 \/ |; I" f4 p1 n$ M  a- F6 Q1 [
' P  T" U3 u6 c& I! k1 B) ~  c5.1 加载一个可执行文件79/ E" k7 _; t" v  [, D
5.2 IDA Pro 接口819 ^* h! B% x# Z
5.2.1 反汇编窗口模式81$ P7 t6 d: q+ A6 L7 B
5.2.2 对分析有用的窗口83
. u# j) a5 M( b5.2.3 返回到默认视图83/ A! h) z; `5 w5 E- F2 ^, L8 C  v4 ^
5.2.4 导航IDA Pro 83- m) _3 \3 H/ p
5.2.5 搜索85* }8 Z8 P$ q% [6 w' ^- z% a
5.3 使用交叉引用86  [) X; E  k# b; W
5.3.1 代码交叉引用87
! Q; x3 [$ ^% I$ t$ M. b/ o3 x5.3.2 数据交叉引用888 c) e. [4 _1 j/ t9 A" x# V/ J8 P
5.4 分析函数88, o/ [8 N" E" g7 g' g- P5 _; }
5.5 使用图形选项89
5 s$ {# C+ M. U- D* W+ E5.6 增强反汇编91
6 o/ e/ r! K/ A5.6.1 重命名位置91* l# Q0 ~5 D& g, ]7 a1 u3 @
5.6.2 注释92
& Q$ N( P2 G3 T; Q3 v5.6.3 格式化操作数92; k9 k* w& r5 M( m, \/ A
5.6.4 使用命名的常量93
. W* |3 B# l7 J/ ]6 K, b/ h3 K5.6.5 重新定义代码和数据946 W: c: E& \- z6 V
5.7 用插件扩展IDA95
2 a# ~( G; v( A& r, f9 U; \5.7.1 使用IDC 脚本96+ X4 n3 x* ~& [. W6 R; B. m6 M$ K4 }
5.7.2 使用IDAPython97
$ A  E4 d3 h2 i' f1 _1 T9 v8 }5.7.3 使用商业插件97) W3 |3 N" `, R( w. m$ G
5.8 小结983 h# L6 F$ T9 k2 M/ s% Q
5.9 实验98
/ O7 `) v. [8 r3 ~1 A1 c) ^2 z' W- g( ~& }, |# {
第6章 识别汇编中的C代码结构 100
& a- q" R# j' k3 _

5 F- _1 u: {* ~# s/ w6.1 全局与局部变量101- |: ~' N! C* C' ^9 B- y
6.2 反汇编算术操作102
0 _% {( a8 V# Z+ O# r6 C6.3 识别if 语句104
9 i3 I' P- |+ S; h6.3.1 用IDA Pro 图形化分析函数105$ P6 \% E. _( |7 y) P
6.3.2 识别嵌套的if 语句106
0 w: M( l' P4 [1 Y8 r* S" t6 x$ F6.4 识别循环107
# r7 k# O- F# Y6.4.1 找到for 循环107
( x% a6 K8 c$ ?6.4.2 找到while 循环109- |0 e4 d! e9 D7 d* H& ]
6.5 理解函数调用约定1106 C2 m6 G+ @; `
6.5.1 cdecl110
: w# R9 ]' a* _$ l7 B( n8 D6.5.2 stdcall 111( p" f+ n) t" ?% T
6.5.3 fastcall 111
% F% d# u0 x1 H& L# O5 o  P0 N6.5.4 压栈与移动 111+ b( k4 Z* y9 |/ ?
6.6 分析switch 语句1129 ?  f# _5 E- ]' {% e; d) k9 r0 K
6.6.1 If 样式112
: d; X3 o0 t. r  K" b# l* R7 f& N6.6.2 跳转表114) T) {+ H7 f9 }, f
6.7 反汇编数组118
! Z* r8 \0 l) G0 h/ e5 A* ?6.8 识别结构体119& p( `; M1 F, `* r; s5 x/ z& W
6.9 分析链表遍历121
3 I" x( |3 D9 y0 c* B2 R6.10 小结1237 o7 K+ b( {; K/ x5 o
6.11 实验123: k6 T; p: X5 x+ X
2 c# m* a) t7 [2 p8 t
第7章 分析恶意Windows程序 126
& `2 T; k+ E( v, w, A

3 k! \' J3 k  I! Z- f# w7.1 Windows API126
! ~6 W, f* s4 y% @0 @5 e$ g7.1.1 类型和匈牙利表达法126! H4 r. v6 {" @" {  h
7.1.2 句柄127
- F' I( A; X) E" k; e8 n& `1 h7.1.3 文件系统函数127. p) C& o$ q& T/ d$ {0 |. D
7.1.4 特殊文件1280 b% v* M) _  c
7.2 Windows 注册表129
- ?9 N# L6 V( j& B" C7.2.1 注册表根键1304 {+ N( Q" W/ y# x& m
7.2.2 Regedit131
' W6 `+ T% Z3 D% D- _0 x7.2.3 自启动程序1313 }8 F2 C" j/ u, R8 h- M
7.2.4 常用注册表函数131
6 W3 N+ u, P% h8 \' O8 W& U3 C6 ], n7.2.5 练习分析注册表操作代码132
. F4 Q3 B3 C- l3 [; X1 n& ~5 |# h7 ?7.2.6 使用.reg 文件的注册表脚本133# |+ {* R" F7 u/ n9 e4 |
7.3 网络API133
6 A0 u  M( T/ s9 s7.3.1 伯克利兼容套接字134: W, L- X+ r* {4 B: I
7.3.2 网络的服务器和客户端134
/ ^9 C$ ]( _* F7.3.3 WinINet API 1355 }8 v# X, x0 P
7.4 跟踪恶意代码的运行136
) z% x# {3 s, s( M7 i7.4.1 DLL136
, c; C; D# W- @7.4.2 进程137
  `" q3 K- B4 i& @) U( w7.4.3 线程139. z: n5 H$ F, Z' c  }* l% E
7.4.4 使用互斥量的进程间协作142$ O9 N+ ^# o) Y: N
7.4.5 服务143
$ U1 X7 J9 z$ k0 T7 z+ r7.4.6 组件对象模型145
3 q. B: s9 G# @1 h0 i9 Q. [7.4.7 异常:当事情出错时147& n0 t8 e8 e% Y: U8 ?. L: b
7.5 内核与用户模式148" q! U  [0 b6 `6 g* h5 G$ J% F' ]
7.6 原生API149) m% I, h; @! N8 v8 B
7.7 小结151
! a7 D+ E; R$ [9 _! B' t4 p7.8 实验151
) s5 R5 ^0 m% l; ?" s% r
3 C  R0 M" V: d) o$ B: \; @% |# A7 h/ _# y5 c
第 3 篇 动态分析高级技术篇7 T' r$ j0 N4 ^7 n* X) w  ]

2 ], |) E1 U* T/ b3 T' u, u第8章 动态调试 154

: c; r' f7 I* l8 \& \' o: G3 [
8.1 源代码级与汇编级的调试器154
+ V/ b7 P9 X6 Y8.2 内核模式与用户模式调试155
# }9 r5 r. d0 d0 o. u8.3 使用调试器155" t: [) r7 u+ q& A) u
8.3.1 单步调试155
% d3 O' Z: p+ T% ]/ T+ m! ?& \6 s8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1564 o9 l, n0 g, {2 J1 p* p
8.3.3 用断点暂停执行1571 \& H$ v  |0 V
8.4 异常1619 _0 u, k: p0 e$ {) |# y1 n+ B3 }
8.4.1 首次和二次异常处理162
+ M: w% k  L% T3 }, }( @- V8 a8.4.2 常见异常162
( e' T/ i9 P# ]6 ^- ~8 u: P8.5 使用调试器修改可执行文件163
+ g3 ^  f  }5 v) [0 D8.6 修改可执行程序的实践163. f, G) ]9 B1 F. H' ^0 p( j1 E
8.7 小结164# a" A% p4 _: u. [. \, D9 I

9 L. x6 ?" J! g! }8 h( u' a第9 章 OllyDbg 165
0 q1 m  r$ s" H4 G7 Z7 T+ e
5 ?$ ?. I- l' R, S
9.1 加载恶意代码165
1 ?% K& _$ P7 \& s9 h8 V4 u9.1.1 打开一个可执行文件165
# u# K& H* o  ~9.1.2 附加调试器到一个运行程序166, Z6 G9 ]/ c. W4 r# G3 j6 s
9.2 OllyDbg 的接口167
, X5 P0 S6 w  E7 O, a9.3 内存映射168
& a2 }  ^& s* ~! o- n9.3.1 基地址重定位169
9 {( c$ W1 {) t/ @' g% b9.4 查看线程和堆栈1700 \" m5 y7 `  N$ x9 X
9.5 执行代码171
: q. O) T" F. v9 B5 N. X0 N9.6 断点172
" u" V8 `4 y; v% ^9.6.1 软件断点1730 _' A2 s& @3 V( e8 G
9.6.2 条件断点174
& _0 Z4 x. [; L9.6.3 硬件断点175$ k+ Z+ {; `3 u' R0 ~: u) W
9.6.4 内存断点175
/ z, F5 L1 Q1 t* g+ F7 O. v9.7 加载DLL1766 V9 Y. w7 n  K- |6 {  @
9.8 跟踪177
" k3 J; z' }7 T9 K9.8.1 标准回溯跟踪177
% n2 d# [4 b. L6 A; N9.8.2 堆栈调用跟踪1784 q+ Q- S7 b  i3 F" E
9.8.3 运行跟踪178' p6 X" `4 r$ F  U: c+ W
9.8.4 跟踪Poison Ivy178
* Z9 n5 d" K7 N8 Q5 o# a9.9 异常处理1794 U% F6 r& O8 n4 {8 a0 \
9.10 修补180
* y0 d" Z' q7 C9.11 分析shellcode1816 @: j$ F3 v: X9 X- U* Y; B
9.12 协助功能182  @) H0 n% M% {+ L8 ~
9.13 插件182
0 B9 E4 S( V* F7 T. i9.13.1 OllyDump1831 H+ ~2 a4 r: `( i0 w# j' T
9.13.2 调试器隐藏插件183
+ C7 ?6 ?  x. V& f1 f( H+ A9.13.3 命令行184/ z, T$ S7 R+ O
9.13.4 书签185: \3 a6 F& I4 a" L6 L6 u
9.14 脚本调试1852 g& I+ @" v- A9 z+ g5 J! i9 L( t
9.15 小结186& P1 B9 w$ k0 j" R* ?" x
9.16 实验187" m! z2 K' ]. ?3 A( y

8 B: j7 D5 W) P, T% p: x: |第10章 使用WinDbg 调试内核 189
7 b4 I2 c/ {; i: m& x9 ?$ x% U# Q9 k4 I/ r* i1 M! A
10.1 驱动与内核代码189
4 e8 }" b  M' u$ ^2 y7 f7 j10.2 安装内核调试191& H) W, @& y# I) O# U( M
10.3 使用WinDbg193
1 u2 l$ R, M+ p: w7 ^6 g2 s10.3.1 从内存中读取194
5 B6 Y" A4 R: d7 D' n, ?4 t10.3.2 使用算术操作符1946 h1 `6 M1 B& a" ]5 p
10.3.3 设置断点1942 K3 L! r$ j8 w& U! p
10.3.4 列举模块195. W9 P' t$ w9 @4 J- {  X1 C8 f
10.4 微软符号表195
) y! N( h; u9 p! E) o' |10.4.1 搜索符号195
0 t1 u$ S/ `- G; A% _10.4.2 查看结构信息1966 m# I4 d( o: \4 W; @# U5 B; h
10.4.3 配置Windows 符号表198" X4 V$ t4 a* `
10.5 内核调试实践1980 o5 S2 g" b8 h0 H" u6 T
10.5.1 用户空间的代码198
: S; T( y* d/ f- {0 {10.5.2 内核模式的代码200
& \, ?+ H7 k/ H* s0 m) x10.5.3 查找驱动对象203
( x, j6 E1 z7 ]3 p$ M10.6 Rootkit2044 S+ h& i$ i1 j: R+ i) O
10.6.1 Rootkit 分析实践205: `4 k" A/ H3 U  P( G& ?
10.6.2 中断208
. ^" F* S8 Y( T! i+ \" ]10.7 加载驱动209
8 v7 b8 `0 q( h  b7 M10.8 Windows Vista、Windows 7 和x64 版本的内核问题2092 V" ^# p5 q* }5 Q6 w% @, h, O
10.9 小结210
7 D- x  _; R: b1 J( r! D2 o  ~! _' ]. ~10.10 实验210$ c3 A% K8 s! {! C" i
1 {  @+ J) ]3 s( V% K

( J  p' A9 [& s9 b  n. _第 4 篇 恶意代码功能篇5 x5 w/ K" `" \) p" n0 d" a. Y8 x
+ v. D0 A6 k3 ]' D/ e7 @. W
第11章 恶意代码行为 214  V1 j( t6 D3 t) E4 R
: R) H, z/ F8 }* m2 t/ u
11.1 下载器和启动器214
; d. u) P8 s* s8 e6 G11.2 后门(backdoor)214- m0 p6 L" _. M, _# M" ]
11.2.1 反向shell215: z+ k1 e0 N# n& Q7 ]1 y+ m5 ?
11.2.2 远程控制工具216
* @8 U  ~7 I7 N% q- J7 {11.2.3 僵尸网络216( U  X0 B% o6 A/ p% @* f: \
11.2.4 远程控制工具与僵尸网络的比较2177 _7 N; z( x. V
11.3 登录凭证窃密器217( R) _4 O% m" K/ V/ c* Q9 I
11.3.1 GINA 拦截217! f1 W7 n3 s$ |! u6 I
11.3.2 口令哈希转储2187 e& I5 G, I6 U! }2 Y# l7 l5 U
11.3.3 击键记录221) O" G! D0 A" W- p$ \, w+ K* c
11.4 存活机制223) c0 J$ v. }5 \9 a3 p9 n: q
11.4.1 Windows 注册表2239 r. j6 e/ t/ g' W: _5 ]8 M
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
+ w( G6 s) h, Z1 e; w, A11.4.3 DLL 加载顺序劫持227
4 X1 u8 W+ K  \1 a2 @* h/ W11.5 提权228
! z6 Q9 {4 K# `0 f2 R" H4 G8 E, C11.5.1 使用SeDebugPrivilege228. k6 Z. \+ Q$ z/ D" P
11.6 隐藏它的踪迹——用户态的Rootkit229
" z/ g" @/ ?3 A11.6.1 IAT Hook 230/ E+ o5 ?/ `$ z9 A( W; |
11.6.2 Inline Hook 2312 ^: U9 c5 }- y* S$ R
11.7 小结232
' C( e. E7 P; E# s# C$ Y9 i11.8 实验232
  f  p7 J0 R  y5 L+ O- c, O$ J
/ ?0 L) ]( G- q( I: m第12章 隐蔽的恶意代码启动 2340 J) o# \; J3 b7 S
! [* y4 c# X9 T% s1 a/ n
12.1 启动器(Launcher)234  W# N% ]/ x! V6 h) ]
12.2 进程注入234) L8 s6 F+ H% |2 t0 M; Q- U
12.2.1 DLL 注入2351 G: u# z6 a9 V
12.2.2 直接注入237* O7 v: |! P7 M8 ?+ j0 I! f: }
12.3 进程替换238
  ?; H2 t; p+ I) A  d12.4 钩子(Hook)注入240
1 p2 F- T9 B( I% W" C0 h" W12.4.1 本地和远程钩子(Hook)240
: B* o' V+ ]; e2 ]7 {# c9 p12.4.2 使用钩子的击键记录器241
& b! p/ M, ]+ M12.4.3 使用SetWindowsHookEx 2413 J# I$ `1 y7 w8 ]+ |
12.4.4 目标线程241
# O: w. W* [0 l. ~7 u12.5 Detours 242/ T& |* }1 ?5 b: k7 K" T
12.6 APC 注入243+ f& t9 B  ^3 I9 N5 R  S: j' o
12.6.1 用户模式下APC 注入244
; @1 l# t& `7 p* o, r2 D& D12.6.2 内核模式的APC 注入245
9 c* k( Z+ P8 V3 C$ C0 i4 U, L/ H+ G' X12.7 小结246
% H& {. p. \% \' V12.8 实验246
) c: K. R0 q' M7 J
# X/ N- z' C* Z第13章 数据加密 248# r% |. j6 U) j* W0 X

8 U9 m! M0 L) o+ I& }13.1 分析加密算法的目的248
+ k- o. I( O; T, H13.2 简单的加密算法248
$ n) n( I. a2 O7 B" w1 c5 G13.2.1 凯撒密码2496 C2 [8 E6 b8 Z, H
13.2.2 XOR249
1 u6 c! E; O& O# W( K  E  n  R13.2.3 其他一些简单的加密策略254# f1 \9 G& D  b4 `- P8 s
13.2.4 Base642551 m* w  f6 J5 j1 S- a8 n) L0 J- I
13.3 常见的加密算法258! j/ V: D5 q9 t
13.3.1 识别字符串和导入2590 Z/ c& x6 u8 \! ?3 u% d
13.3.2 查找加密常量259: M  z' C+ e% s8 a# o6 E% R" V: R4 Z
13.3.3 查找高熵值内容2617 S0 n; A' a- h! ~4 {
13.4 自定义加密262& s3 U! m( o6 z4 z8 y' X
13.4.1 识别自定义加密263
5 @: ^9 ]3 B  w3 r8 K' P- Z13.4.2 攻击者使用自定义加密的优势265
3 i. ]2 ~1 g: H6 p! S  ?% A13.5 解密265
1 O7 \8 w" x$ A. {13.5.1 自解密265
/ j( ]% R& B' P( P1 o13.5.2 手动执行解密函数266
3 g$ v3 Y! x: L+ g# b5 v! |13.5.3 使用通用的解密规范2678 V6 x0 }9 F' D. o) K$ Q
13.6 小结270) L& ]% Q& k& W( J5 ^2 x2 {
13.7 实验271+ f1 f4 g% l9 b  G# {  C5 P: I
3 z0 v, m* u/ G8 |
第14章 恶意代码的网络特征273$ F% \* Y2 j6 y1 E) d

1 e5 J$ I+ E- u: }( H0 P14.1 网络应对措施2739 _) c9 ?) e7 H0 ~( {' _- C3 R! Q
14.1.1 在原始环境中观察恶意代码2736 L/ S( j, t4 k- `- b! y
14.1.2 恶意行为的痕迹274
1 \' \, J: K# s3 C- |14.1.3 OPSEC=操作安全性275$ Y) b9 F+ @; n+ s; p. ]- ?2 f
14.2 安全地调查在线攻击者275" N6 r' l8 H0 z3 F8 q
14.2.1 间接性策略275
# Y9 D9 ?  @. w# y$ A1 L14.2.2 获取IP 地址和域名信息276
0 v/ S' }6 }& X7 j( p* t14.3 基于内容的网络应对措施278
# @' f! x  Q$ i" U" h& T- i14.3.1 使用Snort 进行入侵检测278: f4 {% w2 p3 W0 e) ~$ @
14.3.2 深入观察279
3 U$ m6 I& B1 y6 `, g; \14.4 结合动态和静态分析技术2824 h8 S; ]( J+ M7 |( Z
14.4.1 过度分析的危险2839 d: O" Q" [5 i1 O
14.4.2 在众目睽睽下隐藏283) O1 e# D8 w1 S( \' O
14.4.3 理解周边代码286
5 ]/ t: t+ X* e' q14.4.4 寻找网络操作代码287
/ ^& b5 N5 y. Q) i8 a* p0 }14.4.5 了解网络内容的来源288& T; G) W& ?3 L$ w: U
14.4.6 硬编码数据 vs. 临时数据289
+ X( w" i' j( |, `' ]! |14.4.7 确定和利用编码步骤289
! A2 Q# V6 `) |( d. ]2 ?14.4.8 创建特征291, X' r* A8 ~% w% w& o" O, H
14.4.9 分析解析例程292
' o4 @  a; C. I$ [+ M14.4.10 针对多个元素294
' n& Q6 N# D8 [5 I; W7 u14.5 了解攻击者的意图295
) `* R5 l! B0 r/ S. p14.6 小结2963 k, a" w; j" J% H& l9 a
14.7 实验296' {6 H- b( f3 J
; ?7 @3 d) i& z1 M

8 g3 a4 W3 m& E) s第 5 篇 逆向工程
4 \6 F2 P7 {6 t0 U  J9 U9 S; p  @6 T7 B+ R8 i. K
第15章 对抗反汇编 300
" b- w) A" m. Z4 r, ]: L' [7 s
) }* Y5 y1 q; u- L15.1 何谓对抗反汇编技术300
1 H5 F! A4 I8 D  B" D15.2 挫败反汇编算法3018 n. }- @1 z, M; R' |* z
15.2.1 线性反汇编302: o( _; R" c8 S5 E6 ]3 |+ k
15.2.2 面向代码流的反汇编303- I! H  M) D$ d) S9 V8 ~
15.3 对抗反汇编技术306# w. U: F8 @/ ^7 |. L
15.3.1 相同目标的跳转指令306$ s, V# {7 c6 O  ~8 E" Y
15.3.2 固定条件的跳转指令307
, ]% }) Z+ u" I! v' b. I7 s15.3.3 无效的反汇编指令308
0 b0 [9 }" o9 n7 o( a0 K2 J3 e15.3.4 用IDA Pro 对指令进行NOP替换3115 y+ D$ `) |% i! `
15.4 混淆控制流图312
7 q2 y8 J2 }9 K% ?" c15.4.1 函数指针问题312
) [7 n( x$ h1 B* i" }5 V15.4.2 在IDA Pro 中添加代码的交叉引用313
! j( S6 L$ R( X3 f" s. Y15.4.3 滥用返回指针3139 l. L3 u8 L+ r! N: w' d# R! I
15.4.4 滥用结构化异常处理315
. u' U4 A" N9 w( J9 H15.5 挫败栈帧分析317
  z# q# j- ^) X8 T15.6 小结3209 x3 _2 u/ M$ W( E
15.7 实验3201 K1 E# D  f) e1 }# @

  |' x+ Q6 y7 G! R第16章 反调试技术322
' ]3 z# j, [7 {9 C  p1 C# M" J4 U2 v+ p: C+ \# L6 b
16.1 探测Windows 调试器322+ l% Q; [' x1 N" R% j/ S: u
16.1.1 使用Windows API322) r) I: N: X: O, P9 m9 Q
16.1.2 手动检测数据结构324
) H7 `0 s! P/ c! R! J7 {' Q16.1.3 系统痕迹检测326  e; u8 o. D( x; ^  A6 W' _: V
16.2 识别调试器的行为3278 X+ s$ ]- P& [; L+ j
16.2.1 INT 扫描327
! T; y" ^9 {7 N* ^% y2 m" F16.2.2 执行代码校验和检查328
) Y7 d) ?5 t7 D2 s2 v+ o- a8 f8 y# K16.2.3 时钟检测328% s, q) i! n" y  l) B: W" G3 F
16.3 干扰调试器的功能330, y/ ^2 @: U, H) r! o8 s$ b
16.3.1 使用TLS回调330
: y( E7 G% `) Q# R16.3.2 使用异常332
" E  X4 b( i9 M( L, y- ]& M. g8 f16.3.3 插入中断333
' G0 h: M! [, s% J: U16.4 调试器漏洞334
- t% f- \3 S! U2 J- O16.4.1 PE 头漏洞3342 Z4 S# v. y% {, M, T
16.4.2 OutputDebugString漏洞3367 R9 b6 V9 `2 ?* q4 C
16.5 小结336" k9 {; U/ {, d$ W/ \1 {& O
16.6 实验3364 q6 \6 O" G+ [3 w2 W5 b
) K& r! w( p3 \. f. g: Q
第17章 反虚拟机技术 338
) |. q$ K. o6 Y4 X, @5 Y1 [3 |- U) d# n; i
17.1 VMware 痕迹338$ L% l( ~! H3 {: Z
17.1.1 绕过VMware 痕迹的探测3403 b' v& `( k# \' b- d, z+ G' Y& X
17.1.2 探测内存痕迹342
4 C9 U' O/ Q# u+ y2 s$ B, r17.2 查找漏洞指令342
# S; t3 M# q7 `# a9 J# z17.2.1 使用Red Pill 反虚拟机技术343
6 w  f" O  W: J  D17.2.2 使用No Pill 技术3442 I0 ?9 m8 G, [# H- `* T; \
17.2.3 查询I/O 通信端口344; ]- _: j7 _- L8 J2 S4 L# g
17.2.4 使用str 指令345  U, d) n8 _; R, Q& p! ~' |
17.2.5 反虚拟机的x86 指令346
& a0 `2 @0 l  y5 e17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
; h! s* n8 V. Y17.2.7 使用ScoopyNG347* k( b  R: q' J
17.3 调整设置348
. r8 D8 K; q4 o8 x# h8 J+ d17.4 虚拟机逃逸349: F$ J" Q3 d4 r
17.5 小结349
! M: ^9 |1 _0 Z17.6 实验349( H$ e" M7 I4 ~* [! i% ^5 m: y' e
8 f4 e* m& e% a- Y- S2 F3 O* ]
第18章 加壳与脱壳 352
* }& q; E# V1 I$ o9 {
* ^! p2 s) G& a5 I18.1 剖析加壳352
4 ^& X2 ~$ b& g2 @  D5 d8 j1 t4 ^18.1.1 脱壳存根3534 i! k  F! c5 l
18.1.2 加载可执行文件353
( b5 t0 W8 x9 p1 n18.1.3 解析导入函数表353$ d6 O+ o8 H7 c% v5 l
18.1.4 尾部跳转354
  B1 D3 h  Y3 {+ M4 o/ W18.1.5 图示脱壳过程354
" ]$ u# E3 _! z8 @6 m18.2 识别加壳程序355
) e& G- B0 z$ ^# f8 V3 {18.2.1 加壳程序的标识355
, r% x% a1 c# C$ ^* x/ w18.2.2 熵计算356, T- u$ d& ~8 l8 D3 a. D, N9 t
18.3 脱壳选项356
- L4 H& `7 n- E18.4 自动脱壳3564 [& L# u- |  r
18.5 手动脱壳357
& t3 t: \  e4 U5 d; |- x* \18.5.1 使用导入重构器重构导入表358' V- X; M* E& c2 U" H# T, C
18.5.2 查找OEP359" h0 T/ L' D8 c* \' F5 p# O
18.5.3 手动修复导入表363$ Y8 X9 l2 U, I1 l, E. b
18.6 常见壳的技巧与窍门364" {% [( W! c" Z; m9 d
18.6.1 UPX 364
2 A3 V, e1 P, X3 T6 R18.6.2 PECompact 365
& z+ @# i9 p: _5 f( Q2 y; M7 O' |18.6.3 ASPack365- P# s8 F" U  c0 }
18.6.4 Petite 3654 u6 |6 ^% @1 p1 s/ q& i. m) h
18.6.5 WinUpack 3660 _3 [+ F. w: w) }8 r- S
18.6.6 Themida367/ n% P# f  c3 O5 N7 H- N  h
18.7 不完全脱壳情况下的分析368( a$ ^% C' F8 r; {
18.8 加壳DLL 368# r7 f* z+ V7 e- V2 X+ b
18.9 小结369
5 z3 s4 ^1 r7 I0 H, L1 H; r4 o7 k18.10 实验369
9 B. H# ~# S- x8 w0 Y5 {) R6 q5 ~1 U  X% l8 _6 Q, Z

1 P  b# p: ]$ h' w第 6 篇 高级专题
0 j7 F# E" X* [: R& w9 V$ t, o5 f, Q3 s3 R: ~
第19章 shellcode 分析 372
  b  Y2 I5 \9 j5 j! T# I1 H) G1 q2 \
19.1 加载shellcode 进行分析372
& w$ x- N9 o  Z, \. E- J19.2 位置无关代码3737 M$ l8 \, M  c/ C+ f% z" \
19.3 识别执行位置3734 G& i6 S1 q+ }
19.3.1 使用call/pop 指令374# F; I4 x$ M% b1 l
19.3.2 使用fnstenv 指令376' r+ O, ~; a! c7 x1 h% S; n
19.4 手动符号解析3775 ?2 c2 X5 @) {2 A' R
19.4.1 在内存中找到kernel32.dll378+ G( ~) k' [' Z# O, k# o
19.4.2 解析PE 文件导出数据3805 \: g- I$ t5 c7 f" {* u
19.4.3 使用散列过的导出符号名382
# V. h$ a/ q( n2 j5 B9 v) N, ?$ `2 E19.5 一个完整的Hello World 例子383
, a: S7 t4 D' M0 k# \19.6 shellcode 编码385
; \2 {" z' j: p3 W% J" P3 @/ U19.7 空指令雪橇387
) e) T! J/ W. D0 r" r9 n  o19.8 找到shellcode387
5 }3 X6 U% s; B+ r19.9 小结388
3 T2 X4 I# X( K0 m% ]; d$ I9 N19.10 实验389
8 m- H* f2 Y+ }" b( y/ w! T, }. d! C/ u; l3 }
第20章 C++代码分析 391
, s) b7 T5 M- x# b  e* r' b  W
( ]! L8 f. h+ o# s$ z20.1 面向对象的编程语言391) W7 C" C: W2 w
20.1.1 this 指针3924 K8 y# t2 S. [) f0 u
20.1.2 重载与修饰3946 }9 `1 C+ I2 F" x% Q- c
20.1.3 继承(Inheritance)和函数重写(Overriding)3954 O% n2 f' N& x) j, x
20.2 虚函数和非虚函数396
# E+ L1 k( E3 d$ N6 `) D0 L# w0 ^20.2.1 虚函数表的使用398
2 A/ ?8 `" [: }1 |7 K5 D# \20.2.2 识别虚函数表399
  d9 ~, ^* x) [- p7 I+ G20.3 创建和销毁对象400- g8 ~% b- V  R% X2 @1 ]. D" i
20.4 小结401" ?% F% P% j' j3 Q# d' Y
20.5 实验401
1 x) d2 x( j! J4 J4 ~  K' x  k! I4 q& J" l! _
第21章 64 位恶意代码 4039 N4 E; [/ S' z$ V+ H; A/ S
# F; I+ ]- n( N+ W3 C
21.1 为什么需要64 位恶意代码4031 I4 Q& [5 f7 |) h
21.2 x64 架构上的差别4045 V9 Y4 V5 B: S: I- t* y3 C
21.2.1 x64 调用约定和栈使用上的差别406
0 h, \0 `* l& c1 B5 U21.2.2 64 位异常处理408
4 Z- r5 G, I( D* D2 s21.3 在Windows 64 位上的Windows 32 位408) J3 r2 x  H" O, V. A% [$ i( K
21.4 恶意代码功能上的64位提示409
1 D# [0 b1 P+ Q0 E/ j- V6 W9 t21.5 小结4108 }- E/ w( `5 S
21.6 实验410
$ \8 F2 e# P  Y
  ?9 h: S6 M/ ?% N8 t% [9 n8 ~附录A 常见Windows 函数列表 412
1 F8 W" W4 q, l4 ]/ @6 s3 s% v3 \7 q* r) c. H0 x; V
附录B 流行的恶意代码分析工具列表4243 k- U+ f- ~0 c9 g# X

7 P1 g8 a1 `1 \; L8 r: [  v附录C 实验作业参考解答435
4 V4 |6 q& R; B+ |) J$ z: C, @  z1 b
附录D 致青春,基础软件开发的中国故事 6910 T, D5 x$ S2 T# O

1 r+ W, G8 q9 p2 h! c附录E Syser 操作入门 6954 g  G* [3 I' Q- `$ K' `
3 n3 I- x8 _: J, W, K& d- _

0 ?. z9 m& }- E# Y; n' r1 ~
想知道小甲鱼最近在做啥?请访问 -> 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
8 }- r2 }1 Z9 B& D* C+ U, n9 H9 s* x什么编程语音写的?
# Q3 R3 J) B4 Y6 s; Q
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 12:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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