鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
% _& J3 J& ?- v2 Q! S) |' U) Z
6 D( B) B( t+ q0 s7 j- g
书名:《恶意代码分析实战》
0 F! p( k4 a5 y8 l: _: ^/ T3 u作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
0 }" v5 t  H2 q/ w, a译者:诸葛建伟,姜辉,张光凯
+ R# b# n" M% g0 v/ b+ e出版社:电子工业出版社
/ y. j1 X1 Z! w' ^出版年:2014年4月1日(第1版)
4 E: P- X& @& }定价:128.00元) r0 Q" C2 I3 \( _6 e& u2 r, U' c
装帧:平装% w. S) l" x) A2 Z
ISBN:9787121224683
- T! `7 s* J; M" P3 u5 J3 g2 s: u9 W8 x2 p% b  F
购买链接:5 Q: ?! ]9 Y# B6 e' i* ?
) {( U' o8 t* B% f& m) A


! D* p) ^3 o3 a, h+ Q9 D  B亚马逊 -> 传送门$ D8 x4 o4 w  O* Y3 F

$ _* M4 d1 s+ P1 H4 `) ?$ ?当当网 -> 传送门* ?. a! f# Y7 {& e1 J4 Q+ l4 }

2 b9 I) e: o: ]2 l3 P京东 -> 传送门
0 s- S) h  p, w7 c/ ^# F; j  c/ q3 B4 T5 w" n9 Y! a1 f, H) n) |
天猫 -> 传送门
  N3 g) b4 q" F9 D
* G' J& O% \  X2 c7 n3 V2 y) I& T2 M! n% c
内容简介:
2 G# @( m7 S+ y8 f1 U0 S9 W* V# |) g% p" M4 ~

# w, M- o! H1 G, G. E2 h. r
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。( x/ j4 U$ m" @$ n9 g0 a4 |7 L$ y7 A

5 a# B% q9 ^0 I《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。- Y. [$ D; ]9 g! _, o4 p

  y9 B* E7 T. B针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
- @0 d( Q' q* H! y针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。. Y2 S+ }) K* z8 B- a/ v

" \+ }  H7 Z; N5 w目录:3 j7 X% i: R* n3 E. e
# t8 o* c5 w& [/ l. G! t  J


6 v2 K. @! ?6 r0 {第0章 恶意代码分析技术入门1
: L6 |5 `. F7 S- Y; G" T( @) M. e$ m
9 K5 D$ C' G- Q$ K6 a+ J0.1 恶意代码分析目标1
# K- j. m2 ]3 j4 }, E7 ^* s0 a0.2 恶意代码分析技术2% c0 o* ?9 |% z- |0 c
0.2.1 静态分析基础技术2, Z& u# e: D+ P: ]7 z
0.2.2 动态分析基础技术2
+ ~( x- W9 ~% _4 Y4 c1 [0.2.3 静态分析高级技术2$ \' N& z" |1 r' H+ J
0.2.4 动态分析高级技术23 S8 o8 k: H( s- y$ O3 Z
0.3 恶意代码类型3
2 s' K1 R/ r, U4 G# l/ a- w0.4 恶意代码分析通用规则4
0 ?( y) G) B" M7 ~" a; n; S. E9 X: e* B, t$ e. n
& g3 L4 D6 l" ^: b' |# q" o9 u
第 1 篇 静态分析
0 \+ g, Y/ J! Z9 @
0 M( ^% w1 \& \. m1 ]第1章 静态分析基础技术 6
4 i" @5 Q$ G; o% b, y
9 V, J7 F& a, H( @4 }* h2 M
1.1 反病毒引擎扫描:实用的第一步6
5 B$ |% \* n2 R" ?1.2 哈希值:恶意代码的指纹7$ I/ K! z9 E, w7 |$ C
1.3 查找字符串7- E" r9 t9 F( i# r
1.4 加壳与混淆恶意代码9+ a1 o/ t% Y2 M& x
1.4.1 文件加壳10  u5 R; Z  s  u/ e  G
1.4.2 使用PEiD 检测加壳100 r8 W, M5 T3 Q9 X/ C
1.5 PE 文件格式11
" u  e5 ]6 F9 b# o& G1.6 链接库与函数12
  C9 c2 z4 i) R, E1.6.1 静态链接、运行时链接与动态链接12, g+ `7 d0 p2 S
1.6.2 使用Dependency Walker 工具探索动态链接函数13/ m  J( e6 k  x) e
1.6.3 导入函数14
+ m  M2 D" _" J9 g$ o+ `1 W2 l1.6.4 导出函数15
, J, g( z! M8 T1.7 静态分析技术实践15
, j. ?+ p1 S" x6 f6 c1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
: K# b( h) g. _7 a1 u( ^' C1.7.2 PackedProgram.exe:穷途末路18
3 M5 b  L$ k$ O2 I5 g1.8 PE 文件头与分节18) \& D, J& Q9 K
1.8.1 使用PEview 来分析PE 文件19' V4 Z5 C1 @: ^. R/ B1 g2 v& O
1.8.2 使用Resource Hacker 工具来查看资源节22
0 D1 L. Y8 u7 r$ `" s+ R" D- L1.8.3 使用其他的PE 文件工具23
& _4 x6 t( \9 u, k, \; B& T% Q1.8.4 PE 文件头概述23
) M: H9 M$ w1 T" b  V# Q: ]( y1.9 小结243 V/ o" j9 h& Y; O: I/ R
1.10 实验24' q0 G) G, g" Q0 A4 |
8 j' g6 ?4 K' `* J, ^+ |
第2章 在虚拟机中分析恶意代码 27( V' w# X9 g$ P0 \1 l( t) P

3 F; E, V+ t; g* g9 c# k2 s7 v' c2.1 虚拟机的结构27
% X3 n" Y! t" _7 f5 w; K% H' e2.2 创建恶意代码分析机28! }' x1 x; j5 u
2.2.1 配置VMware29) }7 q" F4 |8 _' `. ^/ r
2.2.2 断开网络30
% s: w  z% g5 z: C# Z" A& L2.2.3 创建主机模式网络30
2 o- a" j, D$ l$ g; m2.2.4 使用多个虚拟机30( p) r5 n9 U2 T, S' N
2.3 使用恶意代码分析机31
- Q; S; Y8 m1 c  i* _2.3.1 让恶意代码连接互联网31
8 ?3 s& O& V7 N& l8 Z+ u$ I2.3.2 连接和断开外围设备32
* U4 v2 @  h, @/ {3 g2.3.3 拍摄快照32
6 ~) _" d/ o' s. V+ D6 E2.3.4 从虚拟机传输文件33
2 P3 L. A: M' r. }7 y% A4 z0 g9 z2.4 使用VMware 进行恶意代码分析的风险34
" J7 t; c6 a, f6 x$ E0 B# m2.5 记录/重放:重复计算机运行轨迹34
  Y) l) I) C9 f. i2.6 小结35
