鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
& r  w+ g9 V* F5 i8 X" _+ Q

/ `1 U+ B) g) _- k书名:《恶意代码分析实战》0 S7 u" K6 L" l
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
, R2 N4 T$ x! @# @, o译者:诸葛建伟,姜辉,张光凯 2 Z. R+ Q* g2 F8 s; |9 z
出版社:电子工业出版社& E2 T9 T! K! a9 j8 Y# p& f  s
出版年:2014年4月1日(第1版)% u3 j) P' A5 f9 f8 ^1 x: I+ c. @4 _
定价:128.00元
/ V9 r& Z0 |0 n7 h0 q$ ]& Q' L; e% T装帧:平装
8 F5 f# g( w8 M8 \: eISBN:9787121224683: f  |: ^' Y  I& p) s  x* a
/ i4 w+ Z$ V' A0 x2 k& }/ w
购买链接:4 Z; W  _4 A; {/ `) y  v0 H; o) W
  G+ C) Y0 r0 m


1 m3 h2 X' r' M  l* k/ C% m亚马逊 -> 传送门) W+ k# Y5 y, T; G
& J) e+ k2 j) s, ~7 u# U- E
当当网 -> 传送门( x- B+ z! I3 R$ `; ~/ i

# H( O; u9 x% m1 Q2 ?$ C+ u京东 -> 传送门
0 v; Q1 Q; u* O  Q  j
/ w0 ^$ F! a& V) u1 Z天猫 -> 传送门+ q( K. t# R8 F6 j( X

7 ]7 o- P7 ~" f* ]( |
5 C* |* j# y! M+ y4 A内容简介:
/ I( V& [! S$ L  Y( w" v6 k& z, q% V0 @+ V3 ]. P* R; O


3 X* }& f4 A$ T5 k+ L《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
! d( x- s6 x2 c, y) K9 v% m8 H
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。' q  H7 e( A( f5 F8 Y5 [

) \# g5 ~1 Y. A针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;& H& Q% t  ^( [  g
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
: ^2 Z, P& t3 d' j0 [6 y: ~' w
/ v7 ?8 l/ K) W! B2 A4 ^5 J目录:2 A" Y& V% K/ F+ }6 l+ K7 G- U' J

! ~) E: q0 j8 ]; ]8 H1 T
- q: O7 s$ P* V2 K' l5 M
第0章 恶意代码分析技术入门1
! A! H5 y- E* A; j/ P9 c6 z7 l$ K" A
! {; o2 \( j$ q' i4 b0.1 恶意代码分析目标1( t/ Q5 o/ L& I( ]
0.2 恶意代码分析技术23 Q$ ?& H3 V/ H9 |$ H$ H: M
0.2.1 静态分析基础技术2; |2 a5 G4 j  R: r: o9 D
0.2.2 动态分析基础技术2
* y- j# B$ [( h% J( X# _. A0.2.3 静态分析高级技术2( W2 j& F) D7 y0 v: I! `* R. d
0.2.4 动态分析高级技术2
6 h1 s" Y. S. m, }0 {0.3 恶意代码类型3$ k' D1 N! \, M5 S3 J
0.4 恶意代码分析通用规则4
+ F# ]! G) e0 }0 [1 e# ]4 @8 \0 r9 S% s! Q7 Z% @

1 M  d2 o/ |% L, n  {第 1 篇 静态分析
4 Y3 u) z. G# a1 c; t' j6 S  w' _9 e5 F! K: e
第1章 静态分析基础技术 6( i7 E3 L, K8 M6 o

. o3 W" B2 P* r( I+ N" S( ~1.1 反病毒引擎扫描:实用的第一步6
9 q" Y: V6 u; b, k: P* X- a9 D7 R1.2 哈希值:恶意代码的指纹7
$ j" V9 V3 k; E1 {6 G" j1.3 查找字符串7
. P, P2 O+ j* v7 q# m# q6 W1.4 加壳与混淆恶意代码9# _+ |  b* z' }6 Q
1.4.1 文件加壳109 Y# [; H& N; g
1.4.2 使用PEiD 检测加壳108 S$ Z9 n7 H+ K  f
1.5 PE 文件格式11+ ^. ^. w: g8 G  Q
1.6 链接库与函数128 d+ x3 @, v# t
1.6.1 静态链接、运行时链接与动态链接12% M4 B1 H0 V& B$ N; x+ i
1.6.2 使用Dependency Walker 工具探索动态链接函数13
, l8 n: ?  `0 h+ Q1.6.3 导入函数14! t4 @# z" V$ x4 O2 P
1.6.4 导出函数15# Q7 k. K( c! c* Y0 @8 C
1.7 静态分析技术实践157 ]6 E+ _  B2 i! u
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
# i- a$ o& E% i, h1.7.2 PackedProgram.exe:穷途末路18
9 L. {( W0 ^( Z& J1.8 PE 文件头与分节188 a0 {/ s9 ]7 @
1.8.1 使用PEview 来分析PE 文件199 Q: z8 U; y* G: G
1.8.2 使用Resource Hacker 工具来查看资源节220 Z( R2 z, m( x5 z. \; g7 O
1.8.3 使用其他的PE 文件工具23
* @+ T( d* m' Q. t2 @- s1.8.4 PE 文件头概述237 s; [9 P* y! P2 D1 K! j! w3 p
1.9 小结24
! M3 E2 t. ]3 D' ~  \$ C0 {8 J1.10 实验24
9 v# h+ e( B$ q4 C
& K' o  P+ u$ L第2章 在虚拟机中分析恶意代码 277 [* [+ m. v7 F6 @" O0 I

5 }! O# ^& z1 \# p' {2 }2.1 虚拟机的结构27
& q1 b; U; i( ~  v7 A+ M: O2.2 创建恶意代码分析机283 [; G* F' o" i( h
2.2.1 配置VMware29
% B( }! B0 e( F7 G2.2.2 断开网络30, z8 r! }& L1 ~7 b/ I' F$ F
2.2.3 创建主机模式网络30
# v* T1 I3 _& b0 h8 A1 ~2.2.4 使用多个虚拟机30+ p7 ~4 w  ^' Y& A9 A7 `2 _1 n1 L
2.3 使用恶意代码分析机31
9 x( P3 _! E3 M: v0 @7 v, v2.3.1 让恶意代码连接互联网31, ?  i& F/ ]' B) F. }
2.3.2 连接和断开外围设备32
  @, }* {3 w. {, H2.3.3 拍摄快照32
2 v# Q& Y8 A: V, R! O: k' \2.3.4 从虚拟机传输文件331 N: O% k3 A( e: Q3 [0 c2 Z, ]
2.4 使用VMware 进行恶意代码分析的风险34  s4 }- C" V7 t1 U1 k0 I( F
2.5 记录/重放:重复计算机运行轨迹349 h. I1 z0 D2 l
2.6 小结35; P  P2 q1 A" p7 T1 S3 x- i0 Y$ ]

% \! c5 q' _& w' L: v) m0 a第3章 动态分析基础技术 36
5 @2 E& f" ~3 }+ B/ e) G0 D( `
+ l8 _$ {6 E: Y% R4 Y
3.1 沙箱:简便但粗糙的方法36
+ a5 M; a$ D: f7 j6 }, b* q% d3.1.1 使用恶意代码沙箱36
- B- w6 R; G: s: ]: T3.1.2 沙箱的缺点37$ ?. q/ p3 h' d, R, ^# r: x
3.2 运行恶意代码38- Q. O: Q/ Q5 w% R1 B
3.3 进程监视器39- R/ J0 i- O& `
3.3.1 进程监视器的显示40
  }1 q/ t" r. G3.3.2 进程监视器中的过滤41; ?: t( q+ S7 U0 O5 ^; ]
3.4 使用进程浏览器(Process Explorer)来查看进程43' E" U9 J* i& s
3.4.1 进程浏览器的显示43
6 E9 l# ^0 M( L, C. }3.4.2 使用验证选项44
: [7 I8 R$ _$ t. [0 L3 y& x( {5 H3.4.3 比较字符串45% v. H. E7 k6 S; D3 G& N+ M
3.4.4 使用依赖遍历器(Dependency Walker)45
0 _! O$ |! a5 s; Q" W1 F3.4.5 分析恶意文档46
. T% K& J; f0 R2 ^* V; `1 i4 c! r3.5 使用Regshot 来比较注册表快照46. }4 `. X/ M) p2 Z) N+ x$ ~
3.6 模拟网络47
: D- g9 A) A7 B& @5 u9 ^; }3.6.1 使用ApateDNS47
5 W1 }  W  T5 V* r3.6.2 使用Netcat 进行监视48
  p7 T0 i, K5 j+ o0 b5 \3.7 使用Wireshark 进行数据包监听49* [1 |9 E3 I9 b: i3 E
3.8 使用INetSim51
# g6 h/ A& J; F& {/ R* o3.9 基础动态分析工具实践52: z. g+ [# W6 F. R
3.10 小结553 O7 C- C; D7 s6 l* p
3.11 实验56- D# i. }- H# G9 q% G
" F+ z" a* \: z! C" d1 V- ^4 v6 `( q
6 y+ u7 m7 U+ h! _1 }8 W* a
第 2 篇 静态分析高级技术篇: J9 `0 R! t7 B" Y# X2 i
7 N) d6 ~# C: ^4 h, E' W
第4章 x86 反汇编速成班 60( S3 Q9 @; h# K

9 ]5 a! }) g% m( o* D" ]: U4.1 抽象层次604 o5 ?0 P3 B# i
4.2 逆向工程62  B4 a: \6 U; w: G# f- {
4.3 x86 体系结构62( W3 R( p+ W; ~! D- j
4.3.1 内存63
. a5 s$ Y4 s! }  m4.3.2 指令64
0 [# @7 Z: W4 b6 ~3 l3 h8 p+ i& [. o4.3.3 操作码和字节序644 ^* d, U. i2 i. S. u5 [  U+ `- k
4.3.4 操作数65
! L' W( d" B' C/ t& j4.3.5 寄存器65: C. D: a' }! |/ a: b
4.3.6 简单指令67
' l8 k- f! J) K9 k) ^4.3.7 栈70
, m: ]! d/ h5 i1 {- L4 {( M4.3.8 条件指令73
$ o$ Y' U" U9 D0 b% X4.3.9 分支指令73
( p* T, R  N1 n$ G( {$ ^4.3.10 重复指令747 r. X  I) R- ]" g' X1 s- y8 Z, G. Z
4.3.11 C 语言主函数和偏移76
4 Z6 L8 S! s2 Q0 ]4.3.12 更多信息:Intel x86 Architecture Manual77
0 `+ `1 a/ d( j' I% e; ]) q% e  \4.4 小结78
& W- q% W. Q% O/ P& H1 X8 j& i
8 C1 w$ o' Q9 C3 ]- w& M- `第5章 IDA Pro 79  L9 u: j: {& _/ q/ i; k9 g
/ R1 A1 j" y" d2 f$ k4 H
5.1 加载一个可执行文件797 \( o2 D& d, ^) T0 U! g
5.2 IDA Pro 接口81
7 d4 |* i, n: T5.2.1 反汇编窗口模式81( ^/ j8 }6 s7 r" g  c6 i& ]" J0 f
5.2.2 对分析有用的窗口83/ o, g- o* y7 O+ {
5.2.3 返回到默认视图83
5 G$ l: M& U! I# S9 Y$ n+ D1 Z% [5.2.4 导航IDA Pro 839 C& p  V9 w  g  v; t2 S2 w
5.2.5 搜索855 V. ~6 ^8 j! x2 o4 p7 Q, q* O. \9 H7 O
5.3 使用交叉引用867 T6 t& D  u2 k5 u- v4 s! t
5.3.1 代码交叉引用87) e2 q4 ]- x$ \! i0 \
5.3.2 数据交叉引用88( h) p1 \% ?0 ]3 e4 e2 ?4 d
5.4 分析函数88
4 o8 }" Q8 z' Q; L5.5 使用图形选项891 E! P6 s/ N0 L  q3 v
5.6 增强反汇编91
: E4 n/ n/ f. H& N; o# J5.6.1 重命名位置91
3 |' x3 h7 V9 ?3 P! N& o4 P5.6.2 注释92
& l' N& a, L- d/ B9 r0 i5.6.3 格式化操作数925 h6 m" i4 l  g3 c, z/ p7 p
5.6.4 使用命名的常量93
. P# y* i' v* L* p. I  \5.6.5 重新定义代码和数据94
3 O" K# I( t0 ]# W+ n. s/ r% p5.7 用插件扩展IDA95; {1 c- m3 x9 A. w& |: U
5.7.1 使用IDC 脚本963 V! H/ @1 F2 ~% h/ ]
5.7.2 使用IDAPython97
& i3 a# G& E8 [# r: [5.7.3 使用商业插件97: i# T/ M' X0 t. h4 c1 w
5.8 小结98
6 a6 X% O$ T: g4 L0 a5.9 实验980 F, C. m) q' g0 }) ^2 f( w
6 P2 A6 M/ Z* u3 ?5 B  Z) D) ^
第6章 识别汇编中的C代码结构 100
) u; w( P4 f9 ]3 m1 n& ~

