鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

" N; [2 `0 Q4 U/ @/ t* Q% a; a7 x1 ]" O8 Y) C: i
书名:《恶意代码分析实战》
1 P, Y- j- k/ u6 E' C+ B作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)/ v0 C3 X4 \6 B1 p9 b
译者:诸葛建伟,姜辉,张光凯
, {# H( Q+ ~9 v1 |' w, [" a7 u出版社:电子工业出版社
! E0 A/ J  F2 \* X出版年:2014年4月1日(第1版)9 e6 m$ a- [2 m+ H7 q, k6 @, Q
定价:128.00元
" G% {( |) [8 C* U& n  ?装帧:平装7 O7 Q$ @, M( d$ W9 F4 M& x/ K$ K
ISBN:9787121224683& U2 k, W1 M2 O+ J+ n9 l* p: `4 v1 U

" I; F3 x8 [$ ^+ ]$ s% |0 }0 |购买链接:% t) k. V) C0 N
* T. j3 F4 l) Q2 u2 O" J. A

8 O  }& W; p" g$ }! m
亚马逊 -> 传送门
0 {6 {! M1 x5 }# L6 B3 P; k) J5 l  ]
当当网 -> 传送门
$ e0 l3 ?; ^6 [0 f0 `  e1 Y
1 s, T1 s. m" d" q0 c4 Z7 @7 b京东 -> 传送门9 z: R( s' V8 ^5 x) C
3 C# c1 ?' q6 Q6 l/ Q5 z5 m
天猫 -> 传送门* e' T$ U! @' {
. x, D5 \  B0 y  _7 |
  a; G2 B. \2 `9 x) P. Q5 _
内容简介:
! T6 j+ [8 @/ W) o; f
" F9 u2 K8 f' o$ ^9 h% q
1 Q$ H3 ]  g: P; c
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
. @; s0 H7 s4 f) ~6 d6 Y
$ {9 G4 U) U: y0 [* u3 K《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
/ P$ y$ H. t6 S- P! Q$ E
5 x  H) L( w, j, Z# x: {针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
- H# Q3 i- N9 d' \针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。! T# \1 O3 L! u- z, l; D) h

& w4 T+ N# K9 r8 W1 }6 g目录:
; d/ s# R6 \/ `8 Q; K1 Y
/ V! O$ U0 Y! F* M+ Y
8 J; l/ H$ Y+ M7 _$ z) h1 L
第0章 恶意代码分析技术入门1/ f2 ~) w* ~5 r2 v& K+ p) G5 h

) Z# z5 h: f% G0 G" _( G( t2 \9 Z0.1 恶意代码分析目标1
0 V4 W3 O+ a+ U$ k, f- @0.2 恶意代码分析技术29 t0 J( c5 E, }7 S+ w
0.2.1 静态分析基础技术2
0 p6 N  b4 V! v% \; K9 E0.2.2 动态分析基础技术2  H. X# d! W0 o: v0 B8 ]
0.2.3 静态分析高级技术2
3 m' M8 }* V/ M! c. j7 y0.2.4 动态分析高级技术2
# a2 A5 M8 u& e8 Q0.3 恶意代码类型3
* C! B7 r; g3 H' O8 S9 q0.4 恶意代码分析通用规则4
  S$ J' F! L1 g
