QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

管理员

Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40

技术值
查看: 3939|回复: 9

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

[复制链接]
最佳答案
192 
累计签到:2287 天
连续签到:2 天
小甲鱼 发表于 2016-11-25 21:49:00 39399 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
& B  ?! B3 ?/ i6 m( E

) c! E/ |* n( v- m0 y. z: t书名:《恶意代码分析实战》
9 t. ^: S2 y8 p( a- @5 g4 l# }* v作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
) D1 @! f4 h# w0 k4 B! u译者:诸葛建伟,姜辉,张光凯
1 q+ D  V; q7 H5 o2 ?4 @* q出版社:电子工业出版社
% b' W! q8 L0 r3 j) b5 p出版年:2014年4月1日(第1版)/ I% W  m) @" o
定价:128.00元
6 r. u" `$ N% \& b, u装帧:平装
* D. |' \9 I: j7 xISBN:9787121224683
$ a8 @( [; q& N* j% q$ k* `  g- d/ C0 e
购买链接:" H" n. m4 X+ q& a, J2 R4 r
+ h' ]. J4 T, @( k& i


: U8 V1 Y' C% |5 L亚马逊 -> 传送门8 H1 D9 |3 p5 S% @+ `! }2 f

% T! x* ]7 ]# b4 `当当网 -> 传送门9 v3 m0 T7 B! F* {

9 p, t& X2 N# ~  c8 v! H" `" L京东 -> 传送门6 h, d/ u+ k- s9 I8 t

5 c' E7 E0 m0 O2 c天猫 -> 传送门
; Z- c4 z) T2 V: ^  w, L, ~
! k! p/ j9 t- b3 Z+ \; I9 z0 H# E$ d  `" I: g5 \, i
内容简介:' t# D5 T9 D' b7 o* ^

, G  S7 K8 t; z% b' B# P
* A) H6 b9 R: Q; Q1 g: h  i" ?. ~
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。7 G# u5 e7 V  V; k& B

& g4 R5 y7 `" o: G《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。1 b- ~1 S7 [  ~" b- m' I

0 r* O5 o1 u- \+ {6 P! F* W针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
) x" U  f% d; f( m. O0 ?1 w$ J' p针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。- `0 V/ d% l4 Y  m; O% i. T