9 Y8 K* h4 f' b  q8 G6.1 全局与局部变量101
1 Q5 z, g; u4 T, ?  m6.2 反汇编算术操作1027 L  ~; w0 H/ h$ }
6.3 识别if 语句104( m6 J: e' l# w, j" g8 c
6.3.1 用IDA Pro 图形化分析函数105
8 w, W5 Y4 ~, o- @6.3.2 识别嵌套的if 语句106
1 q/ A4 O6 D; Z2 `: Q9 ^6.4 识别循环107, V3 g, k4 Z6 M# l/ U& ^
6.4.1 找到for 循环107; c1 H" ]- W; i' e
6.4.2 找到while 循环1097 j" o3 ?/ F2 L
6.5 理解函数调用约定110
& k, Q9 G: _; p2 e7 A1 T8 |+ s6.5.1 cdecl110
( C# ?% X( g7 O& D6.5.2 stdcall 1110 H- h! Q: J# x- v% b
6.5.3 fastcall 111
+ ]: k) Y! Y  `) t" P. j8 Z5 D6.5.4 压栈与移动 1113 J3 N3 M6 N% e9 j2 u2 P
6.6 分析switch 语句112
$ o' d$ n( F9 z6 Y6.6.1 If 样式112
6 H6 O+ ~6 |/ e6 r) `# O; U( ^6.6.2 跳转表114. Z4 o" \- p4 w, v" l9 @  ~
6.7 反汇编数组118
; B: P) u: q: N6.8 识别结构体1196 E" A5 ?9 B" j* {
6.9 分析链表遍历121
6 h3 x) H2 c9 O4 {, o" J& ^' f6.10 小结123) \* }1 U/ N9 J$ J
6.11 实验1236 z  B' l0 e9 Z( x1 S( K( B. I

* g* h2 x! i0 O$ G: R第7章 分析恶意Windows程序 126

4 b. [/ E9 r: _& n* j  w3 `
. m% H4 r0 d9 `) d$ x4 ^7.1 Windows API126! D' _* k2 N. H9 w5 O# @+ v( R  q! A: n
7.1.1 类型和匈牙利表达法126
2 w; E* R( h: H7 r; ]+ m6 i5 V7.1.2 句柄127
" h, x. b% B) o1 v. r7.1.3 文件系统函数127
' a& S- v, W/ N' u+ I+ w; S4 i1 r7.1.4 特殊文件128
' G/ c: u9 q: n  N: s2 \: l! t7.2 Windows 注册表129
% \2 }3 l9 r! E4 W: e- [) b1 F* [7.2.1 注册表根键130" e! S- D" d5 B  l' {
7.2.2 Regedit131
! U5 y' E- q5 s  |2 l: q7.2.3 自启动程序131
9 k& M" x% }6 J* s; L) d7 Z7.2.4 常用注册表函数131
+ |8 g' u9 ]' j2 m, G: ~7.2.5 练习分析注册表操作代码132
/ S' h: Q7 K6 D- i, `& a7.2.6 使用.reg 文件的注册表脚本133# @3 @& Y9 B) v: C
7.3 网络API133
* C% p- a5 {/ ^. s9 E7.3.1 伯克利兼容套接字1346 _2 S7 m- H$ P; c$ _- e
7.3.2 网络的服务器和客户端1344 c& v; {7 ?. ~& a. g: b0 E9 Z' O
7.3.3 WinINet API 135
5 H' Q! |3 m! `, p" ^  L7.4 跟踪恶意代码的运行1368 O: z/ e7 _6 V& V  z
7.4.1 DLL136
+ j8 v  N/ w* X- S$ j7.4.2 进程137: H8 a/ g# P, E) h1 n, a0 J
7.4.3 线程139
, m" }5 `; B) o* A# |7 m; ]7.4.4 使用互斥量的进程间协作142$ h9 C# K* N1 G* R$ }3 U
7.4.5 服务143
5 J' Y3 F7 l. M* D$ b4 U/ F7.4.6 组件对象模型145
8 ~7 m/ b4 G: B" f4 A/ {: \7.4.7 异常:当事情出错时1476 W% s* F* n; ^9 N% m  t8 M% o% k
7.5 内核与用户模式148; I& j0 }6 X! O+ J# f
7.6 原生API149
7 z; z9 [! G2 U; l/ Q7.7 小结151
4 I" S! n' l- T6 @- q8 K1 L  l7.8 实验151
8 ?: S% s5 ~+ @$ M  ~9 _, q4 ?0 X' A  R) z6 e$ J0 E. E
/ \4 q8 T4 z! s  ~% b
第 3 篇 动态分析高级技术篇
5 }( {1 H% D0 d, V& F0 A8 S* W4 j5 K/ N2 O* |2 U& Q* @
第8章 动态调试 154
* H; h- y& h( X7 L* y& q- k

( V; f& J, m. D& _8 J0 M* h8.1 源代码级与汇编级的调试器154
( u" D7 Q! p" n* y8 E8.2 内核模式与用户模式调试1556 g- Y( }, m. L: u$ j; |- j0 Z+ L2 \9 @5 D
8.3 使用调试器155
' C0 X/ L- I, o6 Q: B( [8.3.1 单步调试155
: ], @; _9 |5 p; _" E* }8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156; W6 |* ^/ a0 v, J) y7 T0 _4 g) p
8.3.3 用断点暂停执行157# ?% |7 b+ x" k7 v5 g
8.4 异常161
3 {+ @$ u( M# u$ Y1 ~8.4.1 首次和二次异常处理162
, n, Q7 b  H0 q' d& S/ Y8.4.2 常见异常1626 ]9 h* k+ b% G4 g3 e: a$ \: S
8.5 使用调试器修改可执行文件163, f3 [7 c+ R$ Q* L$ H
8.6 修改可执行程序的实践163
, w1 C* c. D+ w" l: _! a) L8.7 小结164- w0 g; T8 `  ~
6 x0 x1 P; U( ~5 }- @
第9 章 OllyDbg 165

* M# P7 l: Z$ _3 C7 s. H! V, r# b7 X6 b; F5 \, N: l
9.1 加载恶意代码165
$ b. e' V$ K$ l/ t+ D# z) G. ~9.1.1 打开一个可执行文件165
$ N* Y5 |) g4 y9 n9.1.2 附加调试器到一个运行程序166
* {2 U! S* Z0 c9.2 OllyDbg 的接口167! b" G* ]  ?* m) p/ \
9.3 内存映射168. q# A  G, J7 S' x) g7 w3 U: H
9.3.1 基地址重定位169
+ P. M" V) s- {2 a9 z8 ^6 b# I; W9.4 查看线程和堆栈170  _0 X. ^* o: Y
9.5 执行代码171
5 H) t( i/ R4 J+ i9.6 断点172
9 a% H) N$ Y, q: o, }* `. s9.6.1 软件断点173: d8 J6 w- k! X0 b# t
9.6.2 条件断点1740 T. z5 h. D& ], A$ K
9.6.3 硬件断点175/ S7 {' l" U% ^
9.6.4 内存断点175" z6 I3 j5 m) \( a8 p3 A! d0 F
9.7 加载DLL176
8 V0 A  l4 p4 h, ^# \; h9.8 跟踪177
: S3 J% ^; V4 m. ]9.8.1 标准回溯跟踪177
0 L! K  @, n' o' M% M) Z9.8.2 堆栈调用跟踪178
' l. e& N/ V# O4 f9.8.3 运行跟踪178- J: g2 i$ f( ~) _  ?; s9 T
9.8.4 跟踪Poison Ivy178
* u9 j0 k5 h# t% X( @) C0 o9.9 异常处理1795 I! p' z) Z+ n
9.10 修补180
1 [' K1 r! q7 J9 w1 F9.11 分析shellcode181" E# [) x, e+ u/ X9 ^9 \
9.12 协助功能182) z8 o" k0 N" P& y- f
9.13 插件182
. R. Z  |$ r# D+ n8 c! }6 R; X9.13.1 OllyDump183! A. a! D  i0 c% V1 D  j% V7 i/ z5 P- a
9.13.2 调试器隐藏插件183: ~2 V  n$ b, o4 P; P1 p1 f  \2 w
9.13.3 命令行184! x! p5 j  A& \; N1 V
9.13.4 书签185
6 ?: X0 f& N  u; r* c9.14 脚本调试185
2 c9 r5 j* L9 D& N; z9.15 小结186  n% [/ B0 j/ a) x# M
9.16 实验1879 m! a/ x* q1 f: E

. s' N9 h7 e; F  N第10章 使用WinDbg 调试内核 189
' C0 v7 m. a! a2 O2 |  {0 k0 Q8 e, M& C. Y# L5 ~( M4 B: Y- X( ^
10.1 驱动与内核代码189
" p! D  _1 I5 r6 Q8 @: s10.2 安装内核调试1916 R, n9 O4 k+ I4 |( f2 X: R
10.3 使用WinDbg193  }; t  r$ s' _
10.3.1 从内存中读取194
2 u0 p- S& t& m. V10.3.2 使用算术操作符194
- c* i5 d1 w+ f$ m% i10.3.3 设置断点1945 e. _. w- }+ b/ t# ]
10.3.4 列举模块195
7 r- F) P+ [. ^, h8 u. K; b  F; v& c10.4 微软符号表1950 p0 a" h/ M5 ?9 W* C/ o
10.4.1 搜索符号195
9 {) T  U0 m  P8 P$ b10.4.2 查看结构信息196) q, W6 B" H  |6 v- {7 j9 R4 v
10.4.3 配置Windows 符号表198
0 s% U6 @" B7 g$ Z1 |10.5 内核调试实践1981 j3 _, R' V+ u/ \& T! h# U
10.5.1 用户空间的代码198) u* }) S( l9 Z, Q% W
10.5.2 内核模式的代码2008 T4 S/ \/ l. x+ V; w0 z$ \
10.5.3 查找驱动对象203" t8 G3 c6 ]& X+ \- Q
10.6 Rootkit204
8 }: c' l  |0 R+ @' s0 [2 G& C) a7 U10.6.1 Rootkit 分析实践205* x9 }+ k/ w- g& S, V2 ]3 J
10.6.2 中断208& V/ l* _1 P# }6 B* c3 D: I" ^5 }
10.7 加载驱动209
/ p" O5 I  F* u3 `8 b+ r# V* P  K10.8 Windows Vista、Windows 7 和x64 版本的内核问题2096 H0 V& ~; C/ c' O  F( B; F( ^9 C
10.9 小结210
/ e( w; j' Z- F  `10.10 实验210
  \* l) T' V2 F; a: {7 F7 F
( Q3 A, ?8 W# P) n. S% ^  o+ T, K4 l  x
第 4 篇 恶意代码功能篇, [2 i) m+ |! L, ~. Q$ {
) X( n5 c  `0 p
第11章 恶意代码行为 214
+ ~" A% P( e' P9 X/ d3 s) P/ i# I& ]7 l7 H) I- x" X% r
11.1 下载器和启动器214; _2 h% c. u5 |" H! ^
11.2 后门(backdoor)214
: _1 }+ u' r$ W: I+ j11.2.1 反向shell2157 E* U# {* ?. U8 F- t
11.2.2 远程控制工具216" E( [$ ]1 @0 r, k% K' s0 t
11.2.3 僵尸网络216+ C/ v- n" [8 o5 B( m3 X: p& r5 E
11.2.4 远程控制工具与僵尸网络的比较217% l# H: }& i5 e; I  v
11.3 登录凭证窃密器2174 f% Y' d! G  J7 |& U9 p+ F. I
11.3.1 GINA 拦截2174 y& _+ o3 U) q* s6 ?
11.3.2 口令哈希转储218
2 G7 B, j: [3 A* A9 X11.3.3 击键记录221
9 K  O5 y/ z1 K0 V) v11.4 存活机制223- R4 j  b5 x+ Y/ |0 M. x9 C
11.4.1 Windows 注册表223
: Q: o* [+ ^- z  g% V11.4.2 特洛伊木马化(Trojanized)系统二进制文件2257 c1 Q9 I) e' Z: P$ O8 ^* w8 ]
11.4.3 DLL 加载顺序劫持227
3 j. k; j( w  o3 Z# M" J11.5 提权228
' i+ o% H5 `( y+ @11.5.1 使用SeDebugPrivilege228
3 h. P9 q9 E0 L11.6 隐藏它的踪迹——用户态的Rootkit229
) ]( E9 b0 S) k: C11.6.1 IAT Hook 230' W* z3 H, V* {+ J6 b/ M* B
11.6.2 Inline Hook 231
8 r9 z% L4 m' _' [+ ]11.7 小结232
+ d6 |( ?5 M7 p, _! H- f11.8 实验232% O- @% t8 @0 y3 n! p5 K1 d7 A

4 F$ L' @1 V8 M5 @& e* G第12章 隐蔽的恶意代码启动 234( d7 y0 S- d; m' u6 Y& o! _
2 q# P5 I& N+ g! B1 ^5 X
12.1 启动器(Launcher)234  P) I( ^; Q- i9 R( U
12.2 进程注入234
+ k6 j$ z, B/ e( B6 r; Q6 L12.2.1 DLL 注入235
% ]& y+ ]4 b: G7 y4 G& E, t6 g12.2.2 直接注入237
7 s4 I0 n. x2 K/ p, i4 Q. M12.3 进程替换2380 Z, }+ Q6 |6 P$ |# q
12.4 钩子(Hook)注入240
4 j+ Q4 ]3 x5 v, w7 L) N1 ~12.4.1 本地和远程钩子(Hook)240
1 ]! C( S, y4 H6 F2 a/ N12.4.2 使用钩子的击键记录器241  F& `7 \1 J# c. A# B
12.4.3 使用SetWindowsHookEx 241
1 {; x8 J! I9 W4 c0 d12.4.4 目标线程241& o( t7 u3 V7 I' R2 F  B
12.5 Detours 242( s6 m2 C* ?; D4 g- T
12.6 APC 注入243- ?) ?- k( w0 m. t+ Y. E
12.6.1 用户模式下APC 注入244! f! S; k! o+ i0 H0 N1 Q' p+ U
12.6.2 内核模式的APC 注入245' P+ o4 H5 W! O- p# F1 s
12.7 小结246
4 Y! H/ o1 U' r2 o8 u12.8 实验2462 _+ e0 l; v! _
) q' b2 V% j1 P' i3 `  O
第13章 数据加密 2480 l$ s3 |; E& m7 ]: g

$ i; T, y3 [2 `+ m& A8 {9 Y  a13.1 分析加密算法的目的248
. I, \$ V- B9 x5 r+ n- Y13.2 简单的加密算法248# N7 I4 M5 f" a2 h$ C* A' G
13.2.1 凯撒密码249
% m7 ?' g# P6 o) s* W3 K! V13.2.2 XOR249" w; c* m4 s  W4 {! @, `
13.2.3 其他一些简单的加密策略254
* }, _7 A) L. I13.2.4 Base64255
; ^5 t% n' R5 s8 \7 Y4 P13.3 常见的加密算法258
- \5 u  }6 a  t& j' d- U13.3.1 识别字符串和导入2594 U, R8 j2 z6 ^4 w
13.3.2 查找加密常量259
8 x- W7 B0 C! S' e/ d- |8 K13.3.3 查找高熵值内容261) @" u( v: R0 a8 D) @2 P
13.4 自定义加密262
6 }7 s1 E2 r# n, H4 j) F13.4.1 识别自定义加密263
. M: W. w. [" ?( E13.4.2 攻击者使用自定义加密的优势265
: J% U5 M" S6 G+ ]13.5 解密265+ [, X( t5 z7 L: i, I
13.5.1 自解密2655 L/ ]" g$ c, M4 P' H
13.5.2 手动执行解密函数266' S6 [- g; r1 P- h) p* ?
13.5.3 使用通用的解密规范2674 J8 s: R9 r1 k6 R2 h
13.6 小结270
. f7 r# E$ u" x) q2 N  \. v13.7 实验271
3 M  W. S! j( i7 v
& O4 o  A+ k9 F, W: ]# j4 v, e第14章 恶意代码的网络特征273
  G, K4 h5 ?) C4 q6 w) A4 ^4 U5 e8 F  v7 W- Y- k) Z