/ Q3 B2 J" k; C" x& l0 ~4 A  \& k4 o
4 m- h3 m5 Z& W) @; Z第3章 动态分析基础技术 36

' W, e# l! P- i6 z" [* G  ?
7 T; x( V9 G+ b: I/ z& B# Q: R! c. c3.1 沙箱:简便但粗糙的方法36
" |  S4 `% X, l# f( O  V, h" J- U3.1.1 使用恶意代码沙箱36
1 ?% c( w2 w5 k2 U3 D3 n. U1 q4 ]3.1.2 沙箱的缺点37
2 `1 H& `/ W: u, a4 T3.2 运行恶意代码38' @7 p/ Y+ f; ^4 D3 D) I2 H( @
3.3 进程监视器39
% X$ z5 c0 s9 S$ h3.3.1 进程监视器的显示40
! N, F9 Y- y+ W* t' [/ f% y3.3.2 进程监视器中的过滤418 s9 O* A" q4 h- n: L
3.4 使用进程浏览器(Process Explorer)来查看进程43! W% ~1 W  [- j- V4 G: h; i9 f0 A
3.4.1 进程浏览器的显示43
, G8 K( ^3 A) q$ Q3.4.2 使用验证选项44
1 ~$ y/ \7 l, ]. n8 E+ s; K3.4.3 比较字符串45
# F' p% P; W% n9 K) U4 j! N3.4.4 使用依赖遍历器(Dependency Walker)45  n1 |  J! s( V6 e* e
3.4.5 分析恶意文档46
8 A: ?& E5 ~' Y# v5 C# r3.5 使用Regshot 来比较注册表快照46
0 K8 r1 E$ J! f$ a: F# O3.6 模拟网络47
! D& Q6 y5 r* \" L& o- Z5 d3.6.1 使用ApateDNS477 Z/ z7 J# q: _# f) D/ w
3.6.2 使用Netcat 进行监视48
2 ~& @# Y' H- j, H' k9 {3.7 使用Wireshark 进行数据包监听49: N  h6 f- `& N
3.8 使用INetSim51' i/ M3 ^/ D0 e& j
3.9 基础动态分析工具实践52/ ?7 A0 u$ T1 C, }$ b5 i
3.10 小结55
* _" q, \2 f/ {3.11 实验56) W3 ?9 h( o- Y. h- A
6 {- L1 K  b1 F, j1 L

# H; F0 Y8 ?1 a' [第 2 篇 静态分析高级技术篇
" C# ^/ K$ {: {* a4 D/ z5 P' ^' S! F8 C5 {
第4章 x86 反汇编速成班 60' F4 {. h0 e! ]- B
- Z4 _; s7 L8 F4 m* C; u
4.1 抽象层次60  H. g3 ^' T2 n4 R0 R
4.2 逆向工程62$ @5 V) U% K0 s" }# P; z
4.3 x86 体系结构629 p3 o1 C6 F) \$ v& k' \
4.3.1 内存63
* x/ i# |0 Q6 g8 G  Q4.3.2 指令64+ t7 s& i6 u: D/ p6 D( A3 {- h7 R
4.3.3 操作码和字节序64+ j9 Q" @6 m& y
4.3.4 操作数65( W& M9 h! w: |0 }5 }1 m2 u* v/ N
4.3.5 寄存器65
& S/ f8 e+ {% v0 J+ n4.3.6 简单指令677 S3 p* Y0 N; A- W3 D
4.3.7 栈70
! V* O; W" R* Y, t- r: ^$ V) ?( E4.3.8 条件指令73
4 Z( z" r9 C6 K, H: M/ B$ D4.3.9 分支指令733 u  S& F& j, X$ s6 X  ?7 |! z/ e' f
4.3.10 重复指令741 R0 K' H7 q" }" @' a2 M( z2 ?. ~
4.3.11 C 语言主函数和偏移76
; g5 K* J$ `+ i% z4.3.12 更多信息:Intel x86 Architecture Manual778 T0 L& X5 N+ A( I6 a
4.4 小结78
$ m+ \% `0 i% Y( c* i( |$ X1 B4 c. K6 ^+ G% b; v. U7 ~0 t0 _
第5章 IDA Pro 79
% }4 e7 w4 v3 }6 P* ]6 J4 _8 _( j; J
5.1 加载一个可执行文件79: m: v' g5 u( I- m* }1 I. t1 C  }
5.2 IDA Pro 接口812 O) h" v, Z7 f' g# ~% [* P1 t5 m( k
5.2.1 反汇编窗口模式81
3 }, R! g: |! p) R5.2.2 对分析有用的窗口83
2 k* w% a* P  r$ e4 \7 Y5.2.3 返回到默认视图83
& V7 H; y* F& c) U/ h" [. \" `6 L5.2.4 导航IDA Pro 83
: |9 j$ K6 m% I5 O5.2.5 搜索85
) T  F; _. H. d  d9 M5.3 使用交叉引用868 f7 l3 w! V6 l- a2 T0 H1 Y
5.3.1 代码交叉引用872 [: ~3 N! t3 v0 S' K' h
5.3.2 数据交叉引用88, k; y2 f& k/ x. _/ W
5.4 分析函数88
4 w4 [& @* t1 E% x1 x% D* J& e5.5 使用图形选项89
$ N' v( M0 t* M- v5.6 增强反汇编91; t) M' K7 m# Z# P8 W
5.6.1 重命名位置91" I0 t8 G3 E5 a# y8 x4 @
5.6.2 注释92
$ O# T6 B, y! e. O- @; Y% Z6 v5.6.3 格式化操作数92
9 Q% T! V3 U. r% o" l3 y/ [7 t5 a5.6.4 使用命名的常量93
5 W% \* U9 b; y6 M7 c7 P5.6.5 重新定义代码和数据94) `' p! _  ~$ o9 E6 q
5.7 用插件扩展IDA956 c2 B# J7 X+ M
5.7.1 使用IDC 脚本96
- e' y# m# {" P3 i- ?5.7.2 使用IDAPython97
8 S+ P& P. O  Z3 x5.7.3 使用商业插件97  |3 X, n/ d* [0 T
5.8 小结98
! ?! J. T/ x+ _, I5.9 实验98
1 e# t  {% h7 i1 K8 z1 D3 s
4 Z5 h" Q7 m' E2 T第6章 识别汇编中的C代码结构 100
3 m9 k, A. g8 S) z
6 [9 O) q9 F, r' y8 v
6.1 全局与局部变量101; T* d$ t: [7 {
6.2 反汇编算术操作102
. ^5 M: W7 P( C1 s/ H6.3 识别if 语句104- x7 j! m" t- i" s2 Q% C
6.3.1 用IDA Pro 图形化分析函数105
+ y5 y3 }4 Y7 c. ^) u6.3.2 识别嵌套的if 语句106" j5 x4 c6 |5 Q0 W
6.4 识别循环107- s# L' k  J' H' J
6.4.1 找到for 循环107  N8 d' ^" }3 j, K4 m
6.4.2 找到while 循环109
3 A- n) G- r& C) P8 W6.5 理解函数调用约定1108 v: F  C' _/ F4 e, }' V
6.5.1 cdecl1102 [6 `) w3 t" C1 x; s$ X3 y* e+ B
6.5.2 stdcall 111( \+ S0 I- a3 _. l
6.5.3 fastcall 1116 G& D3 j* j8 H' N* j( t3 B
6.5.4 压栈与移动 111
. h: f. g% @7 M* [2 E; }6 t( c: @- Z6.6 分析switch 语句112% J3 L' e: a9 ]  k' [4 J+ d
6.6.1 If 样式112
. }# |( p& l: X) I6.6.2 跳转表1144 t% u4 Y# I" a4 i0 V& w
6.7 反汇编数组118/ k9 x! z. k% ?" G, O3 [' n
6.8 识别结构体119
5 W* M( `- E& ?1 u6.9 分析链表遍历121
% W6 O; o& w* F1 Q  ^8 f6.10 小结123& C5 |2 X; O  @0 ~
6.11 实验123$ p$ {" d) S6 m+ v# M

* t  \+ I2 C  F5 l6 }- B  i第7章 分析恶意Windows程序 126

! J3 Z6 W' A  w' a$ ]1 _& ~# m* p% H( ~8 u! W7 x3 b% F2 a
7.1 Windows API126# T" ^* q) Q! A$ q; Q/ G/ J
7.1.1 类型和匈牙利表达法126
2 B; S5 K8 Z8 a, H8 i9 j. b7.1.2 句柄127
, U' G! L: c* O& L# N3 t1 G7.1.3 文件系统函数127: k" s+ [# ~$ N* ^: W
7.1.4 特殊文件128
: P- N7 a" T3 \; t' ~* q7.2 Windows 注册表129* X6 m: L. I9 ?
7.2.1 注册表根键130
5 t' G+ r! y/ w! _$ n! J7.2.2 Regedit1312 W, t0 M0 M- ?3 M4 e/ j) z/ F+ _
7.2.3 自启动程序1319 u7 Y, y4 ~6 K
7.2.4 常用注册表函数131
) k! S, u7 t" d/ s7.2.5 练习分析注册表操作代码132
+ L) V7 k( ]  a/ t6 N( Z7.2.6 使用.reg 文件的注册表脚本133
8 X0 u; b1 q$ x( N2 W* [6 ~- v  w7.3 网络API133
+ J# J1 U0 W! X6 s7.3.1 伯克利兼容套接字134
; @: C3 b/ i6 n& b+ p5 J$ _& O7.3.2 网络的服务器和客户端1340 U+ v! r2 y$ h# `
7.3.3 WinINet API 135! G+ g3 ^  r$ k. c  M( Y
7.4 跟踪恶意代码的运行136
/ s. z$ W- U) |( @7.4.1 DLL136
) \3 S* ?: M2 A( X" l1 p9 V7.4.2 进程137
& r3 i2 T# n9 X; G  l+ r3 O5 U7.4.3 线程1394 |' B( Y& k0 p( Q
7.4.4 使用互斥量的进程间协作142
7 v' k: Y4 c+ D: a8 y5 k7.4.5 服务143
. O+ @- X2 e) A- T8 C7.4.6 组件对象模型145
# V8 i9 `" h& u" q8 }+ m7.4.7 异常:当事情出错时147- s5 I' E/ z; f9 A  M
7.5 内核与用户模式148
1 T- @+ D" G* ]7 \" j5 `% C2 E7.6 原生API149
# }5 C$ d. `& O4 M! t! [7.7 小结151
# g) b# J0 P; q7.8 实验151
! I! V- k5 A& s/ }- [6 |, F& M4 \, b' c

$ o  c9 \- g$ B, }6 ?3 z第 3 篇 动态分析高级技术篇
: x/ B0 n& q4 s# r& w4 [% ?8 O6 ~% @* \- }: O. r! ~
第8章 动态调试 154

$ y  {& B+ I9 V/ [5 h, a
9 f$ I9 Z! Z+ K% r0 r* G2 k4 M8.1 源代码级与汇编级的调试器1543 a. v5 y: t. @2 I
8.2 内核模式与用户模式调试155! R; o) A1 \3 i. y# z" H
8.3 使用调试器1558 f# R8 a7 \, M
8.3.1 单步调试155
6 F' j$ O6 u0 P9 o7 Q8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156. Z/ ?. u% o7 |$ M0 r/ P
8.3.3 用断点暂停执行157( o) C4 [; K. I  ?; {
8.4 异常161! s- _2 T+ b( A+ {$ T" J) A
8.4.1 首次和二次异常处理1629 ~' y2 M/ S$ x2 J2 [& O4 Z
8.4.2 常见异常162& o$ j' [! R6 c+ V0 i7 f
8.5 使用调试器修改可执行文件163
9 v2 U( ]0 h: a- G4 Y% |2 E4 _$ q8.6 修改可执行程序的实践163( u, |  |1 L$ A0 J- C
8.7 小结1645 @7 r' E' ?5 Y
5 S: a- E9 }4 I# J1 e; v: j% X
第9 章 OllyDbg 165

. F% p5 i8 y, a* j* d& F" w7 q+ W
, H4 C2 R5 O$ h' i* C! y9.1 加载恶意代码165! \5 t0 v2 M" i( o5 Z' J, C0 G
9.1.1 打开一个可执行文件1653 b1 `) |; _* P. X1 E. Y4 s
9.1.2 附加调试器到一个运行程序166
4 U- u  _2 C: `) \; q9.2 OllyDbg 的接口167) H* r/ b3 _% ]4 O1 I
9.3 内存映射168
9 p  j: R! q! k* k9 T3 z0 C& @9.3.1 基地址重定位169
3 T; {  C# U( w& X7 @6 W* s( ]$ o9.4 查看线程和堆栈170, F8 X, R% K! o  j6 ]- E
9.5 执行代码171- `7 X, J" `/ c- @! z1 g1 v
9.6 断点172
0 X! u) d# R' _) ?5 T# O9 H9.6.1 软件断点173
9 q. X9 D+ f1 a( A9.6.2 条件断点174
! ^' x( B! b% i9 J6 e9.6.3 硬件断点175
1 q, T4 w) H! F" ~9.6.4 内存断点175
, |8 k+ `4 _: o9.7 加载DLL176
" W" [8 U9 E2 i+ t  G8 g$ u9.8 跟踪177
# n. C; S# t7 x1 b- J- C" K! d9.8.1 标准回溯跟踪177
8 e- x& o0 k1 A" K  |5 Q9.8.2 堆栈调用跟踪178
1 A% r& i: b6 R5 q9.8.3 运行跟踪1780 @' k9 j6 w- T' @* R9 T$ L
9.8.4 跟踪Poison Ivy178
( B  w) q$ r) t& o9.9 异常处理179
4 ?$ a4 p! j* j5 m# U  M9.10 修补180
! v) o; z" Q) J1 p; b- R- m* N9.11 分析shellcode181
! m) e3 k- O9 X% V9.12 协助功能182
/ _( }/ R1 e! c' U2 \0 \  A  L0 c9.13 插件1829 Q1 ]; m) t/ Y  u* p& C' Q( A
9.13.1 OllyDump183
4 o. @5 D. Y: W) U9.13.2 调试器隐藏插件183
, q9 h1 [6 \; O* l. M* C4 T9.13.3 命令行184
+ {9 P7 P2 \2 @8 W9.13.4 书签1855 ?! n& {& \' ]# A9 K6 o  r
9.14 脚本调试185/ T: ]2 H5 a# y. ~# U7 S3 g2 u
9.15 小结186
2 q; \$ i8 |4 K2 p' S4 K) _; k- M9.16 实验1878 ~8 _& Q# z5 n9 Q( q( j
/ A: S8 a% p2 n) u( o; A- v- ?, y
第10章 使用WinDbg 调试内核 189* Z5 V+ {! G: G/ ~
/ N/ C, ?) Q6 [, I! ^0 n6 Z8 b& i1 M" ^
10.1 驱动与内核代码1891 }6 u6 h8 n' O; \% o& y
10.2 安装内核调试191
& t- a5 L' T, w, ~10.3 使用WinDbg193
$ J9 y* K; s& ~  n: K/ @10.3.1 从内存中读取194
0 U( U5 h1 H; e" I10.3.2 使用算术操作符194
/ Q9 q; p$ q* g5 l" G10.3.3 设置断点194( r) o: K6 W# l: ?' g) \# X
10.3.4 列举模块195
) \- @8 X  o) W1 L10.4 微软符号表195. A/ {3 h3 a+ _
10.4.1 搜索符号195
. g- x6 ~$ [" n5 d, O* _10.4.2 查看结构信息196
. _5 N2 U  g/ i' }9 c3 u7 c10.4.3 配置Windows 符号表1983 S/ n0 J- {. l6 y; f$ j
10.5 内核调试实践198
# L+ K" b( C0 C5 ?! S1 B) a10.5.1 用户空间的代码198* i* U& G6 a# a0 g' {
10.5.2 内核模式的代码200
# x( b6 U/ |/ X10.5.3 查找驱动对象203
( w( R) {0 G' h) @: a10.6 Rootkit204
( F! J5 B, J  `) y3 ?) S' X: A10.6.1 Rootkit 分析实践205
% m- `; I, N5 T# N10.6.2 中断2089 i, f5 n5 P' F2 M: u
10.7 加载驱动2091 _( F; O3 O1 p" o7 Y2 Y
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
; B7 U  `$ g; ~' R& R& |+ n10.9 小结210
6 d/ d! B: }5 Z5 N! u4 f10.10 实验210" S( J2 k; n+ @( a$ M- f
9 m6 E) J. z% ?* O$ k8 A! g! w* e" O