$ }2 s& v- O7 B7 _& `目录:
, Z2 Y6 M" ]3 @
- Z* [/ R, t% U9 G3 `- U& y" c

) ^, i! ]5 g6 K/ f  C6 R0 I第0章 恶意代码分析技术入门1  {5 U' R$ M2 ^' z- e
* X+ l0 e+ u) V) @1 {
0.1 恶意代码分析目标1: D$ w# F$ Y/ k3 y- a; |
0.2 恶意代码分析技术2; K* M- U- ]$ J0 G0 \0 p9 o
0.2.1 静态分析基础技术2+ `; X$ e: l, a) _. I4 A
0.2.2 动态分析基础技术2& g( R( n. M( m% y
0.2.3 静态分析高级技术2
+ ^/ b- i7 z9 A7 ^0.2.4 动态分析高级技术2
. E7 K% F# @! W4 p; H  ^! l. a, X0.3 恶意代码类型3$ G0 V3 {# c  {: I6 m, l1 _
0.4 恶意代码分析通用规则4% G8 Y. M2 A. {$ z+ c( O$ E
. k/ w: m3 V  C- C
* q6 y2 Z+ B# E! {
第 1 篇 静态分析( `& [8 K9 s9 s7 l+ `3 m2 R  Z" w
; t- Z! g; X- r
第1章 静态分析基础技术 6  s; c2 V$ Q+ q8 g
6 y( ^0 A7 f% p, p" `
1.1 反病毒引擎扫描:实用的第一步6
! f( o/ R& z& w  B& i3 F+ P1.2 哈希值:恶意代码的指纹7
/ u- i3 ~& [& n% D! A2 {% v1.3 查找字符串7
3 Q3 U3 _1 E* z: d% J  l! h1.4 加壳与混淆恶意代码9: l8 n# v' g1 y$ X8 \# q5 ]& U8 K
1.4.1 文件加壳105 \% o/ q; B, a' Z6 {
1.4.2 使用PEiD 检测加壳10
& A; Z1 N$ B5 x: ~, Z4 m  Q! C1.5 PE 文件格式11
8 j1 Q" D; V* {9 @1.6 链接库与函数12& g9 i( M5 E4 y  |0 @1 M  r
1.6.1 静态链接、运行时链接与动态链接12
' o# D5 j" t* j, M) [! F1.6.2 使用Dependency Walker 工具探索动态链接函数13
, i  `" i. _- W1.6.3 导入函数14
8 x) ]7 Q2 K6 O) P7 g. s1.6.4 导出函数15
; h& N( R. J) R" {7 F8 c8 P1.7 静态分析技术实践158 r! k7 i1 v: |* n
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
& E; L5 J5 B1 l' s. f3 \1.7.2 PackedProgram.exe:穷途末路18! c0 y# O# [! J$ Z1 x; B  j9 F
1.8 PE 文件头与分节18
9 I+ ^4 N3 d5 H% u5 S, F  T$ `1.8.1 使用PEview 来分析PE 文件19
& V) y2 ]5 A! a/ \4 \1.8.2 使用Resource Hacker 工具来查看资源节22
! H5 g* N- g# ]) R( o7 y1.8.3 使用其他的PE 文件工具23
$ e9 L5 e8 n1 d6 T# }* V& y1.8.4 PE 文件头概述23& v: L( k% `) u& v! Z" l& J) Q
1.9 小结24
& X+ X+ R0 _8 C# Z1.10 实验24$ y( f9 a4 r4 }: f0 J& U2 a" r
3 u( g8 @% X3 ]
第2章 在虚拟机中分析恶意代码 27
5 ^* q. g: H* P& S, G
8 Q4 I4 l( U. y" U9 m  R% H2.1 虚拟机的结构27! h/ V3 J1 t8 ]- W. B" v
2.2 创建恶意代码分析机28
) }2 `- r7 q1 R" K. ?  q2.2.1 配置VMware29
  k/ W7 Q: D! L/ w/ x4 N& C3 |2.2.2 断开网络30
2 C) J" ^* Z4 Z+ O' K2.2.3 创建主机模式网络30/ G; j3 A4 E: r) U# E- }& Y
2.2.4 使用多个虚拟机30- y  h) v" o6 ^/ T& q) Y
2.3 使用恶意代码分析机31, J, ?7 e$ }5 z. @8 C- ]& E4 f
2.3.1 让恶意代码连接互联网31) A" L4 W/ K  S" G
2.3.2 连接和断开外围设备32' o2 A& B% q% p" L& I
2.3.3 拍摄快照32
  W) S! q$ T$ n  ^) C2.3.4 从虚拟机传输文件33
: U& T1 y4 L; ^, `! m" }# G2.4 使用VMware 进行恶意代码分析的风险34
7 c9 Z: T7 h" q5 d! f2.5 记录/重放:重复计算机运行轨迹34
# `7 J; s" n7 h* Q; _* q2.6 小结35
- f5 e6 i) H, N7 K' f/ X2 r7 s" q5 k
第3章 动态分析基础技术 36
$ R) Y0 b' n* s5 J2 u
0 Z  [' t7 M8 m$ U5 _) V
3.1 沙箱:简便但粗糙的方法36
; i( D! h" f: C0 ?3.1.1 使用恶意代码沙箱36
, C! k# a$ r* {) g3.1.2 沙箱的缺点37! }4 @8 [' |& ^* z& j2 S
3.2 运行恶意代码38
7 m6 T5 D8 g, x) {3.3 进程监视器39
* `# U6 |- T7 ?3 R: o3.3.1 进程监视器的显示40* k" e  L* X5 c7 t) e% U! G3 c
3.3.2 进程监视器中的过滤41
- v* W. |5 w; P, F" s# U3.4 使用进程浏览器(Process Explorer)来查看进程437 S4 T9 ?+ v7 o0 @; i9 L
3.4.1 进程浏览器的显示43
, {+ D0 A% c8 [# m8 ?3.4.2 使用验证选项44
& J! _4 g/ H9 ~( `3.4.3 比较字符串45% ?2 z, l) G5 W. ]& i: W5 ^
3.4.4 使用依赖遍历器(Dependency Walker)45" f+ h9 T" _. [, O, B; V9 p' o! n2 U
3.4.5 分析恶意文档46+ M& e) J. ]! I- [4 r9 x, X. I4 J
3.5 使用Regshot 来比较注册表快照469 D  f5 V+ B: [6 _1 @5 E8 e0 Q  Z
3.6 模拟网络47
) I- m# c( D& L4 J' [3 ]0 e3.6.1 使用ApateDNS479 j* m+ A& Q! X3 m) {
3.6.2 使用Netcat 进行监视48
& V3 `* E. h/ h9 I4 I6 L1 g+ B3.7 使用Wireshark 进行数据包监听493 c' e4 ?! K& n3 I* g: i& e/ t
3.8 使用INetSim51
- [$ a. U5 ^5 F( a3.9 基础动态分析工具实践52+ T. T' l" N/ n( j! V( Z- K
3.10 小结55
% j, ~$ Y: z$ b% K3.11 实验56
1 x4 c) E% y5 V( e0 F/ N. I- o0 I2 q

6 x& Y0 P9 q- |9 [$ w% o第 2 篇 静态分析高级技术篇% t& J3 \$ a8 K  A( }+ B; }+ P

# Y3 Z- l5 D/ L+ `% v第4章 x86 反汇编速成班 60- a2 |, t; W0 _6 Q8 Y1 [
8 K- S# H' `% o# k& ?$ J
4.1 抽象层次603 T' |1 V( x* m7 F2 \8 Q& h" S! R
4.2 逆向工程62) u' J" a/ w0 ]8 H6 \0 L
4.3 x86 体系结构62
! }7 y4 X1 {) V  C4.3.1 内存63
2 j7 {) x) p$ S1 m4.3.2 指令64$ Q/ V& K7 p! G- B  z
4.3.3 操作码和字节序64
/ V# |' X" |8 j' j4 O# @4.3.4 操作数65/ q2 l# S8 @* ]4 y- s
4.3.5 寄存器65+ S& V* P$ ?  ^' u
4.3.6 简单指令67
. u' @8 }% p) B9 t4.3.7 栈70
, l) ?- O- J) h/ ^6 }0 j$ E  `1 k( J4.3.8 条件指令73$ v/ R7 X3 ^( C. h* ?
4.3.9 分支指令735 K* N7 i! t! |6 E: Z: Q& U; `
4.3.10 重复指令74) D8 N- ?/ E4 m& R9 U) k- t
4.3.11 C 语言主函数和偏移76! R+ G5 P( ^) h( T
4.3.12 更多信息:Intel x86 Architecture Manual77" o1 d9 d, y$ a$ K, l# ~8 r" D
4.4 小结78
  H8 f' y$ y) V2 b8 a( J9 R, b" ?. b8 L4 f" K1 F& N
第5章 IDA Pro 79
" ^* I8 Q5 E( W* b6 e
9 G* s* \7 I6 z+ P7 b) ~8 b2 G# k5.1 加载一个可执行文件79; I/ W) m* N4 x. g( J
5.2 IDA Pro 接口81
0 _& o* }% q) p# Z+ Z5.2.1 反汇编窗口模式81, g8 ?* Y5 @; _
5.2.2 对分析有用的窗口83
% _! q. ^" o7 N5.2.3 返回到默认视图83
# T6 m1 B" R( h7 r: l4 H; @, z- J, S( x5.2.4 导航IDA Pro 83
7 T/ i9 L' x1 S8 I" S1 n5.2.5 搜索85
# S( W6 x" S/ ~! w9 _7 F5.3 使用交叉引用86
6 E, z9 }: N. g6 U, o% E9 D" n1 n% `( k5.3.1 代码交叉引用87
5 ]- k: Y- t- `$ `1 G5.3.2 数据交叉引用88( q1 o6 n* _% n6 h% s7 [0 f- R
5.4 分析函数884 I$ ~6 q# _* z: R( N
5.5 使用图形选项89# M4 {- B3 \2 f- l; M
5.6 增强反汇编91
. x( i& ^. S* x- H2 j) @: {: _5.6.1 重命名位置91
3 S9 W: p% @6 {- A, A, a5.6.2 注释92' ^8 i+ A3 E+ Z' [% n
5.6.3 格式化操作数92/ I1 D# i: x+ Y: v  d
5.6.4 使用命名的常量93
3 ?+ E) F3 O" @  U; V# @4 ^% f5.6.5 重新定义代码和数据94/ [  j7 |+ Q$ ^  N! \' v) s6 {
5.7 用插件扩展IDA95! b$ Z" O: p) S
5.7.1 使用IDC 脚本96$ x% E6 v# U2 @( ^
5.7.2 使用IDAPython97
# U+ y: W& ^, U2 h# [# e' e0 S! f- w5.7.3 使用商业插件97
+ H) C: z0 H; i0 _+ ?* R; ^2 w5.8 小结98) T. b1 {0 V8 T$ r; N
5.9 实验98
* _. u" I, N6 X$ T3 ]& A7 X. f2 x
- R2 H; R$ m/ l# O" }  y第6章 识别汇编中的C代码结构 100
% D9 L  a# I" p: v0 _1 I" m
( Y! [+ o8 z5 T
6.1 全局与局部变量101
9 _# Z$ y7 d0 N$ B# \( T. o: W6.2 反汇编算术操作102
3 v+ Z! b* Y5 T) n9 U5 f# o6.3 识别if 语句104; a+ e& ?2 h* t8 j
6.3.1 用IDA Pro 图形化分析函数105
4 X5 O8 M- G2 ~/ M$ ?9 S6.3.2 识别嵌套的if 语句106: J" u, d! h% \4 K! x5 t) Z
6.4 识别循环107
5 \' b  [" j7 z  Q; g6.4.1 找到for 循环107# A1 q( p- p1 K
6.4.2 找到while 循环109) Q2 T' ?9 t1 Y+ E5 h8 B9 L. p
6.5 理解函数调用约定110- O1 r, s. N1 k1 |8 t
6.5.1 cdecl110
! T4 `/ p: ~. {1 U  p6 Y/ \- t8 i8 x6.5.2 stdcall 111. g1 S+ T6 t' d) o; G
6.5.3 fastcall 111
2 d2 n9 D1 A; i! r6.5.4 压栈与移动 111
9 T* E1 Z) D! f$ l, P6.6 分析switch 语句112
6 h/ e$ Y, a. V. w3 G1 Z6.6.1 If 样式1122 s" f( s7 V) ?  Z) N1 I
6.6.2 跳转表114
& o1 I4 w0 U9 P# b  _1 i6.7 反汇编数组1181 t# q  W8 I! l; Y$ n( w5 V3 m) B
6.8 识别结构体119
; r6 ?# V. [" K6 F0 Q3 D6.9 分析链表遍历121
+ a% _+ ]  A. ?  M1 m6.10 小结123/ C  s, A! q' t4 i* r% l
6.11 实验123' ?; Y% \6 N  u
/ @3 x1 e3 J, T* `. ~5 e$ Y0 w
第7章 分析恶意Windows程序 126

4 ?( @! K: }9 C( s- F6 U
& Y/ C, j' g" W  J" F2 E7.1 Windows API1262 D# |8 t, ^. @# }# P
7.1.1 类型和匈牙利表达法1269 c* Q! k6 Q4 R* H, H
7.1.2 句柄127' e/ N9 r' D' A3 G0 E4 J' k
7.1.3 文件系统函数127
: {+ K/ c- v* B: m( @  E7.1.4 特殊文件128
7 c7 |1 H4 x. w7.2 Windows 注册表129
9 |* P) @$ J$ S) _$ N7.2.1 注册表根键130$ t/ \& Z  U1 m
7.2.2 Regedit131
  v! b: E  i) l9 I. w; [. S8 X7.2.3 自启动程序131
7 c4 {5 C2 q* R3 I5 b7.2.4 常用注册表函数131, e9 y& A/ d1 y& P( H  n
7.2.5 练习分析注册表操作代码132
. w* l$ P3 t8 u% a2 V; J2 Y7.2.6 使用.reg 文件的注册表脚本133
" v) V, A# a5 _( T) d7.3 网络API1337 u" d& U" t$ b+ C* o8 n
7.3.1 伯克利兼容套接字134
9 E3 |9 t8 d" x9 l1 ^7.3.2 网络的服务器和客户端134
) m" X8 q! k. Q- {/ n, w7.3.3 WinINet API 135
  O& L* B1 X' F$ `4 _  u7.4 跟踪恶意代码的运行1367 o* O7 n$ t6 j2 i# V; ?8 v. X$ k
7.4.1 DLL136
% a0 y: E, G- V  d1 V7.4.2 进程137
+ I9 F7 e) X1 S4 V& J& `* j8 I' Q7.4.3 线程139
; c  B% X; F( [, i2 n7.4.4 使用互斥量的进程间协作142
* G1 p' o6 v& C" i' N7.4.5 服务143; l4 _3 w) V7 F# q
7.4.6 组件对象模型145" f  Y6 @# c  {( N8 r7 S) ]
7.4.7 异常:当事情出错时147* B9 X3 V: P0 T3 N
7.5 内核与用户模式1488 q0 M9 z* K3 G1 d. I
7.6 原生API149! k. G$ A" Z' k0 x2 j1 e% `; Y- I
7.7 小结151
+ P6 Z, I( s5 `3 @" n7.8 实验1511 d8 d- n: U8 b5 d. j8 q; y. S  S
) g8 X7 B* Z/ G4 P- `' Z
0 q0 U2 `* k' t7 k6 Y* q
第 3 篇 动态分析高级技术篇+ a' l! t3 I  l* r4 _
8 t' E+ _! j1 \' K* O/ H" ?
第8章 动态调试 154

- L8 g+ ~6 X% q1 _' r5 w+ k7 r& X1 l- ]& V
8.1 源代码级与汇编级的调试器154
" i, r4 c% ?! R! v6 {$ l4 M8.2 内核模式与用户模式调试155
# @5 K* k9 U1 u8.3 使用调试器155; G# t& x& n4 c" y4 j/ @4 I
8.3.1 单步调试155- |+ }1 L: V6 L- ?$ ~1 i, {2 X
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
* g& ?& T4 p! o1 T8 _8.3.3 用断点暂停执行157& _4 v0 m& O+ U1 k$ [3 c
8.4 异常161# }' w5 x0 e8 }
8.4.1 首次和二次异常处理162: ~% A1 v3 @& G
8.4.2 常见异常1621 _" m: r) s* A1 s3 c4 q; E; J) T" g
8.5 使用调试器修改可执行文件163" A; }" _  ]( p1 c5 \
8.6 修改可执行程序的实践163
0 `" u) u1 m# m9 \8.7 小结164( w" V+ ?% O7 T8 D, u

: S- L: P) @- [; [9 f! O, ?第9 章 OllyDbg 165

0 U' h& }1 d: k. O* O
4 }/ c- U& Y# X9.1 加载恶意代码165, z5 j* l' w. D4 A' a& Y+ j# n
9.1.1 打开一个可执行文件165
+ o9 ]- |# O+ `9.1.2 附加调试器到一个运行程序1664 W9 d: V  }# X$ G/ U+ J
9.2 OllyDbg 的接口167) g% I$ \# T; X
9.3 内存映射168
+ ]/ V; r4 M/ b/ B! J7 [0 l( Z9.3.1 基地址重定位169
8 L+ Z5 ?6 a7 S- ]5 y: h5 ]# }9 K9.4 查看线程和堆栈170
1 e* b2 c9 o1 Q  P- _9.5 执行代码1711 o3 Q7 z; ]% e
9.6 断点1720 r! N5 f& U3 Y, c" g& t
9.6.1 软件断点173
# o" G1 W+ j1 U* u5 y1 F+ K& D9.6.2 条件断点174
8 O# {+ M; z/ Q3 a  ?9.6.3 硬件断点175
$ `5 `2 P5 n, v- W9.6.4 内存断点175
2 G9 Z0 a( g! B! G% F9.7 加载DLL176
* X1 p- I: `' z; h+ r2 d* ~  `9.8 跟踪1775 b( z0 A" B8 E
9.8.1 标准回溯跟踪177
/ Q6 u* |, a9 z% b, N: k! N9.8.2 堆栈调用跟踪1781 p! ?& H5 b0 ?& b$ {( e
9.8.3 运行跟踪178! b. N9 I5 c  ]* _" t/ a5 g  A
9.8.4 跟踪Poison Ivy1789 X- C& l$ w6 s
9.9 异常处理179, d6 Z0 k' }# Z/ {
9.10 修补180
" _3 T' K- h& B, @0 p+ y3 s" j9.11 分析shellcode1819 }& M7 s. Y9 ]5 ?; T
9.12 协助功能182# a8 o6 f8 g2 l0 ~# C* U7 u
9.13 插件182# o+ f5 ^5 V) P  X/ }3 k) m7 Z
9.13.1 OllyDump183" s8 R. s/ j0 g3 Z7 ?  Z8 |5 S
9.13.2 调试器隐藏插件183( {$ ?7 Q5 o! K% O* z& H$ b9 a" c
9.13.3 命令行184
6 V. q5 T' X0 R* s9.13.4 书签185
/ f" f+ [; ]4 x2 l$ H5 [. e9.14 脚本调试185& T- J1 r' E! C# r
9.15 小结186
: `8 r, h' J4 |" N  Z; ?- u2 U  j9.16 实验187
, _$ m  M7 E; Y3 f
+ @) \  x8 }9 j/ @第10章 使用WinDbg 调试内核 189, L; ]# j* F8 S4 p8 p1 a
" L  K, l( V$ ^$ F' K4 |) K1 }
10.1 驱动与内核代码189  s6 f$ I" S& u- p
10.2 安装内核调试191
: R3 n+ c3 c2 T' @4 Q9 N& T( @4 a" G10.3 使用WinDbg193
) W0 t0 a/ d5 S* c0 q10.3.1 从内存中读取194
1 p- E  T, t' \& Q  ?2 w. c6 ?10.3.2 使用算术操作符194  ]# P& u$ p8 p! b6 T- L- C8 q
10.3.3 设置断点194
" s3 A7 H9 `4 u. o+ U10.3.4 列举模块195
; {' a; D9 w  f8 M/ Z& a10.4 微软符号表195
% V" s+ F/ |. {10.4.1 搜索符号1957 v! w7 K/ H, B" E
10.4.2 查看结构信息196& l6 i9 R. i% ]8 S& y0 l$ @9 w
10.4.3 配置Windows 符号表198' h. h6 u! t/ g5 g
10.5 内核调试实践198
. @( b; i1 ?! n9 a: m6 j2 i10.5.1 用户空间的代码198
) p% q$ T  j2 G: u5 ?/ w; h10.5.2 内核模式的代码200  Z# y) C' i% u/ A
10.5.3 查找驱动对象203; A6 u3 G/ M  R7 M# o' \
10.6 Rootkit204/ l* j9 \6 `9 u7 _, G
10.6.1 Rootkit 分析实践2059 U' r% S+ O; L! N
10.6.2 中断208; E; W. u+ U& `2 `* U2 {
10.7 加载驱动209
. O9 h; B; c: Y# U10.8 Windows Vista、Windows 7 和x64 版本的内核问题209+ Z9 h* P- y$ I7 v8 L1 p, g' ~: `
10.9 小结210
. h1 m  s3 q9 J9 B7 ], W% _10.10 实验210/ L; |, z4 O( Y$ M5 V% e

; @# e8 T. p7 Y- U. M. O
% [( d0 V% X0 n% k7 x$ V# ]第 4 篇 恶意代码功能篇
  h$ ^' g8 f2 p1 }& ?. V
2 a! F' V6 }) l# A+ e  t% W第11章 恶意代码行为 214
6 j) f; R4 d+ P9 C" V
, T8 z. Y5 u3 P& `11.1 下载器和启动器214
: M# k# y- \* T! R# U11.2 后门(backdoor)214
6 D# e! s  B6 ^" H11.2.1 反向shell215; m( g5 R, p' T. {" p( M
11.2.2 远程控制工具216( |& l* H6 l$ T# [9 k
11.2.3 僵尸网络2168 s5 n! C4 Q& D' U+ z2 N8 W
11.2.4 远程控制工具与僵尸网络的比较217
$ R" W+ w% N- e: Y) x11.3 登录凭证窃密器217: L0 `7 p1 B* [' \$ z5 `; i- L
11.3.1 GINA 拦截217& x% k) a; B% d4 s5 O9 c; O
11.3.2 口令哈希转储218
; v/ A1 j7 R# G% q5 ?7 c2 q0 u11.3.3 击键记录221
/ f0 k* S, x' ^( n0 T. W6 A11.4 存活机制223
. h  c5 u. P3 S# V( ]11.4.1 Windows 注册表2236 {9 v2 Q; w" A6 b  C3 H; X! y
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
. S/ `* H9 U' L1 }3 a: G! K11.4.3 DLL 加载顺序劫持227& R. z7 h) n& H2 x
11.5 提权228
+ @! i! `0 B- u' y11.5.1 使用SeDebugPrivilege2288 ?3 I" O" K* |7 [
11.6 隐藏它的踪迹——用户态的Rootkit229
6 F6 E3 a7 Q2 X8 V11.6.1 IAT Hook 230
* r" r8 ~' X% B  l" `11.6.2 Inline Hook 231. s7 w& o2 ]1 G- S
11.7 小结232
6 m5 B' U0 K% u$ P  t3 |# [11.8 实验232" l2 q* k* d7 |. B8 {8 O- E

" c1 t8 O" c5 A' H! }4 Q: L- O第12章 隐蔽的恶意代码启动 234' K: I- R; W: U( E6 m

1 d: `8 n( t5 H2 m% O) \12.1 启动器(Launcher)234
' ~) ~0 k  N2 t4 U12.2 进程注入2340 t% p7 [+ N. b4 ]2 v; G. b
12.2.1 DLL 注入235
. h7 [2 z$ K7 s' A" K+ U6 B5 a12.2.2 直接注入237
( s) b, L/ I  L& r8 W% }12.3 进程替换238
) _. f1 w$ i( D# s12.4 钩子(Hook)注入240
+ p( B3 P- Q1 M# ^2 X) ?12.4.1 本地和远程钩子(Hook)240" x0 Z* [1 _% ~6 r
12.4.2 使用钩子的击键记录器241" X- b' w8 k9 k, `, M# v
12.4.3 使用SetWindowsHookEx 241
1 r/ D) E' a0 A! y12.4.4 目标线程241# v5 n  t# x, z3 q$ _6 d
12.5 Detours 242
7 j1 P; B3 J# D# ?9 ^% l+ a12.6 APC 注入243
/ C" S8 f" B/ l( e) ?' V12.6.1 用户模式下APC 注入244
# e6 f3 B/ t! }: T12.6.2 内核模式的APC 注入245
: r& p' Q- _( u' A. \/ l12.7 小结246
! R; R, ]* T. C/ z/ }9 ]/ u12.8 实验2466 U4 S0 N2 [! d2 @
! M' V) p7 p4 B& U1 u
第13章 数据加密 248
5 J3 R  s, b: w6 _$ J9 ~- s9 T3 f7 u3 i  l5 d  k# o
13.1 分析加密算法的目的248
  ~7 {8 P4 t: \" p- t13.2 简单的加密算法248+ `9 U' C  y1 _6 T. t
13.2.1 凯撒密码249
" X; j: b* S1 o13.2.2 XOR249
1 m9 ?3 O* I  h6 G13.2.3 其他一些简单的加密策略254+ F) T2 V9 T& W9 B% T6 G
13.2.4 Base64255
% z' D8 s8 Y; _6 Z- s; f13.3 常见的加密算法258
& \  {* @$ ]) ]% k" X13.3.1 识别字符串和导入259
- X6 ]! p7 x9 X  k" n13.3.2 查找加密常量259
& x/ w0 I6 p  G3 X8 M13.3.3 查找高熵值内容261) ~3 `. Y  o2 l9 f; L' K
13.4 自定义加密2629 a. X5 M4 b; w+ g: L% Y' c
13.4.1 识别自定义加密263" ]; ]7 t) ?0 d1 \$ g
13.4.2 攻击者使用自定义加密的优势265- Z" k3 o8 J8 l2 d5 |0 J
13.5 解密265' ?( x' ~0 i6 U: A# f0 |
13.5.1 自解密265
( X8 D8 a+ N1 ?6 J13.5.2 手动执行解密函数266, B8 m; ^1 o7 h4 Y
13.5.3 使用通用的解密规范2678 j; z4 c* {1 x, S& `8 |6 J5 l4 ]
13.6 小结270
4 H! P9 t/ `5 c2 n+ W13.7 实验271
, `6 d! ^. z& W0 x3 G# m- |1 I/ V! {5 ~
" C7 o0 H7 Q2 d第14章 恶意代码的网络特征273
  [9 E/ W4 ]4 p( ~) Z4 z