14.1 网络应对措施273# ~7 `6 Y2 s! `4 {  i" x3 q. C
14.1.1 在原始环境中观察恶意代码273* S1 n; E" m! K0 ~; y+ N. ~: Z$ e
14.1.2 恶意行为的痕迹274; C7 Y% R9 W8 k) v" \, b/ \
14.1.3 OPSEC=操作安全性275
* m4 l2 i: _8 i, @2 G6 R' b14.2 安全地调查在线攻击者2754 e0 m* h* @( g/ G5 y
14.2.1 间接性策略275  D8 b3 y; @# E6 c4 K. H, p# w7 t' ]# F
14.2.2 获取IP 地址和域名信息276
7 p4 _" ]+ G: f& y' i. C14.3 基于内容的网络应对措施278* J% ~$ N7 ]) C$ K& ?& f
14.3.1 使用Snort 进行入侵检测278: u( @) |+ _# T3 I
14.3.2 深入观察279% u2 z. w& Z- ~2 K; H
14.4 结合动态和静态分析技术282
. `4 Z) t6 `1 R( U14.4.1 过度分析的危险283& t: Z& L. X/ K% @
14.4.2 在众目睽睽下隐藏283  t- M# c4 w; a' D4 J
14.4.3 理解周边代码2863 f' y2 b, @% F4 [
14.4.4 寻找网络操作代码287
9 g' a+ @' w6 [+ I9 i14.4.5 了解网络内容的来源2882 u- Q9 \- |$ S5 D! Z) O3 r' c
14.4.6 硬编码数据 vs. 临时数据289* w* x$ A' t2 |% S- o$ g
14.4.7 确定和利用编码步骤289. u: m  ^7 I% d/ [
14.4.8 创建特征291
0 C2 r1 f8 v: E* o0 b' ?14.4.9 分析解析例程2922 [( G) X2 Z( P  B3 ^* B
14.4.10 针对多个元素294, w+ C' W0 U1 X! O- W% v& K
14.5 了解攻击者的意图295% }/ }. t- [& a0 U
14.6 小结296
0 `- p9 b& W0 a: U( T14.7 实验296
$ w7 d7 z! n, y% B2 Y  d+ U3 C- L, H" x0 H8 s# j

, ?" ^+ k6 j: L8 X6 t/ ^第 5 篇 逆向工程
0 [& v; S; f  j0 Z' h- W# T; Y, c' p% K9 ^0 E4 O/ v9 W
第15章 对抗反汇编 300/ s$ f: F+ h2 ^. C: L
- |7 j) Y$ ]: T
15.1 何谓对抗反汇编技术300
) n- Q! q" V, e# Z" m% r. W15.2 挫败反汇编算法3013 V" B! X4 R: T8 g$ L4 o
15.2.1 线性反汇编302
7 _; h- |# R/ D# F! A15.2.2 面向代码流的反汇编303
: L, W# e! U4 j15.3 对抗反汇编技术3066 `2 w, o# a5 j
15.3.1 相同目标的跳转指令3064 C5 @. s" e* f) F& P+ m2 }8 c
15.3.2 固定条件的跳转指令307; ?; u8 h/ `) o4 e$ h/ i
15.3.3 无效的反汇编指令308
+ X8 \8 |5 T7 y15.3.4 用IDA Pro 对指令进行NOP替换311
, q. Z# q  x% N% W0 m15.4 混淆控制流图312: U0 t: E& e% t' ?8 r% W( X& N( o. H
15.4.1 函数指针问题312! s# U) [) ~' o8 ]
15.4.2 在IDA Pro 中添加代码的交叉引用3139 U* H+ Z" j0 |0 a6 Y+ _4 k
15.4.3 滥用返回指针313; P7 H3 d7 l+ C
15.4.4 滥用结构化异常处理315$ Q& c  B1 a8 E, c* x& k
15.5 挫败栈帧分析317
( [+ L' g- d2 d15.6 小结320
% V( C; [( N& G& C) e0 }15.7 实验320
( b# B; k8 s) G) S1 \+ }2 w
1 f$ w, ]8 }% L, v) l" i+ h4 |第16章 反调试技术322- |) I& \* m+ y: R; k, z+ B

) ~4 @# \" J$ K- C- }# r/ `16.1 探测Windows 调试器322! a4 i2 M  p2 p5 i! u5 v5 X+ j) {! Z
16.1.1 使用Windows API322
: g9 H: P5 Z' _' {! u" c  Q16.1.2 手动检测数据结构324
( F% N7 K4 ^7 C, _5 v9 p' g16.1.3 系统痕迹检测3260 B2 V( C: n0 @& l9 u$ ?' v
16.2 识别调试器的行为327
- o, ?8 S8 L, K% j( H) C  B16.2.1 INT 扫描327, T3 |- O& G( D, `1 R  `4 L
16.2.2 执行代码校验和检查3288 F5 q/ j& s3 B; ^* O
16.2.3 时钟检测328
  a7 C; S! G, f: J$ R16.3 干扰调试器的功能330
$ W9 J2 V# j7 D1 {16.3.1 使用TLS回调330' L# f4 K8 T' c
16.3.2 使用异常3326 A5 Z+ a4 a- @% t
16.3.3 插入中断333( T; `' U2 {# @( {- w
16.4 调试器漏洞334
, W; }! w# z1 ~8 a0 ?16.4.1 PE 头漏洞334/ y2 T' _) R9 b/ J2 s# k* U. Z% w; G2 O
16.4.2 OutputDebugString漏洞336
4 W2 ]' c' H- i$ N# X* s16.5 小结3365 z( P& X) ~4 O: d1 x" u# _+ F
16.6 实验336
( F- g+ i7 v1 S9 X) ^! I' z3 y/ I7 _* `! `0 ^# f' |8 N, c5 V
第17章 反虚拟机技术 338
( I+ E; f' ~4 U, ~; v7 Q+ j
! I) f! d& x/ O1 B/ q17.1 VMware 痕迹338" F; ]" r( E$ l
17.1.1 绕过VMware 痕迹的探测340: j/ F+ E3 C. d1 H4 e! N
17.1.2 探测内存痕迹342
  E6 v( A( M8 h- ]+ v3 s! g17.2 查找漏洞指令342; O2 N+ z" J' z
17.2.1 使用Red Pill 反虚拟机技术343; _8 X! ^1 Q* p% X) L  s. P" ~- N
17.2.2 使用No Pill 技术344  j. J, i7 W5 G( Q+ C' d, M
17.2.3 查询I/O 通信端口3447 X2 c% B+ L( {* S5 ~& I$ e2 z7 g( M
17.2.4 使用str 指令345" s5 Y: L4 v% {+ |7 X, ]: r
17.2.5 反虚拟机的x86 指令346
3 t6 |- h* e8 t+ [# W17.2.6 在IDA Pro 中高亮显示反虚拟机代码3478 N. W- `, p* H2 i) g
17.2.7 使用ScoopyNG347
! j) I; `# ^( x# j17.3 调整设置348
4 n0 S4 {7 N5 ^9 i& ~" w17.4 虚拟机逃逸349
1 ^% e, n; \. V4 ?* m) i17.5 小结349
( B: ?! l" }% L" k( `17.6 实验3499 B. L: j. ?, c/ l0 t7 E* |
' S6 M4 v  A! a$ X4 I
第18章 加壳与脱壳 352
3 x3 `6 T, u+ s: K! }: `
5 ?- L* g+ |- Z& l18.1 剖析加壳352
& a3 @4 r* s" ~" p; ~1 j18.1.1 脱壳存根353' u: \6 P( |+ V) x) C0 R) v( J
18.1.2 加载可执行文件353
0 Z7 H1 B0 Q& k4 O3 `18.1.3 解析导入函数表353$ F; n& B; F4 i* g: s, N
18.1.4 尾部跳转354
9 j; e0 w' p9 G# A; T2 ^$ D18.1.5 图示脱壳过程3543 [" A! Q- |: o
18.2 识别加壳程序355$ Y) u9 s" x+ q9 Q, `
18.2.1 加壳程序的标识3557 I. M1 Y* q, ?5 K! i/ }" p6 X; Z7 Z
18.2.2 熵计算356
6 a4 F  W; N* x8 {18.3 脱壳选项356' e& D! y. M) l& h$ ?* a, q
18.4 自动脱壳356
7 N' }) v- G/ E9 B3 y9 S" y  T18.5 手动脱壳357
& K3 b8 T! Y& a2 B/ ]! G18.5.1 使用导入重构器重构导入表358; p& k3 L+ s0 T/ D% t# C
18.5.2 查找OEP359% s* o6 D$ T- P' w( p& W
18.5.3 手动修复导入表3630 k. r3 f6 m; E' J  M  y/ i
18.6 常见壳的技巧与窍门3645 h/ A1 _$ b# M$ x/ a! _
18.6.1 UPX 3646 t3 [8 W/ {6 b+ @+ |! c
18.6.2 PECompact 365% A2 a: c1 D6 F+ E: q5 y
18.6.3 ASPack3655 Q3 c8 p6 ^9 F& {; e
18.6.4 Petite 365
. D1 @" `6 z, x6 S$ ^0 C18.6.5 WinUpack 366: x  R0 j1 v4 X3 E! F0 ?7 h" [
18.6.6 Themida367/ H2 U: C- H8 o( a
18.7 不完全脱壳情况下的分析368
/ Z  h* T" O6 e/ o) u9 I  m) B2 E- T18.8 加壳DLL 368! F2 ?0 A( n- B$ j* L5 @
18.9 小结369
# j  Z' I8 X$ d" ]18.10 实验369& x0 w  T- r( C* g2 X/ [* n

; }# w( G/ d' B& D5 A
" {& D5 `- L' E5 u7 W第 6 篇 高级专题
% l6 W" n: p# F8 B7 O
, f/ e3 N. U& {3 ^* b7 t" b) g第19章 shellcode 分析 3728 G( W0 _8 T* h  ^

, F8 ]$ H- T8 O. g* ]8 i' @19.1 加载shellcode 进行分析372
9 [8 E5 W' m  E19.2 位置无关代码373
, f5 q/ S7 k! i% I+ k19.3 识别执行位置373
5 M5 n' N  M6 V3 \+ ^8 ?19.3.1 使用call/pop 指令3745 d2 o( z0 W1 H( a
19.3.2 使用fnstenv 指令376
2 ^6 L" c- Z7 l, q/ g19.4 手动符号解析377
0 G5 B5 f* S& A) g" X, R19.4.1 在内存中找到kernel32.dll378
1 C3 P) [; n3 _6 {+ d19.4.2 解析PE 文件导出数据380- L" u6 Y, j) X2 L; g8 `) ~
19.4.3 使用散列过的导出符号名3824 b* C7 `. p, Y: [
19.5 一个完整的Hello World 例子383
9 f) n% W1 a' K( D8 j7 o0 x19.6 shellcode 编码385( n0 J. _) Z+ Q" i! L- K
19.7 空指令雪橇387
  {# B" B0 I- ?6 ?& g+ A. w" q19.8 找到shellcode387
) q. j6 `. p+ ]  y6 W. D3 @19.9 小结388
' ~- f# S- @7 x" q: q19.10 实验389
; R6 q+ C3 g! X0 O) L* O7 D5 e7 |' i6 J4 s- G9 D
第20章 C++代码分析 3910 ?7 {1 z& h" A4 H; a; a" k; j, p

8 r8 h/ A% `! \$ M9 A20.1 面向对象的编程语言391) z5 _1 R/ r* G* Y
20.1.1 this 指针3922 m6 Y9 _  D2 v: ~" X
20.1.2 重载与修饰394
: v3 s7 l2 m  I  E20.1.3 继承(Inheritance)和函数重写(Overriding)3951 u) H/ w/ o" t0 C
20.2 虚函数和非虚函数3962 X: i8 W, I7 |3 [0 S0 r& h1 F
20.2.1 虚函数表的使用398& a2 y. Y& V" o# _8 I! K% a  n$ C
20.2.2 识别虚函数表3994 h8 O* V/ j0 j9 ]& V8 }2 N- A
20.3 创建和销毁对象4002 B) L8 z8 l9 u( `3 T
20.4 小结401
+ b2 s0 P; v/ {( Y5 X& a5 X/ E20.5 实验401
# ?+ B/ j; e1 ~0 t* [- N0 e5 w1 f* X& S% y8 Q. I6 k5 z
第21章 64 位恶意代码 403
4 i! m- J" J# i8 v: g4 e( v- h8 M9 @8 q9 u9 Y
21.1 为什么需要64 位恶意代码4038 Q* g# N* _3 M/ g, g1 P3 v) ?
21.2 x64 架构上的差别404
+ G4 A/ ^0 E9 p21.2.1 x64 调用约定和栈使用上的差别406! a1 A0 P+ \1 u. b  g& E
21.2.2 64 位异常处理408" _3 b' T; u/ J- y% [
21.3 在Windows 64 位上的Windows 32 位408
; W& l" Z. d: ]! p: S# G21.4 恶意代码功能上的64位提示409! @$ C! C8 v! h7 u  o
21.5 小结410
2 M! r" r# t1 [21.6 实验410
$ a& b3 f9 t8 ]  O3 L
4 b6 z4 E, x9 ^  q3 F- i: K+ q! t附录A 常见Windows 函数列表 412
, m- m, a2 H3 P3 U9 p
, D8 k" u' b# T, {' ^  o! P, c附录B 流行的恶意代码分析工具列表424
8 D) O* X: y; z3 S& {/ F3 _+ V; X- M9 j5 X+ v$ V
附录C 实验作业参考解答435
' f$ y7 ]9 k* ~* n0 V% j# L# I5 K$ A* n5 O+ m" G& n  t1 ^0 I' e
附录D 致青春,基础软件开发的中国故事 691
: D  R+ s# T2 _( w) ?8 e' p( H5 }& d% t4 M5 ]3 r5 \# V0 r" r
附录E Syser 操作入门 695  {  c3 x  m! l$ G
4 O+ X0 C* g$ ?6 Z$ q

4 o  ?6 E; U  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
  z0 N1 ?2 X# x7 @& u1 }什么编程语音写的?
6 t, r2 K8 g& o  D% f
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 23:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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