- t7 t' a# H/ Q6 f! Z5 K
0 I# C/ y( z" x" x% Y; _; C0 ^9 |第 1 篇 静态分析' _' |% A" |& \) V) M, H: R
9 D* c& C' q# Z0 x
第1章 静态分析基础技术 6
; x3 N, l+ W- g$ z  {# n( _0 s

0 r8 m  {* D  U8 F' {1.1 反病毒引擎扫描:实用的第一步6
8 w& u' T: D, U: n6 y" V1.2 哈希值:恶意代码的指纹7
- B( z' X9 ^' _- l. B' Z1.3 查找字符串7& @1 M4 {0 A7 t  y8 t% y
1.4 加壳与混淆恶意代码9
$ G' J+ N6 Z; B+ d: `" e1.4.1 文件加壳10  C7 x; a" M3 z) ~- k) f* N
1.4.2 使用PEiD 检测加壳10
. v, o& z& s# R0 y1.5 PE 文件格式11
/ R. p( R. \" N) e1.6 链接库与函数12
& Y3 J' y/ J: I7 I& ^! C1.6.1 静态链接、运行时链接与动态链接12
1 K* [0 @! k; n1.6.2 使用Dependency Walker 工具探索动态链接函数13. E2 e, T* f% \) m+ G' D9 k
1.6.3 导入函数14# `/ G( `0 D( U$ j
1.6.4 导出函数15/ ~! r$ u/ U2 X5 R- T+ Q( M' q
1.7 静态分析技术实践15
/ Y& l% ^5 E! I1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15/ @1 _1 W! V& ?/ k. B/ e
1.7.2 PackedProgram.exe:穷途末路18
. r3 C0 `0 i9 O1.8 PE 文件头与分节18# j& b# a4 ~/ ^( m( D" K! L
1.8.1 使用PEview 来分析PE 文件197 x3 ~8 [. C' m# E, t& ?
1.8.2 使用Resource Hacker 工具来查看资源节228 x! X/ }$ {" x* C5 n8 a
1.8.3 使用其他的PE 文件工具23
$ k) T( q; u& _0 \$ W3 W1.8.4 PE 文件头概述23. P7 c. k' w8 @, u# G
1.9 小结24% S4 G  Y, B9 c6 b( o
1.10 实验24: \/ y0 E; r1 u

% o* ~9 Q- L8 R第2章 在虚拟机中分析恶意代码 27- I6 U3 ~3 @) d+ Y

7 f0 l! N6 M1 u3 G$ [( D2.1 虚拟机的结构27
) ~  P/ n/ t' l  \2.2 创建恶意代码分析机28' s( n% T' U# I- Z, e
2.2.1 配置VMware296 g. A$ j3 N2 v+ d( j
2.2.2 断开网络308 q; X6 f5 r8 |  ~
2.2.3 创建主机模式网络30
; D6 g" E9 y% ]: N2.2.4 使用多个虚拟机30
/ J6 D# M- I, s, J: o/ G/ C; L2.3 使用恶意代码分析机31
6 b; z3 q' ^8 H' `5 d6 Z2.3.1 让恶意代码连接互联网31
* ~! D7 Q* n. W3 Z2.3.2 连接和断开外围设备32- V& m* Q! E; j) T: T* {& }! b! ^
2.3.3 拍摄快照32( ?9 O4 r- l5 E. h; S
2.3.4 从虚拟机传输文件330 X0 Z5 D3 ]$ T5 T
2.4 使用VMware 进行恶意代码分析的风险347 _: @7 J1 O& V
2.5 记录/重放:重复计算机运行轨迹341 A7 T/ n% }& i/ R- Q' D2 n
2.6 小结35; o, j: U( d' a5 _& r' D
& Y+ V$ v) d/ U6 P& N' U
第3章 动态分析基础技术 36

$ ~9 W7 A6 |! K0 k! V- R6 Y, _$ G1 T/ a4 Z+ H& u/ K
3.1 沙箱:简便但粗糙的方法36
8 R+ m7 E+ t$ e2 ?3.1.1 使用恶意代码沙箱36
4 O  i7 ~& q' t2 V- ]4 T. J5 L# c3.1.2 沙箱的缺点37
1 C1 q+ x) G; Q4 L5 M3.2 运行恶意代码38
/ \9 s" I% a$ k0 a# P, q. ^3.3 进程监视器394 y+ {9 q( g' Y6 i8 P) w. _' L
3.3.1 进程监视器的显示40
$ E0 B$ [7 y; X4 x! p$ i- Z- b9 U3.3.2 进程监视器中的过滤41
" \' h6 f; ?, M* T" v3.4 使用进程浏览器(Process Explorer)来查看进程43- v( U# D' \: q* D5 s5 ?
3.4.1 进程浏览器的显示43! N# Y3 R: D1 t( `
3.4.2 使用验证选项44
2 _- v& s; a3 c8 {4 D/ |3.4.3 比较字符串45) ^0 t" O9 k. N  Q8 T
3.4.4 使用依赖遍历器(Dependency Walker)45* f2 t7 L& m8 s, X* ?! s, `
3.4.5 分析恶意文档46
. e! Y2 p/ a7 E6 {& V* {5 H3.5 使用Regshot 来比较注册表快照46& m$ K7 k7 N9 }6 ]
3.6 模拟网络47! Z. w5 s5 K( B8 Q  z4 T1 c; e
3.6.1 使用ApateDNS47
0 X" K/ `3 t9 L; W3.6.2 使用Netcat 进行监视48! n+ A+ a6 z. n% D2 Q2 H" s1 j
3.7 使用Wireshark 进行数据包监听49
- `  y9 s9 `$ T0 _) A( Z' O2 n3.8 使用INetSim51  T1 X  V+ C2 z! }- j! l
3.9 基础动态分析工具实践524 K& B( R% i5 ?$ `, t
3.10 小结55
$ w% r9 s: i8 \3.11 实验56: e, `% K7 ?7 e0 O; \) f* _

9 I8 k5 Q  `, ]5 _% y# W; s# |& k& q0 a  s! [, d1 Y- i% m
第 2 篇 静态分析高级技术篇6 c! f/ y$ ?; n9 \8 Z- f
9 \8 j" [, B. w: ?) J1 ^9 a* I
第4章 x86 反汇编速成班 60
' ]6 O0 p8 L$ @4 d' m' O3 d+ H& u7 k1 }! C- N# L1 v0 \; x6 a
4.1 抽象层次60) h& K8 T5 g: r5 G$ e2 ]/ h
4.2 逆向工程622 A4 ?1 h/ g" }2 p! f# Z
4.3 x86 体系结构62
7 o) f8 u4 k% ~0 \# C4.3.1 内存63
% B0 s6 P2 M( T% q! e4.3.2 指令64
% Y4 B( b9 G: T/ C4.3.3 操作码和字节序64
/ r- x2 b0 r/ t4.3.4 操作数656 k4 u2 A. W$ X
4.3.5 寄存器65
& K4 R; D3 k- P  e4 e" a* B# R: F4.3.6 简单指令673 D% ~8 T9 T" C. G2 @
4.3.7 栈70
' J& v/ d3 G# n+ t5 r  }% _7 w" c4 U4.3.8 条件指令73# Y' _0 m1 B2 A7 Q, P: o
4.3.9 分支指令73
( u" `; k0 V; [3 s' Q) z4.3.10 重复指令745 d8 G  a" \1 n
4.3.11 C 语言主函数和偏移76
' a* t4 f) K9 {3 y: K- I6 a7 S4.3.12 更多信息:Intel x86 Architecture Manual771 m) h* F( C4 T% Q1 C; q! Y! C' \
4.4 小结78% V; ]: ^9 x6 L  u3 V  B; T* G
3 z; ^1 Z' B; o1 V7 e' _
第5章 IDA Pro 79; {0 s" W: P+ K  C$ J
$ v0 R7 p. b0 `
5.1 加载一个可执行文件79% h$ ~* ?; L, d; a) X$ @% u
5.2 IDA Pro 接口81
9 K  o8 D' a' q+ o* p/ d# n5 j7 ]5.2.1 反汇编窗口模式81
# }* Z( K. F7 @8 ~5.2.2 对分析有用的窗口83
7 w  b$ T2 m7 l) x- n5.2.3 返回到默认视图83
' n1 H- r( T7 m* E6 s: K6 _: s5.2.4 导航IDA Pro 83+ @8 C: b) \5 ]
5.2.5 搜索85
7 ^5 f6 x% V: W7 A  V5.3 使用交叉引用86
- B1 a" `  ~( f/ U5 d& ^8 @5.3.1 代码交叉引用87, N- Q/ \/ e% {+ V7 O9 }
5.3.2 数据交叉引用88
2 m( G* m, y$ [5.4 分析函数88
4 _8 \- U) Q+ g5.5 使用图形选项89( u  j+ m- E4 k' v0 S* p
5.6 增强反汇编91+ Y; g6 _& ~+ G
5.6.1 重命名位置91
' G$ M( D5 u0 K& O" ~$ Y/ e2 b. `5.6.2 注释92; }' i& T$ }# F. ~! L2 r3 U4 t. w
5.6.3 格式化操作数92/ V1 h7 ?1 [9 k4 ?' Q
5.6.4 使用命名的常量93) O) t* T4 Z; _: T* A; H
5.6.5 重新定义代码和数据94# r/ c2 \" [! ~( \, B  R+ K8 Z
5.7 用插件扩展IDA95
5 P* @) f( x3 s  ^  i5.7.1 使用IDC 脚本963 A/ `" S' @6 h% _3 Z1 N' F; U
5.7.2 使用IDAPython97. e. u% N6 z3 a7 Q
5.7.3 使用商业插件97
. {- C& j$ E" u5.8 小结98& x7 ~8 `2 G* a
5.9 实验984 G# r  g7 V3 m5 ^: k' }9 r
, L- A9 z/ _: x
第6章 识别汇编中的C代码结构 100

+ s8 `2 [& _2 F' q+ K, x2 K# J9 H6 \* L& y
6.1 全局与局部变量101
, I8 [( t8 d) p6.2 反汇编算术操作102, ~+ B7 D& G. ]- Z. T) M
6.3 识别if 语句104
3 h' W* K6 g. L! _6 L: [6.3.1 用IDA Pro 图形化分析函数105
% o1 ?  R7 f/ b8 O' y+ n3 T/ W6.3.2 识别嵌套的if 语句106
3 u( I( O+ I& e2 E6.4 识别循环107
- p0 N+ ]7 W! s, h  P' o+ S6.4.1 找到for 循环107
0 o( s9 y* \+ e1 r1 e% [6.4.2 找到while 循环109
: V% q6 ?: |" P9 P5 j/ I6.5 理解函数调用约定110
5 ?$ M% J( T8 }. m" K+ p# |6.5.1 cdecl110. M. f# ~. K! G( ^5 J
6.5.2 stdcall 111( ~# O. F! `, s! S) l
6.5.3 fastcall 111* k& t; [/ J! x- {0 O& w
6.5.4 压栈与移动 111+ k! `6 ?5 w& v$ Q
6.6 分析switch 语句112& E* Z: Z) h& b9 C& n- j: L
6.6.1 If 样式112
. x7 B* V8 |& }4 N. b7 U/ ]$ U6.6.2 跳转表114
% L. D& Z. S. F; K/ o  p6.7 反汇编数组118: _# c  W5 e2 ^& ]4 e. c+ E3 ]
6.8 识别结构体119
( x  H2 b: f# i; K2 f$ c3 @$ M6 X' N6.9 分析链表遍历121/ F: a' V0 b" O
6.10 小结123
: j. k+ c- \, r  c6 o8 o6.11 实验1237 A- `: t# R0 G! A. [6 n& s$ Q

, y- S2 w3 F! |. a  S* y$ J; g6 U第7章 分析恶意Windows程序 126
0 o* f4 @/ s$ Q
8 `% h  }! ?+ q% s
7.1 Windows API126/ b4 {" J2 v& x/ y6 s
7.1.1 类型和匈牙利表达法126# `1 f% T  G" i) ~) p" I# t
7.1.2 句柄127$ ]6 o8 C& s" \0 i% G! O
7.1.3 文件系统函数127" N2 Y# _1 s: \( N& m
7.1.4 特殊文件128, D' ^) F) ?) Y& c
7.2 Windows 注册表129+ k9 A/ t0 W, K; k3 L+ ~
7.2.1 注册表根键130
1 N& L: W' ^4 p& B( |7.2.2 Regedit131
. k- l9 M+ B- W; m7.2.3 自启动程序131
4 D# p" t/ F" {1 {2 A% T7.2.4 常用注册表函数1318 {6 r/ V6 D3 `8 t) J1 j
7.2.5 练习分析注册表操作代码132
5 Y9 u& }$ \2 v" |  a7 F9 X7.2.6 使用.reg 文件的注册表脚本133
! v) [3 ~, e6 D& c/ S% ?( u9 U7.3 网络API1332 Q4 v9 c4 X4 x' k) [( i$ i
7.3.1 伯克利兼容套接字134$ Z& v. l( ^8 ^) H  {; l' Z* j
7.3.2 网络的服务器和客户端1343 Y. V  }! q2 g4 f* d4 }
7.3.3 WinINet API 135
; u9 {' ]1 u( M0 K  Z. @4 C5 y7.4 跟踪恶意代码的运行136( Z7 Z. y* |0 ]
7.4.1 DLL136' j- G% P0 J- F0 |( A4 _) h
7.4.2 进程137
" {7 e# r+ x* p" C6 d! N/ d/ |7.4.3 线程139
9 C4 h0 @+ _2 d7.4.4 使用互斥量的进程间协作1423 k3 v1 a& k2 q) d
7.4.5 服务143' ~7 U# Z  W/ w, D
7.4.6 组件对象模型145: b6 z3 I) y0 b
7.4.7 异常:当事情出错时1474 `& L; y$ D- O/ C6 K
7.5 内核与用户模式148: X- p% {9 t7 |7 M2 z  ?8 ~
7.6 原生API149
+ p! X& ]. c* A0 I5 }$ ?7.7 小结151
" }. d  g; m. ~: D: m! H, U/ H7.8 实验151" k# b4 N6 J2 T0 M' P( u1 F6 Z
. k9 i% q4 Y5 }: t
( C. ~$ T6 V! r7 y* S
第 3 篇 动态分析高级技术篇. B) U9 A  o9 Y! x

$ h# ^' J& L2 I8 M0 _; X' }1 U第8章 动态调试 154
4 `+ [; A; v( O

- d* M6 c" B! o( c, v$ k9 [8.1 源代码级与汇编级的调试器154
4 f7 A  c! V4 N1 E5 |/ P8.2 内核模式与用户模式调试155
1 }/ h6 K: _( K# l8 R8.3 使用调试器155- h' {6 K# y- o  v8 [/ l
8.3.1 单步调试155
1 T( U3 d3 c2 G. H0 k/ ^6 Q3 p- |: U8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1568 o& K8 ~) i' |. R9 ~, b
8.3.3 用断点暂停执行157
! s" c' n7 M8 I# z3 x8.4 异常161
; y* k3 D! ~6 b# n; b8.4.1 首次和二次异常处理1625 G" ]  [1 b" h8 ^) d# Q# O
8.4.2 常见异常162
# G$ Z+ k- z" @. i8.5 使用调试器修改可执行文件163
% f+ I/ G; R$ h( i8.6 修改可执行程序的实践1636 ]* m( K; l6 ^( }7 b  k
8.7 小结1644 M+ d2 E" n3 \) s
+ G( a. z! r/ V% z
第9 章 OllyDbg 165

# z7 U5 e% ?/ R/ k% C
7 `2 i) [! t9 G5 N% `# ?6 r* }9.1 加载恶意代码1656 Q4 g  y$ ^! Q6 Q# D
9.1.1 打开一个可执行文件165. i; R0 `! s! n
9.1.2 附加调试器到一个运行程序166
* Y2 O( m- z! Z0 |/ ?1 C9.2 OllyDbg 的接口167
$ X' v2 R: C5 t# d" X- F0 C) `9.3 内存映射168
) R7 y, o* J( O4 U% ?5 N9.3.1 基地址重定位169: ~# S  a" n. J, H2 Q
9.4 查看线程和堆栈170- @3 ?7 [( }" R6 g
9.5 执行代码171* V2 K8 ?1 h8 p9 r
9.6 断点172
3 s/ n5 S3 t3 u2 R) w9.6.1 软件断点173/ ^4 l) J% s% S1 w, N
9.6.2 条件断点174; z8 Z. A& a% g, a
9.6.3 硬件断点175
" a6 ]: s) A/ }3 m9.6.4 内存断点175" Q( P5 E3 j' R# b/ D3 v7 ]: i( d
9.7 加载DLL176
9 P. |4 P$ ?0 b% ^' N2 O8 U9.8 跟踪177
7 {! K2 @4 }- {  p/ n9.8.1 标准回溯跟踪177+ J$ G1 t# e6 q- h& [
9.8.2 堆栈调用跟踪178
% W* {' I, S, q4 t( C8 q9.8.3 运行跟踪178$ G( P6 F6 @& \
9.8.4 跟踪Poison Ivy178* o9 ]. I- [. c9 {5 O* d
9.9 异常处理1798 M' D* e, D2 ~% D' Z! s
9.10 修补180
& D6 C& t% R* c8 A$ Q2 ?2 R( p* `( e5 N9.11 分析shellcode181  Q; |/ r: z7 S* N5 b) v& a3 {% l( B
9.12 协助功能182
3 J, t4 j. [2 `2 r! i* ^! \9.13 插件1821 |6 }7 \$ [( o) r$ U5 t0 E0 p
9.13.1 OllyDump183
, x! y. C, A  N, l% B4 o! N9.13.2 调试器隐藏插件183
0 }; W9 I+ B. n( D  Q2 z5 b! r7 H9.13.3 命令行184, ^( h! n# o2 y" s9 x) T$ G
9.13.4 书签185
6 r& w; Z& h( R9.14 脚本调试185
3 ?# J9 Q) Z( h: Q, c9 a9.15 小结1867 m: [+ ]8 N, s6 D7 Q6 [
9.16 实验187! _' ~; R; b5 e4 Z$ Y

# U5 z- M0 t; k/ Q, D" u: d第10章 使用WinDbg 调试内核 189" E* Y+ z- x3 O4 i3 o! ~

+ z9 X2 ~$ C% ?: z6 G' ]+ J: E10.1 驱动与内核代码189* q: R9 |' v; I+ u
10.2 安装内核调试191& G! [. i) J/ s2 G( D
10.3 使用WinDbg193
) `" R' @6 {! ?5 z3 }! V10.3.1 从内存中读取1945 J, h8 g! g$ O0 D6 l
10.3.2 使用算术操作符194
6 ?- C: `" d. O. |) D& H10.3.3 设置断点194
3 J3 O3 m$ A" P10.3.4 列举模块195
( f% {' c1 Z( n5 W. ~2 A# t/ G0 |% c' `10.4 微软符号表1957 m# [/ S4 s9 R7 z
10.4.1 搜索符号195; l# {& o- `# a# D
10.4.2 查看结构信息196
7 ^- q9 t# K& V; s4 h10.4.3 配置Windows 符号表198
- i6 w1 h/ |' A0 W+ ^, a7 K" G' Z10.5 内核调试实践198
* }$ p: L( X! m10.5.1 用户空间的代码1983 i0 v: `4 B/ _2 S$ r
10.5.2 内核模式的代码2005 A0 [# L5 i. O
10.5.3 查找驱动对象203
8 u+ Z# d/ H9 y/ [1 g10.6 Rootkit204
' c# ~+ W9 F* p! Y0 _/ _" a* D10.6.1 Rootkit 分析实践205. V$ p& P: f% _
10.6.2 中断208
$ S+ h- ]- M) S  ~. N9 k10.7 加载驱动209
  K- w2 H- a. A10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
/ y* o& M& y$ ?  T% b2 R9 }10.9 小结2108 W- V- T* ~7 C( a$ V
10.10 实验210
0 N( G# ^' ?4 m8 ?( F  w# r" Q0 x+ [9 O3 n
: U3 A/ {/ y1 E: p2 j5 n
第 4 篇 恶意代码功能篇
! k% o8 K1 y* Q, ?8 m& x2 Y
! a2 u6 c  G3 I+ k第11章 恶意代码行为 214
/ ^/ l5 L9 ^: U; [* o/ O" f4 J9 G
11.1 下载器和启动器214
. H# |& ]" p( ?9 H11.2 后门(backdoor)214" L8 d4 N8 S" y5 {
11.2.1 反向shell215
0 @5 F/ b: C: j11.2.2 远程控制工具216
# ~0 l+ k" r1 g( W11.2.3 僵尸网络216' @7 ?/ N6 [# U2 N) c! J
11.2.4 远程控制工具与僵尸网络的比较217( S1 ]4 t: X. e, J2 z
11.3 登录凭证窃密器217* P: h5 Y1 c4 ?+ f! X4 }" }
11.3.1 GINA 拦截217
: q* k/ T. j1 W. v% h11.3.2 口令哈希转储218$ q6 t$ p) O8 _2 J/ R+ H5 D
11.3.3 击键记录221
4 n! R2 ]; i; G! U11.4 存活机制223
$ Q1 S1 }* W- F  c5 v2 n0 i- G. K' Y. y11.4.1 Windows 注册表223* o* Z6 G9 ?, V) }
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225. y4 L  @& m% v/ `  T" F6 o5 c; A
11.4.3 DLL 加载顺序劫持227
, `/ K1 F3 g4 D5 s5 ]11.5 提权228
6 u/ F; e0 b5 h- U3 H+ j11.5.1 使用SeDebugPrivilege228# y0 E5 e9 {2 Q
11.6 隐藏它的踪迹——用户态的Rootkit229
) z! s1 V' h# b! ?11.6.1 IAT Hook 230% u1 o) L" y. \. |$ r; P: o7 z
11.6.2 Inline Hook 231
+ N8 u2 a9 |- u9 Q8 L8 @2 ~11.7 小结2321 w5 Y' R# F- O: K
11.8 实验2322 ^, M/ U0 x1 K) D% F

" [- M0 ?; f4 C. t& J) S第12章 隐蔽的恶意代码启动 234
6 N1 |2 }" S7 T" l  D  s6 n" v
5 |; [7 S! Z6 A: r& l! `) W12.1 启动器(Launcher)2340 J9 `! u3 g! r3 F
12.2 进程注入234; R7 o4 K& Z" a5 T& ~
12.2.1 DLL 注入235
; i4 s7 J5 S9 Z12.2.2 直接注入237
. m4 u* y: k, v( @# k7 f12.3 进程替换238
5 `7 v4 }! b& m& ~( n! }12.4 钩子(Hook)注入2403 @& c5 w, B( k( _3 C8 n( G
12.4.1 本地和远程钩子(Hook)240
) q( X# o" J6 T5 O; y! |12.4.2 使用钩子的击键记录器241
0 X* @) q9 G+ b7 @0 ?% N8 ?7 x12.4.3 使用SetWindowsHookEx 241
6 e5 ~. `3 H/ \, f1 ~12.4.4 目标线程2416 U1 J7 L1 V+ O7 C0 C
12.5 Detours 2423 P) H, D' u% L' {2 y" x
12.6 APC 注入243
& _* _' m3 U  x) q# D3 t12.6.1 用户模式下APC 注入2447 G$ d& L$ b. d+ h( k
12.6.2 内核模式的APC 注入245. d8 @. _3 g( Q, k' t
12.7 小结2461 {5 c, A/ t# e' Q$ Q9 \' s
12.8 实验246
1 u! t) _# }0 ]) I& a8 ?
" A. k& J/ _9 Y+ k7 o第13章 数据加密 248( F# t* t2 t8 S; X

& ]) w2 ^6 ~% c- P# L; A13.1 分析加密算法的目的248" e# t7 |9 G3 `- N
13.2 简单的加密算法248
4 F: Q, P& Y- i; K13.2.1 凯撒密码249* b( w+ v" |% m8 z
13.2.2 XOR249
( X8 \) |. P7 x/ j13.2.3 其他一些简单的加密策略2540 e, |1 a! }) \. X
13.2.4 Base642550 [. [% K* O& J' n. v% k7 v
13.3 常见的加密算法258
- ^3 b3 J! p0 Q5 L! _2 _3 T13.3.1 识别字符串和导入259
% z# B( Z  I* b5 V13.3.2 查找加密常量259
  f' |$ r4 f+ L! }) }1 A5 ^13.3.3 查找高熵值内容2619 f$ o, L7 X/ I
13.4 自定义加密262
5 [# L# N6 G, M; C) t13.4.1 识别自定义加密263! d+ z. H  h6 w( o7 D1 b: l
13.4.2 攻击者使用自定义加密的优势265' L; G8 j( _7 z" l& g- g
13.5 解密265
+ j  S8 K7 P- U13.5.1 自解密265
4 z  w1 l+ E% l: _+ D9 C/ c13.5.2 手动执行解密函数266) E1 c2 S; K- q; |
13.5.3 使用通用的解密规范267
6 S+ }* r: W! r; ?2 W13.6 小结270
. [% W6 R$ }- h' V' d13.7 实验271
4 l' [& [% e+ j% H7 D. E2 P7 J9 |1 b5 `3 i
第14章 恶意代码的网络特征273
$ r6 n5 S' _' g3 v5 _5 y7 R0 ?  O
1 {4 O% ^# z3 ~0 a- X3 o14.1 网络应对措施273
; c! K$ @+ U2 q" M( F14.1.1 在原始环境中观察恶意代码273/ t$ g" e( ]4 D# V
14.1.2 恶意行为的痕迹274
1 O9 m; b. F9 q' \* \0 [14.1.3 OPSEC=操作安全性2751 d. e) F6 {- s; }: \3 G
14.2 安全地调查在线攻击者275
+ b/ |0 @* E/ ^; b# I14.2.1 间接性策略275+ E  r# G  c, ?& ]; Z' R  [) X& L
14.2.2 获取IP 地址和域名信息2762 A: z8 |8 C. Q1 M# }
14.3 基于内容的网络应对措施278
5 w; {' A7 G1 C- v# R+ g+ j" {% e8 r14.3.1 使用Snort 进行入侵检测278
9 k) n& p/ R' x: @14.3.2 深入观察2794 y* {' {' Z2 g4 {. J
14.4 结合动态和静态分析技术282
7 T% c, T' `1 o7 N14.4.1 过度分析的危险283
; B( y; |6 O  F2 W14.4.2 在众目睽睽下隐藏283
, d+ T8 b) L) @+ ?% T& O* ^14.4.3 理解周边代码286
, ^5 {& {' t( Q* \# V8 Q14.4.4 寻找网络操作代码287% O- I2 n" ^$ m* O( V% ]
14.4.5 了解网络内容的来源2880 n" c$ l$ v& L5 O4 ]
14.4.6 硬编码数据 vs. 临时数据289- ^8 p* V; p) j6 z7 Y# R% x: r
14.4.7 确定和利用编码步骤289( Z/ g& x1 d4 r. B
14.4.8 创建特征291
+ \3 Q, Q/ L/ e9 v14.4.9 分析解析例程292$ Y& y& c: w+ H" [
14.4.10 针对多个元素2944 b, T* B' k5 w: e
14.5 了解攻击者的意图2953 b# Y" H' V. s. ~/ _! W
14.6 小结2967 T- I2 f# _2 ]4 Y; W
14.7 实验2963 U, J# ]+ r1 {- t' Y7 l

+ r  v0 U, \' g( J1 I: Q( c% L8 A, U$ e+ z, T
第 5 篇 逆向工程
6 z3 O, j( k% z- D8 D" P& t
( D" b& U$ c4 S+ G) y- k- s第15章 对抗反汇编 3003 d2 f+ h& d4 J! r  f

' ]1 H9 e2 d5 |* T* @15.1 何谓对抗反汇编技术300
; B+ Q( v0 A0 f1 S. q" r0 [15.2 挫败反汇编算法301
+ V: @% A& O6 R3 E0 Q! R) l# ]15.2.1 线性反汇编302
2 Y/ m+ r3 t7 x+ I: I15.2.2 面向代码流的反汇编3034 z8 v5 e. K' j3 }! Y. A# [6 f* ^
15.3 对抗反汇编技术3067 E% n8 x9 f3 P4 s8 I5 O( T! J2 B7 \" N
15.3.1 相同目标的跳转指令306* F" Y& w5 C& ]4 v: |/ G5 X
15.3.2 固定条件的跳转指令307
1 {2 e. }! D$ X. t15.3.3 无效的反汇编指令308/ W" U* }& V9 g7 e& z( G! o
15.3.4 用IDA Pro 对指令进行NOP替换3114 ~6 A6 ]" @# A# f) O
15.4 混淆控制流图312
+ p  W: ]5 H% Z# H3 V, u; L6 F1 _1 t15.4.1 函数指针问题312
! E, u: X1 ?. u/ K0 ^" d' p' r15.4.2 在IDA Pro 中添加代码的交叉引用313
# A/ ~6 X# j( w  B0 D3 ]) ^  f15.4.3 滥用返回指针3139 e8 @$ z- P5 M" `
15.4.4 滥用结构化异常处理315' m& P: r, a% ^. @& B! P6 {* W& ~, ~
15.5 挫败栈帧分析317
& b4 ]: Y, K/ E) e% Q# j( I7 N4 y7 L15.6 小结320$ {9 j0 q* @( @- X+ x
15.7 实验320
; z. p. h. G$ j4 d% X' g! O0 @. B7 q( B6 l7 V6 P* O( n
第16章 反调试技术322
6 h* i; C: J  F+ I2 R! q3 n
1 ~$ [4 v+ ^! N$ u1 m% K; A, e16.1 探测Windows 调试器322
% P7 p2 D2 v' C  ~16.1.1 使用Windows API322
/ v8 |. a& e( N7 k16.1.2 手动检测数据结构324+ P$ x3 |# r" `0 x- T  S
16.1.3 系统痕迹检测326
/ \$ N* d6 S% f2 r" R; c8 n16.2 识别调试器的行为327
: P. w2 r+ `& B7 O6 i5 B16.2.1 INT 扫描327* x5 p- @2 F9 ~/ q0 T
16.2.2 执行代码校验和检查3281 l  Z4 J% x8 g% O' B4 _
16.2.3 时钟检测328% _* l* t) ]5 h
16.3 干扰调试器的功能3300 D/ |8 b% X2 B. j/ c1 \
16.3.1 使用TLS回调330
, T  f7 x# o4 ~- @16.3.2 使用异常332
7 T, }, ?- G$ ~& r16.3.3 插入中断333
3 A1 j5 R  h5 H) i5 \) x16.4 调试器漏洞334
* ]3 J7 s: y& |& y3 b% J16.4.1 PE 头漏洞334% x1 g+ W6 V$ I& q: X* J. Q
16.4.2 OutputDebugString漏洞336. x+ x# L- q6 H% G
16.5 小结336/ ], G3 z+ m) L! g) t3 F
16.6 实验336
! l, P8 x+ Q8 @3 m, T9 f$ T5 `+ b! ~! f' b# M
第17章 反虚拟机技术 338
0 r* _- o4 p( K  v+ d: F4 _; c: n: z" |! h+ ]& Z+ e2 Y
17.1 VMware 痕迹338  D7 f9 w) x7 T1 H
17.1.1 绕过VMware 痕迹的探测3402 x! k2 ^* r+ _. L- @0 O' |
17.1.2 探测内存痕迹342
. _4 B9 D6 g8 |' z  H17.2 查找漏洞指令342
4 j7 W. _2 C5 P# F17.2.1 使用Red Pill 反虚拟机技术3436 A* m- S( C/ n1 b3 ~4 O3 Y. j
17.2.2 使用No Pill 技术344
5 s6 D3 |& t2 O+ v" K3 ^17.2.3 查询I/O 通信端口344
4 e' [$ ?& Y/ P8 M; L8 J17.2.4 使用str 指令345- m! P* X; H( k
17.2.5 反虚拟机的x86 指令346
, Q9 l8 u0 J7 P17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
( T* k. J+ m. l% D( W17.2.7 使用ScoopyNG3470 M" W& U+ I4 T4 F. V
17.3 调整设置348
3 ~$ m3 a% c$ F3 u  m/ L17.4 虚拟机逃逸349
. |7 \& U9 {$ u2 W1 c  ^/ K" A9 n' c17.5 小结349
0 }/ A! R! d! r17.6 实验349& u& n% V' M2 _3 c* W, ~  E# z, e
, D7 i* W- Y! H7 o: ]
第18章 加壳与脱壳 3524 x' t/ u0 s# `5 n5 O* @
: P# N$ H  _' _- Z# ^
18.1 剖析加壳352
1 ]6 d, L5 z  v: H! ?9 S& [18.1.1 脱壳存根3536 v. M1 k$ ?5 d; I; k5 U* x
18.1.2 加载可执行文件353' {0 x& [% O" H
18.1.3 解析导入函数表353
! \/ s$ r) l7 L$ a18.1.4 尾部跳转354
7 y7 w+ S3 z! x" M8 Z/ N18.1.5 图示脱壳过程354$ Y) r1 t# u. t9 _( p  A9 j2 m' f
18.2 识别加壳程序355
* V; d/ }- G" P1 |9 N/ n$ H9 P2 g18.2.1 加壳程序的标识355
3 c( u; n0 C4 |1 s7 k18.2.2 熵计算356
% M. T2 A2 }" t18.3 脱壳选项356
3 g8 T  @+ E2 k3 x3 j8 |18.4 自动脱壳356
" p9 N/ x% Y  h; W6 S18.5 手动脱壳357' ?# x3 ~; Z. {# ~& @& U+ Q- ]+ G
18.5.1 使用导入重构器重构导入表3588 [$ K& e% g9 G( v1 ]" w4 t
18.5.2 查找OEP359- y1 D7 q# w0 X& H" R9 V
18.5.3 手动修复导入表363" o6 n4 v. L* q% s5 G- o6 E
18.6 常见壳的技巧与窍门364$ I, {+ D4 x8 r0 q. v
18.6.1 UPX 3645 {8 E1 \. x) g- E: M( @1 _
18.6.2 PECompact 365
( _* ^6 T5 m: O8 N  I  u- v18.6.3 ASPack365
, s+ @, V5 @! O8 N18.6.4 Petite 365
2 g$ f- h! X' L4 v18.6.5 WinUpack 3666 W7 w& g( j5 u/ G& }+ j
18.6.6 Themida367
( S" E* ~) q8 G* e18.7 不完全脱壳情况下的分析368
8 R  s+ i) R  B! J3 ?+ T) D4 l) x/ W18.8 加壳DLL 368
0 h  y5 T, d3 c2 b! z3 g18.9 小结369+ m( z+ a& W, ^, S
18.10 实验3692 A  e1 l! i6 U5 _; z3 {

: v0 _6 A" V3 x; ?0 @# y
! a0 o$ r) R7 i% U第 6 篇 高级专题+ [# q! A+ Q; I- W# D
, w7 N. i- ]4 n& o' u, Y
第19章 shellcode 分析 372( D/ t1 d" O8 w2 k+ l
5 p1 p2 N0 T( a) `
19.1 加载shellcode 进行分析372
) I2 r- `" I3 |3 F! `8 c/ Y  v19.2 位置无关代码373
% F" ?- Z$ |" m# T: [- G# N19.3 识别执行位置373
% L0 X: L+ Y- c, k" {( X/ q19.3.1 使用call/pop 指令374, W) d$ C1 |# Y) ^  f+ P- j. J
19.3.2 使用fnstenv 指令376
- a" b/ l+ N6 N0 g& y19.4 手动符号解析3771 d$ u* C9 _8 d( M- P9 N- H# C
19.4.1 在内存中找到kernel32.dll3789 g; F3 {# B6 `) \% i$ {
19.4.2 解析PE 文件导出数据380( i6 S; g9 A$ |+ f; b- v  F. D
19.4.3 使用散列过的导出符号名382& f+ e: n" v* n) G& ^) v
19.5 一个完整的Hello World 例子383
9 b- T1 O7 r1 @! a: Y! d7 j! F; H19.6 shellcode 编码3852 g8 ?! z9 M1 O2 s- P* S# d
19.7 空指令雪橇387: S& b5 g* o7 G% X1 R6 K
19.8 找到shellcode387& E, O; V7 I4 c
19.9 小结388# f! x. T; n+ J1 V) O
19.10 实验3892 s3 f+ y5 M4 K3 D, P( A

; w* B( t+ s& b0 }& p1 X第20章 C++代码分析 391
& E% v. s6 H) y4 `1 E9 Y0 }3 C. ~7 i) l
20.1 面向对象的编程语言391" R" W5 ^+ K+ V! g* _2 f2 y: r1 \
20.1.1 this 指针392% e$ l( d5 e/ T7 ~) i4 N9 d  d
20.1.2 重载与修饰394+ p6 o. W  G/ Q( L! C3 j
20.1.3 继承(Inheritance)和函数重写(Overriding)395
4 E/ K- o' s% H, h$ a! T) I20.2 虚函数和非虚函数396! p# m- y' y* `) ]5 U' a
20.2.1 虚函数表的使用398
' k* l' d; @0 @20.2.2 识别虚函数表399
4 \4 G/ V! H+ C3 {; r! n. l. c20.3 创建和销毁对象400
, G$ L* B: U# }* b* c2 ]20.4 小结401- r& a$ t0 L7 s. o! q* U
20.5 实验401
7 M, s) z3 O# I" [6 w- ~1 L: \  U
; q* c+ i; ^% |4 F, R" k! `第21章 64 位恶意代码 4036 N$ {7 L4 h9 c9 d: _  a
% \" H2 c; o. g3 `5 x% |
21.1 为什么需要64 位恶意代码403& g" J/ ^7 m; w9 @4 f, j
21.2 x64 架构上的差别404
) a  r8 |+ x- P21.2.1 x64 调用约定和栈使用上的差别406' F1 M# z3 j) d6 d% A8 r
21.2.2 64 位异常处理4080 j/ |* q7 H+ J1 ~/ R
21.3 在Windows 64 位上的Windows 32 位408
' C& y% m+ e5 P0 n: b0 c21.4 恶意代码功能上的64位提示409
* d/ j3 ~5 |5 K! s9 k1 Y0 b21.5 小结4107 Y0 P2 W6 B  m; ?% d
21.6 实验410
0 P3 C6 U4 Q' y3 L6 D5 c! D0 h; x$ j1 W) ^- Y- C0 c
附录A 常见Windows 函数列表 412
9 `/ [! l8 ?5 `
, }1 I- ~# i/ u# Y' L, m5 s附录B 流行的恶意代码分析工具列表424
! l) M! i  ]  e3 o2 L& _/ G4 o) w! P, J- C- Y
附录C 实验作业参考解答435
$ V- i$ b- b( v: Z  l, a0 u( `: J6 F3 Y! y8 T8 a/ M1 U; V
附录D 致青春,基础软件开发的中国故事 691
$ L0 y7 [) }4 ^( \( K1 y4 t. ^3 C/ r* U# Y" K  u
附录E Syser 操作入门 695
/ S3 {9 `1 L; _' d& h# o; W+ @# o, F! N9 X: T

  l. L- z/ |2 `7 j
想知道小甲鱼最近在做啥?请访问 -> 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
+ N3 g5 L; Y3 V什么编程语音写的?

6 }. r& A% ?0 W# m& \/ M3 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-1 21:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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