; e4 w7 p3 ^; X2 J, W! g# u14.1 网络应对措施2738 r% G8 ~" o; |* A3 j) W
14.1.1 在原始环境中观察恶意代码273
1 i' h0 F* U2 y/ x& I3 }, o14.1.2 恶意行为的痕迹274
# Q% g$ O9 x( q14.1.3 OPSEC=操作安全性275
3 o) i. E6 _  o8 E! n. _/ K14.2 安全地调查在线攻击者275
2 |. K4 z/ n! e# x( E14.2.1 间接性策略2753 i7 v# c! L/ F0 P5 u  y9 f2 r  Y
14.2.2 获取IP 地址和域名信息276. A- ^1 c! ^7 {7 r. \+ l
14.3 基于内容的网络应对措施278
& s/ ]. ~+ `) M14.3.1 使用Snort 进行入侵检测2781 W9 A- N/ g3 U8 g
14.3.2 深入观察279# F( g2 ?+ d' F" F
14.4 结合动态和静态分析技术282
/ f- M2 \" s3 a2 P3 k14.4.1 过度分析的危险283
& ?/ {; \& D5 I6 F14.4.2 在众目睽睽下隐藏283! c: _6 F1 E+ P) a& x
14.4.3 理解周边代码286
9 d  B5 @1 v, y3 R* q/ a- ^5 X! Y+ q14.4.4 寻找网络操作代码287
) w6 x# |3 t8 R/ r. R14.4.5 了解网络内容的来源2882 v+ o$ |% S; }, g0 K6 E
14.4.6 硬编码数据 vs. 临时数据289+ k6 U# h. H. W# P# s! K$ ^
14.4.7 确定和利用编码步骤289! W; J% O/ v& d/ E  D
14.4.8 创建特征291
/ a. \, `3 K* B/ o. w14.4.9 分析解析例程292
, _. ^  N/ `2 d4 J9 E* ^# [5 J- C. F6 o14.4.10 针对多个元素294
: U/ }, p2 Y6 C14.5 了解攻击者的意图295
$ j2 q6 W+ q' L3 f# t14.6 小结296* f: b* ^( d- h+ ^
14.7 实验296; F: S3 F5 p. K# z" K

* d& l1 @5 d% R' h6 {# G3 a  T: W! K4 w/ e
第 5 篇 逆向工程
  ^3 Y) q7 O0 @! |+ x) k" Z
& f; q+ J3 L7 R, a% \+ G第15章 对抗反汇编 300
; e. |" f/ R$ z( I4 C- h: E% ~3 u/ z; {6 X( L1 ~+ [9 t1 u
15.1 何谓对抗反汇编技术3003 b& p* b& p+ Q0 {
15.2 挫败反汇编算法301
7 E# y( k3 d4 {) u15.2.1 线性反汇编302$ H" e0 j2 o6 k& r) E$ m* t4 r
15.2.2 面向代码流的反汇编303. v1 v1 T5 ?5 ^6 a
15.3 对抗反汇编技术3066 |6 }# D; K% W
15.3.1 相同目标的跳转指令306$ B- a7 T7 L! |2 E; K2 o4 M
15.3.2 固定条件的跳转指令307
3 Z% E) \; n6 h# |$ n4 }2 D+ E% W15.3.3 无效的反汇编指令308( \0 [* X9 A, Q9 s
15.3.4 用IDA Pro 对指令进行NOP替换311: y: O/ E  c' i+ N4 ]5 a9 W
15.4 混淆控制流图312
: C1 d* Y9 U" Z2 F15.4.1 函数指针问题312, R: h. O, s$ [, }- Q7 y
15.4.2 在IDA Pro 中添加代码的交叉引用313
" m; K: Z$ T. R15.4.3 滥用返回指针3131 i+ t* c) G( y$ Z' H
15.4.4 滥用结构化异常处理315; Z; t" O7 m) M9 }" }; k; o
15.5 挫败栈帧分析317& h8 P. |: E# T% Y; Z
15.6 小结320. d# \7 f8 z- k: x3 C9 E% G$ x
15.7 实验3201 F2 `8 _$ m/ o! Z+ e