( J% b$ C8 l" s; A5 i9 R第 4 篇 恶意代码功能篇& [4 E1 b, }: g* t) ~7 t1 r
0 I; ]/ g+ C& m
第11章 恶意代码行为 2140 u$ _) C# j/ {/ h! A0 K, w

9 x# A( c  i2 p* W+ o11.1 下载器和启动器214
* @% F  S5 I; H, ?/ R; S' @$ u3 l4 r11.2 后门(backdoor)214
  R' o: V7 R" l$ q11.2.1 反向shell2153 c/ v, n% ~. O7 b6 G
11.2.2 远程控制工具2164 Q. ^" R1 S; O/ H
11.2.3 僵尸网络216
/ Z# a. j6 I) _- t11.2.4 远程控制工具与僵尸网络的比较217' Z* K/ @$ m! v6 b% k' \. W
11.3 登录凭证窃密器2175 c% H8 q( I5 }& l% x  b: @: O6 B
11.3.1 GINA 拦截217
2 e- B: x2 }/ l" q11.3.2 口令哈希转储218* n  M+ d+ {0 s6 W
11.3.3 击键记录221) h: E" t, U6 H
11.4 存活机制223
( {% P# B1 {& D9 z11.4.1 Windows 注册表2238 }3 J& ^1 o# [: W, w$ M0 y
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
) f2 H3 f' U, w; W8 w11.4.3 DLL 加载顺序劫持227
- E- w0 e/ ?5 Y2 Q6 N( Z1 L9 L11.5 提权228# S; v! S) w4 Y5 a
11.5.1 使用SeDebugPrivilege228
) \% M6 d- T! P' O1 h) C11.6 隐藏它的踪迹——用户态的Rootkit229
  M$ }! q! E  n11.6.1 IAT Hook 230