$ x, s' P. F5 M. q$ O% t( p( n第16章 反调试技术3223 y& t. x" Q" G/ A- ~) m. U+ ]0 [

  h5 E8 `/ ~  m9 A/ \16.1 探测Windows 调试器322+ T0 F7 H  x/ {6 g9 F2 Z5 u( d; {
16.1.1 使用Windows API322
2 X" }/ D- `8 a7 c  ]7 {# o16.1.2 手动检测数据结构324
7 t, U: C% c( C16.1.3 系统痕迹检测326
: i, {( k$ q* T* ^! d16.2 识别调试器的行为327( O1 r, @3 S3 `7 }
16.2.1 INT 扫描327
8 q( ]/ i) W3 H+ d) ]" `) \$ P16.2.2 执行代码校验和检查328
9 f' w0 E& v& a/ R- H2 h16.2.3 时钟检测328
& q3 z; R4 R3 }16.3 干扰调试器的功能330# X6 z1 s7 e/ w$ Q1 h. e1 \9 H
16.3.1 使用TLS回调330$ j  I' ~3 N. @6 J) ~: |% l. Q1 _) I
16.3.2 使用异常3325 C1 @( ~' u5 H  V2 A& j
16.3.3 插入中断3337 D: p7 f. X- G! F; F9 S) G: J* V
16.4 调试器漏洞334
- i5 `' e' I& V2 l3 I8 y9 `1 n16.4.1 PE 头漏洞3342 Q0 \+ H6 l$ `! T0 H! }: L, v
16.4.2 OutputDebugString漏洞336
) n3 R" p' E3 @( _4 R16.5 小结336) K- n+ G" Q. A# E1 {
16.6 实验336
4 v. a. W: e5 U" G/ J% Y
! r5 A. u0 p1 K' r* {( F8 Z$ W第17章 反虚拟机技术 3385 \- j% H; Q0 ?- f
& X5 ]  y1 s7 l0 h& _! E' O
17.1 VMware 痕迹338
* q0 r$ o' R8 p17.1.1 绕过VMware 痕迹的探测340  Q. h* [& H; Y, D3 @: E- E$ I
17.1.2 探测内存痕迹342
) G4 _  }3 S, H5 i1 b. D17.2 查找漏洞指令342
% {, P; M/ U' n17.2.1 使用Red Pill 反虚拟机技术343
4 V# s  q: @5 Z) p# e. S17.2.2 使用No Pill 技术3442 P8 V+ T: S: [" y5 A+ |5 L) }
17.2.3 查询I/O 通信端口344; z6 `" J$ N8 K4 h1 v
17.2.4 使用str 指令345$ F: q8 P( s" G9 b" U( m
17.2.5 反虚拟机的x86 指令346
$ @& {: p* H! F  I2 V/ i0 r& E9 q17.2.6 在IDA Pro 中高亮显示反虚拟机代码3473 F- G3 s8 D5 L$ J$ ?+ i3 z% p4 n
17.2.7 使用ScoopyNG347% L( |4 h/ @: O* ~$ `' r% u+ Y- T
17.3 调整设置348
" k& _( U% }9 G  Q6 I17.4 虚拟机逃逸349  t8 E6 ^" U3 h& S
17.5 小结349# N3 x. p& c7 c3 B
17.6 实验349- O' ]1 A/ d+ W  g% T5 l4 M

, d/ n6 I( _2 N. j& m8 k2 I第18章 加壳与脱壳 352) \6 q! b, l" f0 I$ [% I
5 R% ~9 C# a2 ^5 L. ?: T" L
18.1 剖析加壳352/ {) W. _0 ~4 B2 @
18.1.1 脱壳存根353; n: v* q  {$ H3 s' Q
18.1.2 加载可执行文件353
; w7 u3 V7 s% K( l18.1.3 解析导入函数表353
4 e$ x7 s: r% f1 F: a18.1.4 尾部跳转354
& l$ P0 H# L8 g3 D  w2 |/ Z18.1.5 图示脱壳过程3547 t0 R( {) k6 i( f
18.2 识别加壳程序3555 {0 v3 @# A- _2 h$ X  `
18.2.1 加壳程序的标识3553 X0 n6 \( c7 z2 _0 K- {
18.2.2 熵计算356
# N8 j2 r& h! l. v: g8 k18.3 脱壳选项356- |9 J. N+ k. T% e, `
18.4 自动脱壳356( _4 ?& H& x9 B- O  n4 S4 i
18.5 手动脱壳357
  L; ^' t3 m' a- C: m! W  p18.5.1 使用导入重构器重构导入表358
6 `' o1 U& w% o& E) O: q% x18.5.2 查找OEP359
: {/ x8 N. ]9 l18.5.3 手动修复导入表3636 W# ]' B, p; c0 q0 Y; F
18.6 常见壳的技巧与窍门364
) t. K& b; O) c4 ^18.6.1 UPX 364, h5 ~% r/ T0 F$ [7 \5 l+ t
18.6.2 PECompact 365
) e0 Z& ^$ K1 f! D+ u% w  ~& c& w18.6.3 ASPack3651 D7 D: {0 \9 J( l
18.6.4 Petite 365/ U5 Y8 W5 i/ q) W+ m6 A. G8 ?
18.6.5 WinUpack 366! ]. q. V: k3 Z# u' z
18.6.6 Themida367
. T9 Z/ f/ [8 G, n5 q8 K* ?18.7 不完全脱壳情况下的分析3682 @: F; K9 P& q; z! m5 M
18.8 加壳DLL 368
) j# t8 M) }2 N9 u; U18.9 小结369' Q" Y# U) i' a/ e- s! C
18.10 实验369
2 t% H1 U' E8 Y, b8 f, b6 W0 K' ~% U( X; t

1 l+ x7 G% C  _0 \8 M4 x4 x8 q第 6 篇 高级专题
  Z4 v2 q0 ~6 Y* n' x$ ]: i: t; ?& _7 K- o+ `* p2 I
第19章 shellcode 分析 3728 w( H$ P- \- @# ^3 j. m
! b' X, u! }7 s6 D+ Q/ z
19.1 加载shellcode 进行分析372
/ u3 G1 g' P# K, `19.2 位置无关代码373) o' ]+ X3 |- k6 N1 I) p) M
19.3 识别执行位置373
8 I- a6 H( e1 g6 D/ [' }) y% w19.3.1 使用call/pop 指令374
5 ^( h7 [' v- a( k4 d0 {+ D$ z, L, K- ?19.3.2 使用fnstenv 指令3761 y" Z. [8 c6 o. y1 B! X3 [
19.4 手动符号解析3776 C2 D' y$ R9 W" \
19.4.1 在内存中找到kernel32.dll378
( D5 w* N' I- Y( c19.4.2 解析PE 文件导出数据380# H8 V/ g3 l4 C9 q9 G( p5 D; O
19.4.3 使用散列过的导出符号名382
8 h, k+ x# \3 ]19.5 一个完整的Hello World 例子383
& z& I, Z- H8 t4 b0 W19.6 shellcode 编码3850 O+ A0 j% c5 L1 v1 W. T
19.7 空指令雪橇387
6 s4 \9 B, f; H; k19.8 找到shellcode387
% L8 E: X- h6 t! q  i; i19.9 小结388* p9 b" m. t0 f. E0 J
19.10 实验3894 E* O* ^4 J+ w* p0 k3 E% o

; j% I! }0 g8 u4 C第20章 C++代码分析 391
7 x, f5 g$ L5 {/ Y8 ^/ P. |/ x1 E7 w/ i* y( y9 v
20.1 面向对象的编程语言391) U8 _+ u& ]' K/ o
20.1.1 this 指针392
3 m% X( H0 C! g3 B20.1.2 重载与修饰394
6 e6 y8 J5 @* Y# Z, t, k20.1.3 继承(Inheritance)和函数重写(Overriding)395
# j. K8 Z. F# p0 I, H! X% H20.2 虚函数和非虚函数3963 T2 \3 [2 X1 b/ Z4 S
20.2.1 虚函数表的使用398& S0 B8 ^- S, ~- N5 y% h
20.2.2 识别虚函数表399) o) f9 J1 {9 d8 H2 _% M8 }
20.3 创建和销毁对象4004 j% x1 F6 L& y; u! y
20.4 小结401/ a; p9 a2 Q4 h1 {
20.5 实验401
+ X( q: C) p! p" `0 x: i: n
' I1 i& C3 C: U# R! i第21章 64 位恶意代码 403
. j' @+ Q2 c! W# R+ F/ p
3 w5 j, e" |( e21.1 为什么需要64 位恶意代码403
6 Q1 t* l- g1 H( g5 N21.2 x64 架构上的差别404
  a9 t: B. ?8 b) W21.2.1 x64 调用约定和栈使用上的差别4061 N1 z+ b. O  D6 V$ A3 H% i1 b
21.2.2 64 位异常处理408% ]& j5 n2 A& C' g+ |9 H* q, [$ Y
21.3 在Windows 64 位上的Windows 32 位408
* ?* V7 Q# Q1 A$ T21.4 恶意代码功能上的64位提示409/ B$ M! ]1 N2 A* J/ Q" s7 c8 y
21.5 小结410! ]+ Y5 v. C: A$ V7 A
21.6 实验410
6 }& s' o# N: y' t0 N% n3 z+ L' h# P0 W
附录A 常见Windows 函数列表 412
- C: E5 n/ _0 ^( _5 K$ I& W4 Q2 t3 P, |
附录B 流行的恶意代码分析工具列表424" O9 W/ S* u0 V8 Z, b

0 ?0 M4 P& j! B! Q) _+ I* [* o7 h附录C 实验作业参考解答435
* O! O# Q5 z  s: b3 e$ t% k- A" r: T, j) @# X1 W
附录D 致青春,基础软件开发的中国故事 691' `: u5 Y8 e6 h: D5 F4 ~
3 w9 g3 W" [  A2 ?3 j& w& x7 ?
附录E Syser 操作入门 6953 S9 }& D) P3 X9 E- b

3 x+ s4 P5 G, V4 ^; F$ @
) c; B, y6 d! z5 }
楼层
跳转到指定楼层
最佳答案
0 
累计签到:608 天
连续签到:2 天
风吹雨起#泪花落 发表于 2016-11-26 00:13:53 | 显示全部楼层
すごい
最佳答案
0 
累计签到:368 天
连续签到:1 天
x51zqq 发表于 2016-11-26 08:26:25 | 显示全部楼层
二楼,甲鱼兄要出恶意代码课程吗
最佳答案
0 
累计签到:86 天
连续签到:1 天
鱼蛋代码 发表于 2016-11-26 09:51:22 | 显示全部楼层
什么编程语音写的?
最佳答案
0 
累计签到:81 天
连续签到:1 天
ivwdcwso 发表于 2017-3-7 17:41:36 | 显示全部楼层
鱼蛋代码 发表于 2016-11-26 09:51( ]0 m6 H, @+ ]7 `) l1 o
什么编程语音写的?

" R7 a, e0 r, f9 K什么时候出病毒查杀实战
最佳答案
0 
累计签到:10 天
连续签到:1 天
忘仔于心 发表于 2017-6-17 18:04:42 | 显示全部楼层
路过
最佳答案
0 
累计签到:11 天
连续签到:3 天
木土豆 发表于 2017-6-26 21:17:30 | 显示全部楼层
看看路过
最佳答案
0 
累计签到:1 天
连续签到:1 天
今夜无法入眠 发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
最佳答案
0 
累计签到:2 天
连续签到:1 天
xiemianguiwang 发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
最佳答案
0 
累计签到:28 天
连续签到:1 天
上网冲浪做笔记 发表于 2017-10-18 17:34:37 | 显示全部楼层
感觉很厉害

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /2 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-1-18 23:34

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