% p7 }2 ]* ?8 M/ ?% s% U11.6.2 Inline Hook 231
( @, I& D% A% T& T9 J11.7 小结2323 G- S- z4 v4 v% s
11.8 实验232, V% q% \, U! a) U0 |) E

: m1 g4 W+ S+ k9 ^: [  Y8 U) N第12章 隐蔽的恶意代码启动 234; u6 ?4 Y" W; f% d1 n
6 w) E! p) n# W1 i: ^" A
12.1 启动器(Launcher)234
8 I( q  m  o+ T# H12.2 进程注入234
# z' H4 K% V$ C  R% V0 v1 i2 M5 b12.2.1 DLL 注入235" X) s+ |1 C2 r$ j4 O
12.2.2 直接注入237
) S5 h9 `3 k( ~3 r* Y7 N, I12.3 进程替换238& p- h$ A: V0 U: }
12.4 钩子(Hook)注入240* N% B+ `* e( Q$ k7 l: Y9 r
12.4.1 本地和远程钩子(Hook)240
7 t+ v6 `' L; ?. t12.4.2 使用钩子的击键记录器2412 x4 N7 x8 E1 ^1 o8 \
12.4.3 使用SetWindowsHookEx 241, O  Q% k6 z1 S2 F
12.4.4 目标线程2414 X  x$ p" X- `8 d2 `; j/ Y& i
12.5 Detours 242
$ S* p# K+ X0 O7 ^; m12.6 APC 注入243
4 a4 c- y" q  }12.6.1 用户模式下APC 注入244
. A  O8 j' L/ ?( [" T; W# c" d12.6.2 内核模式的APC 注入245. i9 A% U9 t( T8 W$ j2 z: e8 Q! M5 Z' u
12.7 小结246+ |7 @. |) Q& U1 s" N; P
12.8 实验246# f* i* x1 d; a0 Q' Z6 I  t7 ^$ k$ N

4 e2 {. v9 ~  d# v* N" U/ _! A  U1 H第13章 数据加密 248" v9 G+ p/ R6 o8 o# E" M- S

! R/ {  c8 `' ]" q13.1 分析加密算法的目的248
* B0 |# C* R% L+ g$ R7 V; t6 s13.2 简单的加密算法248" a$ D1 W& `! k
13.2.1 凯撒密码249
1 r7 w4 `! c! s" C7 v* o8 o5 _9 `13.2.2 XOR249. m: a5 G, y# |2 Z/ s9 }
13.2.3 其他一些简单的加密策略2542 Z1 t1 [# ^# e4 a! p
13.2.4 Base64255  i! p- P" l) {: U& O3 k
13.3 常见的加密算法258  w! C7 V3 v0 Y/ y! N% Y' H
13.3.1 识别字符串和导入259
  B3 m8 K. s' i* A) ^' ?13.3.2 查找加密常量259% F3 W: @, {* V. C6 f
13.3.3 查找高熵值内容261
0 {  L3 I- e6 `5 Y5 X13.4 自定义加密262
0 q. u! y6 p4 _* {' F13.4.1 识别自定义加密263
* Z9 r+ ~  q5 Y( H' {2 E; N13.4.2 攻击者使用自定义加密的优势2654 _, \6 l( z6 y5 I6 H, o
13.5 解密2657 g2 X5 z  V; s5 U& K/ J2 H
13.5.1 自解密265& E; S4 M$ R" Q% S) R2 s: J' G
13.5.2 手动执行解密函数266" _8 i4 l+ r! |' n/ T. Y
13.5.3 使用通用的解密规范267  z6 B1 b: I& f# v9 c* s* C# V6 `
13.6 小结2703 }7 r& w: Z! d6 _+ G  G6 S
13.7 实验2715 p. d! s& e% n2 O- w. q
3 U+ \& A% M' p
第14章 恶意代码的网络特征273
. j2 c' U) r4 V6 ]2 [, q# I3 f+ i
1 E: r! D9 a8 L  U* H7 \# p1 l$ z14.1 网络应对措施2736 E+ L/ m$ W4 j! O( p+ M9 r
14.1.1 在原始环境中观察恶意代码273; r  V% Q, R8 Y$ ]0 R! `# K$ U$ y3 e
14.1.2 恶意行为的痕迹274' e% z8 }* }# U5 Y3 n) C
14.1.3 OPSEC=操作安全性2754 Z) g+ G8 q0 R4 @0 e3 P
14.2 安全地调查在线攻击者275  l4 I5 C. }& A$ \( J+ {) M! U. I
14.2.1 间接性策略275# T* `2 ]' x, E
14.2.2 获取IP 地址和域名信息2766 Q- D  t8 {3 |8 u2 n/ i9 n
14.3 基于内容的网络应对措施278# }" O6 h* [+ G8 X
14.3.1 使用Snort 进行入侵检测278
$ P: |0 ~* F" Q- f7 e% j+ U14.3.2 深入观察2796 X7 E; `6 `) X. w: _/ Z* x: m
14.4 结合动态和静态分析技术282( J1 l$ h$ m5 c
14.4.1 过度分析的危险283
; d  h( t, J1 J& O+ A14.4.2 在众目睽睽下隐藏283; n: a) F2 t( v
14.4.3 理解周边代码286, o# C! L$ S3 @8 L
14.4.4 寻找网络操作代码287
( {  A$ u+ i# r" D2 A3 P8 O) j) A14.4.5 了解网络内容的来源288
. T- P# k- D4 a$ ?# n1 Y- D14.4.6 硬编码数据 vs. 临时数据289
. R8 M. }: b3 L- [14.4.7 确定和利用编码步骤2892 v& ^( E; ?1 o" R" q% l4 y
14.4.8 创建特征291* s+ V  W" x) K5 b- _1 b: T
14.4.9 分析解析例程292
2 p- q" j3 ]* O! Y# v14.4.10 针对多个元素294
9 E+ j8 f) C! S% T* T3 j/ O14.5 了解攻击者的意图295% S( N- @1 i! U! V! H8 Y
14.6 小结296* L$ w* G. J- k3 k( f6 F. C: }
14.7 实验296: \2 M" t1 ]" I

1 K! o5 l( N: G" t/ c
8 d# T7 d' a: ~# W* ^! H$ v第 5 篇 逆向工程
7 ~1 u5 C; V+ t. {( k
3 Q' N$ z8 |# h8 n% f. K第15章 对抗反汇编 3007 f. u& C! U, m! C7 b
: c" ^" R2 M% `+ L4 q8 X
15.1 何谓对抗反汇编技术300
, t) H: E4 C: D. O15.2 挫败反汇编算法3013 O5 t5 c1 N. u' A
15.2.1 线性反汇编302' Y; }" w: t& s. C/ E* J2 G
15.2.2 面向代码流的反汇编303
* ]: f# f  }6 H. N0 c15.3 对抗反汇编技术3063 |2 {: l9 H( g
15.3.1 相同目标的跳转指令306: E; a8 f6 {! R; F8 s# E
15.3.2 固定条件的跳转指令307
1 p( {' ]0 r' x' i( S15.3.3 无效的反汇编指令308
, H1 j# _" q4 x# t) E& h# Z$ f% J15.3.4 用IDA Pro 对指令进行NOP替换311# c0 _, s" O/ I2 d- E8 C
15.4 混淆控制流图312
" r6 P, ]2 M4 n* }. g! |$ k15.4.1 函数指针问题312
" B# l1 `% a' @% L/ W" ^15.4.2 在IDA Pro 中添加代码的交叉引用313, r7 G3 X& I) j6 x" {2 {* L
15.4.3 滥用返回指针313# W$ ^( m2 H+ D+ z$ H$ W5 m2 L+ t
15.4.4 滥用结构化异常处理315
8 ]( k& I* l6 w$ R15.5 挫败栈帧分析317
. f2 |: p( k" s15.6 小结3200 k. p4 A0 L5 _/ ^
15.7 实验320$ M% f/ `9 a" v9 g6 D6 L

4 L( X  g; J( G& O+ A+ J第16章 反调试技术322
0 |/ Z% {( R. P! z! A4 X
; o" w( q+ J7 e6 o6 g: E16.1 探测Windows 调试器322
- V8 v3 B7 z6 x( D0 N" ^5 i: y16.1.1 使用Windows API322
4 K4 F% v& a0 _' J# m4 V1 s16.1.2 手动检测数据结构324
& q; P9 P& {- N1 r16.1.3 系统痕迹检测326
, x  Y  [: D' L# y7 W7 x9 e16.2 识别调试器的行为327
3 G" Q% p7 Y! C- a2 W16.2.1 INT 扫描327
2 _* r6 v! D8 K, y( b16.2.2 执行代码校验和检查328
$ ~0 G6 n3 C. Y* P16.2.3 时钟检测328
6 j9 v  A2 B4 G. \; J16.3 干扰调试器的功能3306 ?) L" a9 r, Y5 m
16.3.1 使用TLS回调330
6 p% X5 G: C- W' E! ?16.3.2 使用异常332
- R/ [8 U: ^2 E; Y$ h7 k) m16.3.3 插入中断333
0 Z' i. k7 x: x, t4 \16.4 调试器漏洞334
- v1 e1 b$ C2 t7 ~( E16.4.1 PE 头漏洞334$ F6 S6 c2 i+ u$ u7 D1 @# ]% H
16.4.2 OutputDebugString漏洞336
# o: Z6 t6 x/ u# r4 E. a16.5 小结336. t! u4 d9 \; X+ R# `- c
16.6 实验336- V# E2 {: t6 o/ }. X) f

- O& T% i6 y( W第17章 反虚拟机技术 338
* u, m: @7 H) T3 o: ?
% V: W% B$ s5 r3 p7 q  ]/ \1 c17.1 VMware 痕迹338, A7 ^3 v2 }+ O/ o- T
17.1.1 绕过VMware 痕迹的探测3407 y9 M. L9 H& g/ q5 `9 h
17.1.2 探测内存痕迹342( O) M5 z+ w  s0 ]* k' o0 {
17.2 查找漏洞指令342! J, U: p6 W0 R9 W9 }6 @
17.2.1 使用Red Pill 反虚拟机技术343
; T" Y( m6 w0 F/ t17.2.2 使用No Pill 技术344
2 b% L* W6 R: x1 i- w' _* W4 T17.2.3 查询I/O 通信端口3449 a2 V# v0 n) v
17.2.4 使用str 指令345# d1 e; E2 D( T2 e
17.2.5 反虚拟机的x86 指令346
  o* m$ _- L3 f; M  I! B/ l+ D9 E17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
+ ]8 g$ f/ j# |, L( J& n17.2.7 使用ScoopyNG347
* w/ q4 I) K+ i- e. h17.3 调整设置348
( B1 T4 w7 b" D1 _( Z1 s2 S+ X17.4 虚拟机逃逸3491 Q$ _; C- c8 u6 J
17.5 小结349
7 L3 J6 y1 t- x17.6 实验349, V" E8 N0 G# b* w+ Z! p# y

3 Y; u4 _1 Y5 X4 P7 K, a第18章 加壳与脱壳 352& d! |& s  @& a0 X' p

/ m1 ]* Q% P8 f6 X) P# s* k18.1 剖析加壳3521 J% O% `' O) s2 t% X
18.1.1 脱壳存根353
& _/ L1 G. @5 f6 f18.1.2 加载可执行文件353
9 F+ b) d7 w& E% U  X18.1.3 解析导入函数表353' U. x% O( D* N& z  q4 x
18.1.4 尾部跳转354
8 r2 O1 e& r! D  U1 u) R  y: I8 H18.1.5 图示脱壳过程354
; |6 _& w  Y" p6 x6 h& j18.2 识别加壳程序355
& h' w! K& T7 l% n0 ~4 ^6 Z18.2.1 加壳程序的标识355' A) F& N) e' k- E3 w6 `
18.2.2 熵计算356
0 w" P* D' D5 [- i18.3 脱壳选项3568 f1 S) D& Q) w/ U5 D0 S+ e4 O
18.4 自动脱壳356- N1 m$ H  }, E. h8 g4 {$ {
18.5 手动脱壳357
0 l$ o) N# ]5 g: u1 W8 j: n18.5.1 使用导入重构器重构导入表3589 x$ J6 i  O$ D
18.5.2 查找OEP3590 o, R" @! G9 D: u
18.5.3 手动修复导入表363
3 c$ B" y7 v1 ?2 |+ M$ {18.6 常见壳的技巧与窍门364
/ {& ^1 B3 x; ]. l18.6.1 UPX 364
* L1 P, o/ J# |; A, G8 N* s18.6.2 PECompact 365
* }/ q" H6 R5 ~) U7 A0 u9 b18.6.3 ASPack365
$ e+ Q! |: J2 S5 r18.6.4 Petite 365
/ N* B6 ^1 m" g4 P7 q18.6.5 WinUpack 366
& c. Y2 h6 w7 X' d18.6.6 Themida367
1 P9 k" _- f3 m! b: |* {18.7 不完全脱壳情况下的分析368
; x8 u, k' E: ~) {3 I  a3 A. V18.8 加壳DLL 368
. n- |  m, N" H' K1 y' `18.9 小结369
& j' q5 E$ O$ Y! Q) x$ s$ ~18.10 实验369$ K8 V0 X, B7 O9 d9 Y

. }5 e' _  D1 J: X/ U( g0 k$ n' m( x" `- d6 k
第 6 篇 高级专题1 J* h. i2 K. i0 i
+ Q+ T) ?- a9 Z2 q2 g# P- S8 Q
第19章 shellcode 分析 372) P9 g& |! `3 @* G2 T
% J: m/ S9 I2 O7 g0 |. l9 r7 w# Y
19.1 加载shellcode 进行分析372
  J2 B+ @$ v7 O# k  N19.2 位置无关代码3736 _& s3 u: I, |: k
19.3 识别执行位置373
  P) Q3 R& L& \- `, \5 p8 D. U) j+ ~9 b19.3.1 使用call/pop 指令374
% r% B/ }6 P2 U- M0 T& K1 C19.3.2 使用fnstenv 指令376$ C$ s1 ?; {( c5 Y5 K
19.4 手动符号解析377! v; ^4 q. R4 |0 B
19.4.1 在内存中找到kernel32.dll378; {; _9 M" K. t* [5 p5 R
19.4.2 解析PE 文件导出数据380+ p) Z; ], I( r8 q, y8 Z
19.4.3 使用散列过的导出符号名382+ S. m/ T7 w2 R* Y. ]' V
19.5 一个完整的Hello World 例子383$ [7 P5 a" S# M+ w7 N2 |+ ^% d
19.6 shellcode 编码385, J3 O" a0 O  Z% e- }* i
19.7 空指令雪橇387& ~1 \& p" f, w4 G8 `5 _2 B
19.8 找到shellcode387
' j' L" F/ C4 o" \1 ^19.9 小结388
6 M  B5 U4 P, X. M& `19.10 实验389( v1 K6 g, k. E. A$ l
: c5 I. N) y: @+ k2 d" n
第20章 C++代码分析 3918 s' J2 p+ R% c" o7 X2 y
8 D: m6 R" Q3 G  k0 {, j3 S% h+ Y
20.1 面向对象的编程语言391
2 h' c* F. W/ ~1 l20.1.1 this 指针3929 z+ q, d5 C3 W9 W4 D+ m$ s
20.1.2 重载与修饰3948 ~& ^4 Z* L1 G; D- F9 A! t& o
20.1.3 继承(Inheritance)和函数重写(Overriding)3951 s( W& o& U, F! z
20.2 虚函数和非虚函数396
( N* l) h) G" t6 H20.2.1 虚函数表的使用398
( \& J( H+ }* }20.2.2 识别虚函数表399
* ?4 O3 x# A" C% S) e" ~6 w20.3 创建和销毁对象4003 ~7 @7 @) q; V5 d# u9 T
20.4 小结401
& t+ A/ H# V) C( Z; @3 u. q0 f20.5 实验4011 D1 \( R1 K  x. H' h' b( ^

1 f' q' @1 v  x: _& \8 W第21章 64 位恶意代码 403
$ q' i  k  L0 z2 Q6 W1 R& P6 ^; v1 P' }/ x
21.1 为什么需要64 位恶意代码403' m6 z" K- W3 ?, d
21.2 x64 架构上的差别404
% k, K- b# f/ {  y6 ]' T$ z' g21.2.1 x64 调用约定和栈使用上的差别406
7 o2 K& H5 Z# H' @2 e1 m8 J+ x& ?21.2.2 64 位异常处理408
; i9 Z1 S" i/ |  V  W" ?! s* j/ U# c21.3 在Windows 64 位上的Windows 32 位408
' S4 K% e, o6 O" C  c1 @3 [  x6 y21.4 恶意代码功能上的64位提示4095 x7 ?* @# `8 k; s( n
21.5 小结410
( r+ O4 k2 h3 N/ g' ]. `" H21.6 实验410
2 P- B1 d% h: E) h- R
7 N% U& V  B% ]# L' k附录A 常见Windows 函数列表 412
( ^# R% n" F6 T4 Z& e5 T; y5 @3 _/ x' W2 D0 N6 `( Z: `: H
附录B 流行的恶意代码分析工具列表424
" A3 i, J3 ]+ {8 N6 a/ E: x/ m: R9 e* P& a3 M" c+ {" s3 w$ W
附录C 实验作业参考解答435
; Z+ T2 O- R4 m7 r1 M. ]
" X2 }  L1 v0 Q$ x: c1 b; h- D附录D 致青春,基础软件开发的中国故事 691
. K& h6 @4 {6 l+ b4 j
. r. R0 [3 i5 `% R4 p附录E Syser 操作入门 6951 c; y6 ]9 d2 Z0 G
5 q1 _3 x4 P2 B' J" J0 {* I
2 B) ~+ c( o0 [& i2 O* k
想知道小甲鱼最近在做啥?请访问 -> 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( Q) U4 o5 J/ n8 w, ?, l
什么编程语音写的?
3 |& x5 x/ v8 t* p! {$ W/ Q% a
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-8 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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