鱼C论坛

 找回密码
 立即注册
查看: 5884|回复: 16

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
6 p6 t; e/ B1 Y- i" N

/ Z9 G' ]$ K, ?1 |: c, g0 R书名:《恶意代码分析实战》
. |9 X8 t: u. i3 c; J+ Q作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
( n0 Y; c* B& \7 V8 l$ ?2 d% s译者:诸葛建伟,姜辉,张光凯
0 c. G  }% B% \, v: O出版社:电子工业出版社  B# [- G2 [6 M4 Y1 d
出版年:2014年4月1日(第1版)' _6 T5 ^+ H  E+ p0 O$ J7 o' h
定价:128.00元3 b3 A! g/ Y( }  e: S' u, n
装帧:平装0 ~9 H' X8 ]) d, l/ O. O
ISBN:9787121224683
& A. W& Z, U- M  J
* H! T- l5 {- }0 z3 {* A购买链接:
; Q# T$ l/ h1 N' X! A: h- i7 ~( V
$ `- U: ]" }+ o9 ~# F  v& C. }( Z

  V: d- k; P$ L' ^. R8 d' v1 [: `亚马逊 -> 传送门
- A! O6 z  g8 J3 E8 F0 @! G1 |' |, W, c
当当网 -> 传送门
( T9 P# m) j- }& G4 q7 d5 a4 p& N) G5 D  D0 s
京东 -> 传送门
9 t( d7 ~7 r3 S! ?
9 s; H1 s7 C4 J8 X/ F天猫 -> 传送门& h9 t8 |$ M5 Q  H

/ ^9 K8 _! R: D) n. R
  e+ L$ l* C% P/ a内容简介:
4 c4 S% p2 n( ^9 }8 m/ E8 Y1 U5 S9 C# o$ I6 e

- N# D$ e1 L' Z- H& d
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。- k" M1 C3 n$ z0 S

) h. I" m5 d4 Z5 C$ x; J《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。+ R7 w, e. e# o- l

; D; ~. B, m- `. u针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
% b8 S* V6 ?" z. C针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。1 S% f9 j, V2 c5 q0 H( J

" ~+ a) c5 M7 J/ w( n. ~: `目录:4 R/ ~, O0 x8 \- N
: Y. k( h0 P, C2 H! T$ r4 l) A) q. a

3 U; L) j5 c0 p; J/ Y( a/ Q& {
第0章 恶意代码分析技术入门12 H  Z3 Y% x! C% Z( M5 p

$ W( t; U5 q$ ], {7 M% d0.1 恶意代码分析目标1: W, l# c& }; D  W. ^
0.2 恶意代码分析技术2
" D, Z$ c6 `" e* H- C. o6 e0.2.1 静态分析基础技术2: Y' ?1 \/ s. s
0.2.2 动态分析基础技术2
2 A) V, K% h3 k+ b. [0.2.3 静态分析高级技术2
9 H3 A4 q9 ~- v7 E9 k8 z  C1 }0.2.4 动态分析高级技术2
% J, g) ]$ m& j- r; v$ J0.3 恶意代码类型3) R1 L' G; `4 P: L% @4 `
0.4 恶意代码分析通用规则4
. c* ^3 M3 N+ ~. e
; @0 G- x0 L# U9 j7 x4 j- ?) o( s7 e' |) g7 s
第 1 篇 静态分析
2 t1 V, v+ e- B  I9 N
9 Z2 y* d! K* }/ T, b& V% ?; f3 T第1章 静态分析基础技术 65 {" L5 q( t' J% V( X3 }+ S& i" C% V
2 V) D8 T( B" ]$ D* F' ^
1.1 反病毒引擎扫描:实用的第一步68 t) ]# V( }  ~" G
1.2 哈希值:恶意代码的指纹7
' }* R2 C9 k! a8 U& {- l; B1.3 查找字符串7
9 b6 t  `% L$ Y1.4 加壳与混淆恶意代码9& T5 ?, Q/ L$ u! A% H
1.4.1 文件加壳10* j! ]+ g2 b! r. \' Y
1.4.2 使用PEiD 检测加壳10" m. z' z$ v4 f' [% r
1.5 PE 文件格式11
  Z/ B2 D9 p. r- U$ \& C1.6 链接库与函数12
2 @9 J0 N( V2 Y9 d; h# }1.6.1 静态链接、运行时链接与动态链接122 C' {5 L' C0 D' v) D+ U( D
1.6.2 使用Dependency Walker 工具探索动态链接函数13+ |) T/ F5 n, o6 H  _
1.6.3 导入函数141 U7 n5 o+ Y4 Q
1.6.4 导出函数15
& g9 g# @) O2 _5 X/ n+ |1.7 静态分析技术实践15- |% N: X& j. Q' M7 \% |- \6 \- }: v, d
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15/ f! }( t  h; A1 m3 l) \
1.7.2 PackedProgram.exe:穷途末路183 X( K" r+ c' i" r  n" v8 }
1.8 PE 文件头与分节18
1 z( H) t* l) ^5 u1.8.1 使用PEview 来分析PE 文件19% c4 ~) Q7 ?8 I/ {; g
1.8.2 使用Resource Hacker 工具来查看资源节22
  D& `5 E+ c' j' h' h5 P( z1.8.3 使用其他的PE 文件工具23! p# B- U: T; ?# N3 v  Y
1.8.4 PE 文件头概述23( h1 ]7 G! P0 \7 w2 ?( ?0 Y: I, V" l
1.9 小结24
- G; z* F  J3 Q% @7 [" v* U% L. V1.10 实验24* w7 {: D2 z, T4 u# o
7 r& _& `+ _5 Y) F
第2章 在虚拟机中分析恶意代码 27: X2 O* X) R2 u6 }) K8 r) u3 g3 N
6 P1 S1 n& u5 b% Y; k1 S$ ]+ V
2.1 虚拟机的结构27
' A) S0 u/ h7 \; O: w2.2 创建恶意代码分析机281 f7 |1 h' P( H1 @% O( `
2.2.1 配置VMware29
6 g  J( f6 M. S7 B9 o) @9 G2.2.2 断开网络309 c; {- o( ?: h. R1 W& Y
2.2.3 创建主机模式网络30
& V" m0 Y3 G7 I3 U2.2.4 使用多个虚拟机30( R2 F" l. |) W& y9 Z. T2 K
2.3 使用恶意代码分析机31
% Y! e4 X! }% u, k/ ?; a  A2.3.1 让恶意代码连接互联网31$ i5 E8 ^! B, H, `9 b, S5 {
2.3.2 连接和断开外围设备32
+ j5 _6 }+ @4 n1 f$ z+ x2.3.3 拍摄快照32& g2 ^' `3 `- ^& O
2.3.4 从虚拟机传输文件33
/ W9 _6 d& ?* S/ S2.4 使用VMware 进行恶意代码分析的风险34
$ P; v" k) M5 {+ I! f8 V  t+ P2.5 记录/重放:重复计算机运行轨迹34
6 ~" x, Q  M) U2.6 小结35+ y, ^5 n, ^/ f! p

  w* R9 a! ]1 N4 q第3章 动态分析基础技术 36

# {& A% f3 [: k# k+ W( u1 @' L  T2 `
3 B# k; p$ x  D, U3.1 沙箱:简便但粗糙的方法36
0 t8 n; k" d: w. c; U! {& _3.1.1 使用恶意代码沙箱360 v3 o6 N# s" e" `4 N
3.1.2 沙箱的缺点37" `4 O' q# ?8 h1 v+ e
3.2 运行恶意代码38, G+ X' C* R% s% E. |
3.3 进程监视器390 W/ E- n- w' p  g; p
3.3.1 进程监视器的显示40
1 ^1 @/ j+ j/ v" s( c3.3.2 进程监视器中的过滤41
0 O1 i# P" {! G- X! t3.4 使用进程浏览器(Process Explorer)来查看进程43
" g; ~* E7 s$ r5 O$ h  J* [3.4.1 进程浏览器的显示43
& H# N6 [9 Y/ o! a3.4.2 使用验证选项44
8 F) ]! J0 a: {! M: q! R3.4.3 比较字符串45. S- p5 `. [/ f; a! \- ?
3.4.4 使用依赖遍历器(Dependency Walker)458 ], s9 U, `0 }2 a  K' e
3.4.5 分析恶意文档46
/ j6 A2 M# I  O, H0 \1 L8 p$ U3.5 使用Regshot 来比较注册表快照46
/ X8 W7 i  `+ T' H! R3.6 模拟网络47
+ \& y( ?2 L4 t; j# K9 q' N, _3.6.1 使用ApateDNS47
3 i" P, y+ k& ?% U2 O" M7 V& Y3.6.2 使用Netcat 进行监视48
! f2 h/ X3 C/ V7 W3.7 使用Wireshark 进行数据包监听49
3 P2 ?- f( M) R. D' b5 g3.8 使用INetSim51
* e' B& ?7 U! @2 u1 U) n3.9 基础动态分析工具实践52# J  I! A7 E4 D0 X) m
3.10 小结55, ~1 y# q+ ]8 z; B( M" I
3.11 实验56
* H- g5 ~0 G: l( {/ N) h2 C( t/ u' @+ j
* ~) C" G: h3 ^% X6 g$ I1 o
第 2 篇 静态分析高级技术篇: H$ q- N; U: f/ j
" P- ~7 X0 R5 d$ |3 e/ x
第4章 x86 反汇编速成班 604 v/ S& V4 s3 {/ J1 A5 p& \5 R( t

6 t7 f4 D+ j2 N- Z: s4.1 抽象层次60
- Z/ w4 s4 W! m6 f& w. B/ ~7 g3 S4.2 逆向工程62; `. C; U, ^1 B2 x# R
4.3 x86 体系结构625 g+ m) [. N" m, w& E1 J
4.3.1 内存63
& c/ v* ~' m% f4 M4.3.2 指令64
* }! Y( H( Q0 A' ~. X" u) V' A* i4.3.3 操作码和字节序64
( I6 L- p  o  P- w4.3.4 操作数65
# d) p# G% h) d/ P+ W4.3.5 寄存器65! w# p" K; d" m4 g7 K0 k0 }* M+ E+ P
4.3.6 简单指令67" p  F. N% p! D# U1 T3 v# X
4.3.7 栈70" ^0 G5 z$ c6 F
4.3.8 条件指令73  H: r- b; A- P5 r, V
4.3.9 分支指令739 E# ?3 Q, g1 M% t
4.3.10 重复指令74
4 w( |+ {* S) W0 K5 K1 Y0 D) k4.3.11 C 语言主函数和偏移76
# `6 R5 e$ V" X( ^+ \8 X+ A. \4.3.12 更多信息:Intel x86 Architecture Manual77- C8 I  @8 x& O
4.4 小结78" [6 i7 H# K) ]5 d# e% i( M
/ Q& {5 o4 j6 L& g) w/ s
第5章 IDA Pro 79% Q6 j( I7 U, k
" N  x4 o- n- S* v( K
5.1 加载一个可执行文件79
& |, [+ E8 w' X5.2 IDA Pro 接口814 N( o$ V" @4 `
5.2.1 反汇编窗口模式81
* U* o" j9 L# T8 S) j7 v" f0 a5.2.2 对分析有用的窗口836 I  `: t8 d3 ~: m% [. ^
5.2.3 返回到默认视图83
9 p' ^, {4 A, q- S$ b5.2.4 导航IDA Pro 83
8 ]( `, K; u- b) y5.2.5 搜索85
* i) \7 T* N! v( ^1 y5.3 使用交叉引用86" l1 ~5 G* i2 K
5.3.1 代码交叉引用87+ ^, w( ~0 Z  K- r' D
5.3.2 数据交叉引用88- S0 _9 F) S5 D. G! w9 \
5.4 分析函数88
& \3 d% Q4 G, U; E7 v: a5.5 使用图形选项89
" L- o% o4 Y5 w* h. z! Q+ ?5.6 增强反汇编91" c6 s  _7 E4 S9 [; s1 M
5.6.1 重命名位置91& k& O, p0 k7 S
5.6.2 注释92
; E! c9 Y: c  |1 |5.6.3 格式化操作数92+ X& n, [* u& M3 \
5.6.4 使用命名的常量935 l+ k& O* b( o1 A2 |! q9 p
5.6.5 重新定义代码和数据94" K% V3 R) ]0 [: q3 i& J
5.7 用插件扩展IDA95
  d/ L) }: U2 X! Y5.7.1 使用IDC 脚本963 d9 S1 ]- [/ s# g, t
5.7.2 使用IDAPython97
: V4 a* k/ I  D/ C) W5.7.3 使用商业插件97" K( O1 l! i- p2 ]3 Y8 _' `# H
5.8 小结98
' w: j+ O2 b+ C, ~+ y/ [5.9 实验98
$ Q: p* o2 `8 s% C9 Q+ d' i2 f4 z/ s* h' G9 s! ?" |9 G
第6章 识别汇编中的C代码结构 100
3 l0 O$ b2 J  L3 X
4 O( ]4 U; W3 I9 l% {
6.1 全局与局部变量101/ O+ Q  F8 i1 M" k0 ~9 J
6.2 反汇编算术操作102! K! r- T% I, l' U+ r6 Q# \# b
6.3 识别if 语句104
# L" g( k0 `4 s5 ]% a- N6.3.1 用IDA Pro 图形化分析函数1054 A, v1 Z$ }- _+ d4 u! U% g- I
6.3.2 识别嵌套的if 语句106- L1 a& I8 p& W) ?, f* u
6.4 识别循环107' `5 y$ v7 K5 q
6.4.1 找到for 循环107
% y: i* k2 Q# `3 f: V/ ^. e4 ]& _$ K$ f( m6.4.2 找到while 循环109
9 W3 a  ^  f0 p8 O  A8 ]1 n, l5 w6.5 理解函数调用约定110
2 m. V$ r' B/ [- U3 m6.5.1 cdecl110$ \/ y' |! v- k+ C
6.5.2 stdcall 111* {/ x0 V. L$ ^5 U
6.5.3 fastcall 111, T; Q1 M: P  n; n/ M; {6 C' U
6.5.4 压栈与移动 111
6 ~) P5 R% O. H5 Y6 T6.6 分析switch 语句112
! V( @4 m- G% m2 h9 P& h+ }: r1 {6.6.1 If 样式1121 c4 B7 j1 V' b! B# C% _- w
6.6.2 跳转表114
9 U0 b/ |; u6 L5 J6.7 反汇编数组118
0 {! b/ r4 W5 r- a" A6.8 识别结构体119
1 z! w" R  C- I7 K9 X/ `6.9 分析链表遍历121% N2 m. V4 a! G+ G* V+ @
6.10 小结123% a* }! _: m7 G( e5 Z
6.11 实验123
! \; p. o8 M! g4 s; c; \6 |. U
第7章 分析恶意Windows程序 126
4 @6 K% a" Q4 d! ^( ?1 \
, t' T5 Y" m1 m% ]) B4 j- N- R7 G7 H- X- h
7.1 Windows API126
/ [% x9 S, y7 E2 {2 g7.1.1 类型和匈牙利表达法126
. [/ s9 P: d: U) o7.1.2 句柄127$ f4 Q; z- N$ j; Z: C7 ]
7.1.3 文件系统函数127
6 i$ A0 U: Y+ a, c. z- s7.1.4 特殊文件128( w6 `) b+ j$ R
7.2 Windows 注册表129
) ^0 f% n  l8 s6 B* n7.2.1 注册表根键130
# m4 Y4 m, U' t5 H" I4 y9 U$ }7.2.2 Regedit131
% w8 e- a. }* O& d" e# ^/ l6 ?; C7.2.3 自启动程序1316 r! |3 v; _& j5 b, t0 k& Z5 o
7.2.4 常用注册表函数131# h( v% Z8 x2 R) Z
7.2.5 练习分析注册表操作代码1324 K) }- M/ v7 S; e' P
7.2.6 使用.reg 文件的注册表脚本133
9 i/ U9 B9 C8 v, ^7.3 网络API133. {. J+ H# u+ _/ s, i
7.3.1 伯克利兼容套接字134# T  ]) y& d' _( ]4 Z' u
7.3.2 网络的服务器和客户端134
, S' E7 M, J5 [$ r7 [/ W# X7.3.3 WinINet API 135  `0 f7 h, p6 I7 w" y
7.4 跟踪恶意代码的运行1369 O7 ^- A4 @& G  C  Z6 I1 f
7.4.1 DLL1362 [; E9 ?, A; S1 V5 [+ Q' Z
7.4.2 进程137
8 ~- Q/ g* z0 e% r8 n$ b0 E7.4.3 线程1390 L: X% V; ~/ J3 [3 Y0 a# C, i! s
7.4.4 使用互斥量的进程间协作142  |2 b; F2 z0 n; d
7.4.5 服务1439 v# F' C( ~2 x7 V; h1 j
7.4.6 组件对象模型145, c- ]$ g! Q/ T& d0 b# a
7.4.7 异常:当事情出错时147) r* [+ Q; B& R2 v: k
7.5 内核与用户模式148
+ S/ G4 u! R. Q: l8 B! S7.6 原生API149
" ^1 ?% h7 O- t. \0 e/ n$ s0 F2 a7 Z7.7 小结151
7 x$ {3 C( f# J$ X$ X) g, V7.8 实验151- T7 X' X) _$ Q2 a8 a
: \5 T$ R' N2 t4 R3 W

2 R. {, M/ S3 q- @. }. p第 3 篇 动态分析高级技术篇
9 H0 Y5 y, P; ]5 H6 O7 Q! {1 n: W* E) \
第8章 动态调试 154

3 m) L6 }* m5 {" M( Z4 c2 t: K7 ~1 V, ?9 B# ?# K
8.1 源代码级与汇编级的调试器1549 {* l2 C2 ]" d/ q' T
8.2 内核模式与用户模式调试155$ p$ p3 O' [4 u
8.3 使用调试器155
1 r! Y& g3 ?* w8 D9 F8.3.1 单步调试155
. o- `) ]: d' x0 J8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1567 x# b8 I" J" R  U) G) a
8.3.3 用断点暂停执行157
3 ~+ w- y, a8 G6 o2 C3 Q: N7 y8.4 异常161
+ n5 C( \7 E* ?" _4 W$ z" A1 N8.4.1 首次和二次异常处理1626 N/ Q) d0 Y. y/ z( A. n0 i
8.4.2 常见异常162
8 z8 T5 ~- C+ Y: Y( ?- K8.5 使用调试器修改可执行文件163
  V+ q/ _0 E, `7 l3 ~# ]8.6 修改可执行程序的实践163
% U$ x7 K/ I' y7 r! T* T0 ~7 F8 [8.7 小结164( d" h1 l8 Q5 L* u+ V* Q( j7 R' y
1 c! e6 M0 n) x1 b# m
第9 章 OllyDbg 165
$ l: b0 f# \, d* I
+ @# p$ |$ l, T( ]* r* T( c
9.1 加载恶意代码165/ o- x/ I, o+ j9 E
9.1.1 打开一个可执行文件165: \0 V+ w. b8 R% C* Y- K
9.1.2 附加调试器到一个运行程序166& K- x& i3 O4 `- j# j: J
9.2 OllyDbg 的接口1670 `; [; _$ y+ G7 c
9.3 内存映射168
( [& z% ]7 m0 d1 F" J+ a# t9.3.1 基地址重定位169! a' h3 W' F- U* x% B" A- [' m4 h5 Q7 s
9.4 查看线程和堆栈170
* u/ k2 h0 Y+ Q; [9.5 执行代码1714 L% l4 X! `0 O, d
9.6 断点172) m) t8 {8 e. I. T
9.6.1 软件断点1736 H3 M8 l3 f7 E4 M7 V
9.6.2 条件断点174( S2 v3 b3 |* I5 J. \
9.6.3 硬件断点175
2 \( O. v( \& e! J+ V9.6.4 内存断点175( P+ k& ?) E# D, y* e
9.7 加载DLL176& Z# Y0 i6 Q- g2 m  z
9.8 跟踪177
7 m  e% _2 ^3 n* S/ X7 m  ^9.8.1 标准回溯跟踪177/ n9 `* T4 x0 \0 c  k
9.8.2 堆栈调用跟踪178
9 P* }( W$ s) `- O9.8.3 运行跟踪1781 W2 I4 @, X+ @$ I% z  ^9 m" P
9.8.4 跟踪Poison Ivy178' t. L& ^, a  b" r% }$ v1 N6 i
9.9 异常处理179* {: B9 h2 B' @. U% z3 W
9.10 修补180
! T! Q9 n* q% H) N: n9.11 分析shellcode181
) e: R: {& f2 _9.12 协助功能182
9 ]% U1 g( q+ F  t2 ?9.13 插件1822 ^" ^% `$ S" [: u1 ~5 I
9.13.1 OllyDump1834 G( }, i; B7 h. G4 \
9.13.2 调试器隐藏插件183
  C1 B0 ^+ k" j, p' t& `9.13.3 命令行184$ b+ C' f* `# q  V6 N
9.13.4 书签1859 d6 D4 ?8 a( b- I/ O
9.14 脚本调试185
% R. L6 ], z; _8 w# Q9 h$ G9.15 小结1865 t& |! C9 N* d& Y7 l
9.16 实验187
& U# w* e& ~0 T; J/ g' ~. O: D7 \
, x  X4 d1 l! t3 y. a2 G% Q第10章 使用WinDbg 调试内核 189
4 H0 k, S' c! h
! u9 _1 w# t' Q+ k4 F7 a2 h10.1 驱动与内核代码189
3 @' Z+ M! S6 M; h10.2 安装内核调试1910 ]3 j( R% n: x- w
10.3 使用WinDbg193
) U, D) c+ [2 x" S) T10.3.1 从内存中读取194
: M1 q8 l. o5 Z10.3.2 使用算术操作符194& W0 Y3 d6 `& z  U8 o
10.3.3 设置断点194
4 E# B! Z; Z7 {. S$ D6 p0 l) f5 ^10.3.4 列举模块195" c0 P3 t1 d$ h0 `2 N3 U
10.4 微软符号表1958 f2 @& U: o: S
10.4.1 搜索符号195! a& ?! O+ A" M- v' Q9 G
10.4.2 查看结构信息1969 \' p) ^8 F4 o5 E
10.4.3 配置Windows 符号表198) O4 p+ j# F0 f  W: ]& o9 ^- D- H
10.5 内核调试实践198
8 ?2 B# y% x% p) i10.5.1 用户空间的代码198
* Z% r& V- s% {1 U8 u/ _4 ]% m10.5.2 内核模式的代码200
6 c; D  |6 @( U10.5.3 查找驱动对象203
: [! {3 d8 m2 e# }$ ?10.6 Rootkit2048 q9 ~* s$ B+ ]7 a" n4 L7 v/ i
10.6.1 Rootkit 分析实践2053 F' d7 c* V& i9 w6 ^2 U
10.6.2 中断208
( \0 y" {/ `  q* u9 E: A10.7 加载驱动209
7 K& E4 }: P5 ]3 q1 c! o) Q  ]10.8 Windows Vista、Windows 7 和x64 版本的内核问题209. Q2 }) n  s1 _2 q, F0 Z
10.9 小结2105 S* \/ ]2 Z7 X/ z6 H$ u- y% s  }
10.10 实验210( ]+ x! d6 {$ q( R

. ^1 d2 X' B) V' E
) G$ r9 o- G5 @7 u- t; p第 4 篇 恶意代码功能篇
3 }% I! p; N; f; U* u  h$ e
6 B" |+ F' U$ j3 {  A& z3 q第11章 恶意代码行为 214  d& q( c8 [. W& M  p% q/ O

5 H4 \1 p% @# e* j8 x: \3 y11.1 下载器和启动器214( k6 o3 y$ f% m; r6 k' z2 ^
11.2 后门(backdoor)214
) G& x7 p4 t; }4 S. B11.2.1 反向shell215$ r1 }$ ^" {" _
11.2.2 远程控制工具216
3 E  c0 ?0 j. E11.2.3 僵尸网络216" L# p6 y/ K7 `9 c7 r7 S$ t1 A
11.2.4 远程控制工具与僵尸网络的比较217+ o) I7 e3 u6 Q/ F9 E+ e9 l
11.3 登录凭证窃密器217  F8 j- E& N2 t* B
11.3.1 GINA 拦截2175 r5 g8 k( ~) e1 J3 @" n
11.3.2 口令哈希转储218
- E! j, M1 t5 |; A' Y% D: Y11.3.3 击键记录221) I- Q5 ^% h* q5 c2 G
11.4 存活机制2239 T% D1 l0 N$ U+ o
11.4.1 Windows 注册表2237 @, Q; X8 x6 t5 m! H4 S3 X, ]
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
  M* u* s: r6 S- W11.4.3 DLL 加载顺序劫持227" b+ Y9 p% I1 [* \1 O5 N
11.5 提权228
( V. R" N3 S  x$ c0 j' ~3 g11.5.1 使用SeDebugPrivilege228
# y  g/ d3 F$ X11.6 隐藏它的踪迹——用户态的Rootkit229
+ k3 z. b2 T8 T. L/ N* u11.6.1 IAT Hook 230+ ^( \9 I1 D7 f/ N
11.6.2 Inline Hook 2312 L+ L3 N. R6 C9 a3 ~
11.7 小结232
% c6 y, q6 O7 V/ y4 f, A, C11.8 实验232
8 S( d1 q) a5 k% S6 V
% k8 J& y; o  Y3 `9 h" M0 `6 `0 [" m7 D第12章 隐蔽的恶意代码启动 234
* I. {. l  I% X: Q3 t& x2 A) C6 u% h4 R1 ]3 T7 Z
12.1 启动器(Launcher)234
0 |. T, L# U9 v' `9 }5 u+ |" ?12.2 进程注入234
. @3 k; f* t) {0 a( h! |12.2.1 DLL 注入235
; b  N, R% l' W7 s12.2.2 直接注入237
, h9 k: w! L$ `. b1 T6 ~12.3 进程替换238
4 s! n. f) A/ E( z, J$ s. t) |12.4 钩子(Hook)注入240
4 l8 Y7 ?# ?3 n1 b12.4.1 本地和远程钩子(Hook)240
" O5 p. ], |  Z$ f# v8 d, m12.4.2 使用钩子的击键记录器241, u6 i8 M4 H/ q/ ~
12.4.3 使用SetWindowsHookEx 241: J, U# [: f$ y& n: i4 d7 H
12.4.4 目标线程2417 g" ~# q" `5 V! f6 w% d2 |6 W
12.5 Detours 242
0 n; P& j. B8 N& v4 L12.6 APC 注入2432 S* b* p) y' @9 i# j
12.6.1 用户模式下APC 注入244
$ ?. a/ E% ~- V12.6.2 内核模式的APC 注入245
0 f  S; {( A2 J; D6 A12.7 小结246
- n$ `  a5 W: K0 ~12.8 实验246
' l& u9 k3 {$ s) U( ?6 }
/ ?) _/ N/ G  ~) k第13章 数据加密 2489 l! c+ z7 g& a) Y9 f3 m, z
1 V% @/ M* m6 N
13.1 分析加密算法的目的2483 \* L; W7 K( {7 t( @9 _/ V
13.2 简单的加密算法248
: V/ `- F5 B* B) _7 }1 H13.2.1 凯撒密码2490 W, [+ d3 H5 V
13.2.2 XOR249
% z2 m% {: S5 H' P5 k4 P! R13.2.3 其他一些简单的加密策略254
) m- X0 M: D, N: g# r  ?13.2.4 Base642554 X: U5 c2 k, [: U' @% ]; b' S
13.3 常见的加密算法2580 _1 o) W$ W: X" ~% J/ x
13.3.1 识别字符串和导入259
: l; S% p/ x, v" d% Z13.3.2 查找加密常量259" I# y) y, X5 {- w$ ]+ h+ `
13.3.3 查找高熵值内容261
% e' x- B9 Y  x/ V13.4 自定义加密262
+ k2 J; `4 e, h0 g0 f* a13.4.1 识别自定义加密263$ T/ M/ W4 \: f& k
13.4.2 攻击者使用自定义加密的优势265
2 D  S! o0 I, y" e. n3 M13.5 解密265
9 K+ Q# A) Y# R9 `' P* b& Y13.5.1 自解密265# D; B1 R2 S6 |4 u. w+ G% S
13.5.2 手动执行解密函数2664 B& n/ p+ O5 K& @5 B9 `( X9 Q
13.5.3 使用通用的解密规范267
; W4 F+ C7 N' F! p* F13.6 小结270
2 T& X3 b  K# N2 b# Q5 x' c13.7 实验271  w1 M) k" y. u
; _5 Y- B9 h. S; p3 o- g
第14章 恶意代码的网络特征273. _% R8 t, y8 L( x
, o0 p4 N% M5 a. v" N  Q
14.1 网络应对措施273
6 O6 y4 F% ~& e8 u$ g3 d# X6 |14.1.1 在原始环境中观察恶意代码273
! p' R" B4 N( e* W( j9 J& h14.1.2 恶意行为的痕迹274( U( a) h  s' c9 t0 k
14.1.3 OPSEC=操作安全性2756 {, W% a6 g" q, ^, g- h
14.2 安全地调查在线攻击者275
. B4 H9 H" I8 W14.2.1 间接性策略275  d% q0 p5 r6 x2 J
14.2.2 获取IP 地址和域名信息276/ i6 K8 M. W) D& a% q; d
14.3 基于内容的网络应对措施278& C1 r4 U- p2 `- n1 `& j  j8 {
14.3.1 使用Snort 进行入侵检测278* Z6 V/ b, O& U) Z+ Q3 M* }
14.3.2 深入观察279
6 S& u# k8 E( s, F2 S+ o14.4 结合动态和静态分析技术282) @. C8 @5 M2 y, p) M& N) B6 J
14.4.1 过度分析的危险283
! `4 \1 P) U  w: ]8 u& g. f; A/ }14.4.2 在众目睽睽下隐藏283, q/ q7 G, O0 h
14.4.3 理解周边代码286
! V: E  ]: ]6 k3 B( P7 ^/ W14.4.4 寻找网络操作代码287
! R( i2 F8 E- r$ a7 R1 T: h8 ^7 l14.4.5 了解网络内容的来源2888 S. P( k: @5 H, A
14.4.6 硬编码数据 vs. 临时数据289* N! V# m& ?0 k, o, C( Z# l
14.4.7 确定和利用编码步骤2891 S, m# H/ `; a8 E9 ^& f3 c3 g' d
14.4.8 创建特征291
7 ]/ {$ w" _- ?  x: N14.4.9 分析解析例程292
; m" f$ C4 w4 X+ e' q% J& j14.4.10 针对多个元素2945 b4 K: X" ]. _! s* V% i
14.5 了解攻击者的意图2959 T/ L# C2 q7 a9 A0 {. v9 O: L
14.6 小结2968 {- B" Z* x+ W" H$ W
14.7 实验2961 K! s  X% h8 o" |# f% u

7 v- M: u. _! C/ @8 j. x1 i. w2 l
& E% H2 a0 n2 y! W3 r( V1 A/ @. d第 5 篇 逆向工程# |9 h# O/ P- v( ?1 R
: }5 [9 R+ [# i5 _' f0 w
第15章 对抗反汇编 3003 c, y& l9 E6 N& H/ C4 f8 P  h

- L$ h. @: v$ U9 x15.1 何谓对抗反汇编技术3003 Y0 l* R( E& {' M7 U9 L' a
15.2 挫败反汇编算法301
2 h  q+ s: j1 {15.2.1 线性反汇编302# k! v' v( S' V* U/ o$ y: c
15.2.2 面向代码流的反汇编3035 z: ]2 i' Z. m
15.3 对抗反汇编技术306' Y2 L* f2 w( }. V, N8 N" K
15.3.1 相同目标的跳转指令306+ b- {' j) N& b; N& `
15.3.2 固定条件的跳转指令307) Y% f; G9 r1 U& }, t4 K8 {; L
15.3.3 无效的反汇编指令308
, G) C! w0 Y  [5 P  F! @* w* R15.3.4 用IDA Pro 对指令进行NOP替换311
( `( }, }) j; u7 y2 B15.4 混淆控制流图312. j/ e" _6 a  I7 C' v0 H
15.4.1 函数指针问题3129 ^7 B! q: @5 b, I, u
15.4.2 在IDA Pro 中添加代码的交叉引用3136 a, P1 A. d2 q  b, I% D& x$ B+ B
15.4.3 滥用返回指针313
6 q& ?8 @; z/ [% p15.4.4 滥用结构化异常处理315
/ n& W- j8 Q2 o3 t! |8 t; K15.5 挫败栈帧分析317
: _- ], h6 w9 d; ^3 x  o' t; O15.6 小结320. f" m9 M) }0 ]
15.7 实验320" y8 _$ N% [( q, [# }% C) K, t: c
8 D$ a9 l- E8 c. g! H
第16章 反调试技术322  s# L3 Y+ y/ h' o: g( v

: h6 S$ F6 y8 e7 A5 T# N; ^16.1 探测Windows 调试器322
/ h2 M$ R# N; a" ^1 q, ~16.1.1 使用Windows API322
2 c& }1 g2 g2 F5 S. d' ?' E16.1.2 手动检测数据结构324
0 W3 q6 V% ^7 y. ~" C, u16.1.3 系统痕迹检测326) Q( D: W3 ]6 I: I5 K' [
16.2 识别调试器的行为327% v$ h0 |# F  p" [% t& g& X
16.2.1 INT 扫描327& ]. J9 X& e4 V( T! E5 {2 L
16.2.2 执行代码校验和检查328* _( G8 i, G2 Y1 H" Q
16.2.3 时钟检测328
5 S" W1 w5 c& `16.3 干扰调试器的功能3308 t* q2 r( k% r6 C. s5 v7 f
16.3.1 使用TLS回调330
0 K: ~+ D9 [- J! w3 \' n9 {16.3.2 使用异常332& R$ F- u+ r: g0 f" K$ Q8 }
16.3.3 插入中断333+ {& _5 ^/ {0 a& f
16.4 调试器漏洞3347 _+ Q1 [* a; y
16.4.1 PE 头漏洞334
1 T$ a  f8 m! G# u& C+ K4 c16.4.2 OutputDebugString漏洞3364 o% d; A6 I9 t% C( l, b6 q5 a7 C
16.5 小结3369 g# N; I: c; H' w2 }
16.6 实验336
" `# {- [  W# E5 K
( a2 o. h8 @& S2 i& {/ l' w第17章 反虚拟机技术 3382 m/ u  q2 ~$ |. o* I4 d6 O/ W5 B

$ y& p- y3 u' [/ O$ A17.1 VMware 痕迹338
  }' ]4 s" I3 W3 ^7 @' d17.1.1 绕过VMware 痕迹的探测340
% R7 ]- N' L9 u- P% k% ?/ K" t17.1.2 探测内存痕迹342
. W$ l0 E0 s) h0 Y5 q/ l1 `. u" x17.2 查找漏洞指令342
) ]" L' O) |# B  ^( L" k) H17.2.1 使用Red Pill 反虚拟机技术343
3 o$ c: x) T& s$ [! J9 z17.2.2 使用No Pill 技术344
# ^: m; r) S+ U- b17.2.3 查询I/O 通信端口344
5 O3 d& w5 a5 Q  Z  a5 s6 K" _17.2.4 使用str 指令345
5 g- F, C- V& Y  t( C1 J17.2.5 反虚拟机的x86 指令346
6 d% X+ D1 c3 v17.2.6 在IDA Pro 中高亮显示反虚拟机代码3478 o& ^8 G5 e  }) v/ f
17.2.7 使用ScoopyNG347% i5 F0 x4 ^( \* m) j
17.3 调整设置348
* r. i9 j0 ^( y( n0 Q/ D! ^) p' f17.4 虚拟机逃逸3497 I# y9 o* D4 b4 j5 o" `
17.5 小结349
2 S5 I1 t7 d  c$ F: J5 F17.6 实验349
$ e& f' u0 w3 I# ~+ s3 {3 `( _) K+ }) u* Q' F! m  B( A
第18章 加壳与脱壳 352
, w( M! J9 t$ a. o6 N2 Z8 h+ G( g
2 E( A6 ~* v/ G  {18.1 剖析加壳3520 ~6 C* s( }  N: p
18.1.1 脱壳存根3537 |% `4 [' ^& i' c/ W
18.1.2 加载可执行文件353
+ P( z' ]2 j) ~9 S. _4 Y2 O6 i18.1.3 解析导入函数表353# j/ j/ S' Z8 y! u, c
18.1.4 尾部跳转354
/ j3 z- y0 m2 V5 D( i6 G18.1.5 图示脱壳过程354
9 N- _( b; H) r; t18.2 识别加壳程序355- \- ^! |* C0 `" L* X) h9 x) E& {! N; i
18.2.1 加壳程序的标识355
8 v8 F8 D. O% K% |! J2 t1 w18.2.2 熵计算356
2 i# L3 g! b) r$ [& L: y% @; d" j1 Z18.3 脱壳选项356
- K( r0 _+ G* v; Z  d18.4 自动脱壳356
9 j( d- \9 ^5 Z  p0 s18.5 手动脱壳357$ ?6 ]. ]" ^7 z% T2 ~% [0 \
18.5.1 使用导入重构器重构导入表3586 p2 e" W' Q8 A# H6 T! y. A+ |3 k
18.5.2 查找OEP359' I/ M3 Q: F. l8 x6 i
18.5.3 手动修复导入表363$ Z: f; I( E. ]# I2 N/ Z6 M
18.6 常见壳的技巧与窍门364, d5 [9 T/ a8 D) {4 R
18.6.1 UPX 364' n7 m. ]; p9 j2 V0 q. f! g2 {$ e
18.6.2 PECompact 365: |; v% A" B; Z, u, D! x
18.6.3 ASPack3658 ^. C) K0 Q% w5 F9 a
18.6.4 Petite 365
! I9 ^! P9 L- ]; P18.6.5 WinUpack 366" s. d2 P' p  P4 M8 Y6 ?. G8 k! D6 t/ }
18.6.6 Themida367( P$ o( G( ~( }! l9 ?
18.7 不完全脱壳情况下的分析368  l" g  w9 l  S7 O6 J
18.8 加壳DLL 368; \, J  G8 l8 q
18.9 小结369
/ F4 ^) r. g# |* Y+ v1 D18.10 实验369
  Z* w- U+ j# M5 `, v' ^* s/ J* i3 ?, i; ~

3 m7 O: I) g$ c6 c第 6 篇 高级专题
7 O! C  U8 M3 y# ^" `+ X$ C" f+ K; m- d4 @8 z1 e- X( R
第19章 shellcode 分析 372' Y* S2 e( |; ]  C2 z; G) T) C
" N7 D+ W# o; t! s
19.1 加载shellcode 进行分析372
4 [8 M2 @3 K! I! y1 i' r19.2 位置无关代码373* N/ j5 z7 P5 c4 R7 m% C
19.3 识别执行位置373, [& I) ~  Z9 m7 |
19.3.1 使用call/pop 指令374! P( g* ?! X. e) g2 ^3 p
19.3.2 使用fnstenv 指令376
9 X: p, ]) R+ d) T1 u19.4 手动符号解析377
5 F4 W5 m1 O- M( C+ L19.4.1 在内存中找到kernel32.dll3789 `: q1 n* J% @8 X6 X
19.4.2 解析PE 文件导出数据3805 E" g; I- M0 Q; ~
19.4.3 使用散列过的导出符号名3822 \' ?9 l) M/ w0 F
19.5 一个完整的Hello World 例子383- x5 E$ R  }+ B  T
19.6 shellcode 编码385
6 c) s2 F( h  |+ d, H' F' f19.7 空指令雪橇3875 E/ C# ~! i, Q3 {/ u
19.8 找到shellcode387! K3 D: |6 E* G8 V6 f- t' {
19.9 小结388
" T6 L* s7 p( ^! B19.10 实验389
; Z. e1 Q% z6 B! L) T; Z$ q) \
' N8 T4 d4 ^  I7 N第20章 C++代码分析 3912 ^& U1 i. e0 h  R0 K' m( k
& r5 O4 M6 L: ?: C; k, ]$ o6 H
20.1 面向对象的编程语言391
* [4 {7 P& d: ?/ L% ~  |1 ^* Q* P" B20.1.1 this 指针392
" b4 W" a; n1 J3 t$ R% Z1 x+ y2 d# J20.1.2 重载与修饰394% H& K' [7 E2 E
20.1.3 继承(Inheritance)和函数重写(Overriding)3950 f9 {4 y, L# {6 y: b: w
20.2 虚函数和非虚函数396, h+ D% E/ l; F
20.2.1 虚函数表的使用3983 J6 m+ t( q) B
20.2.2 识别虚函数表3992 J- L1 V9 X- l+ @6 O" N
20.3 创建和销毁对象4006 ~8 M: A" y2 [
20.4 小结401- h- K3 r# k" f1 N
20.5 实验401; }) _# }# ?9 X% I# Q8 K
" J+ T% I  x7 h2 L2 A! g
第21章 64 位恶意代码 403
& l: l5 n$ Q; \) M" k+ ~' `) D' k
21.1 为什么需要64 位恶意代码403
% s* R) J! C* C9 d8 K/ w21.2 x64 架构上的差别404; q6 Q! e. P. M3 u" I+ U4 h
21.2.1 x64 调用约定和栈使用上的差别406) D5 j& @& P6 [% Y3 J" k
21.2.2 64 位异常处理408
# Y" ^; f  c. B0 F+ @( z. ^21.3 在Windows 64 位上的Windows 32 位408
8 h+ _* \* u2 C( g( @21.4 恶意代码功能上的64位提示4094 K3 Z+ W+ @3 o  M5 G6 q
21.5 小结4106 Y9 a( a6 n; b+ w
21.6 实验410' I/ s$ G/ A# q2 {8 ~' Q
  n" b; _1 I8 k+ i% a. T4 m* X) R
附录A 常见Windows 函数列表 412& M: t# u: y* N0 h; ^( H

- K' o3 V0 p, F* z' R: x5 F" Q# B附录B 流行的恶意代码分析工具列表424" u6 f; g3 k6 y6 H

, L1 K# b- H- c2 c) o6 c" S* ?附录C 实验作业参考解答435
3 _; |8 l; q1 Y) N! y& y- `4 q: F, ]7 I+ `0 Z
附录D 致青春,基础软件开发的中国故事 6917 f9 D4 U9 T$ t. e# V

7 l3 i! ]; p4 K/ B- w$ I附录E Syser 操作入门 695
4 {! ?$ `6 V% B8 e6 {8 I1 i
) i( y0 R7 C4 B2 j  l
/ o/ A% Q, R! a0 z1 z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2016-11-26 00:13:53 | 显示全部楼层
すごい
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2016-11-26 08:26:25 | 显示全部楼层
二楼,甲鱼兄要出恶意代码课程吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2016-11-26 09:51:22 | 显示全部楼层
什么编程语音写的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-3-7 17:41:36 | 显示全部楼层
鱼蛋代码 发表于 2016-11-26 09:51
( M( A" M% o, s/ N" j0 V. h9 T什么编程语音写的?

" k; t8 d" V: x) I2 s% v3 Z* s什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-6-17 18:04:42 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-6-26 21:17:30 | 显示全部楼层
看看路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2017-10-18 17:34:37 | 显示全部楼层
感觉很厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-1-31 11:38:15 | 显示全部楼层
感觉好厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-2-12 20:45:30 | 显示全部楼层
good book
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-2-21 20:18:16 | 显示全部楼层
好书,详细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-3-5 17:28:05 | 显示全部楼层
看着就挺难的,应该先熟悉工具
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-3-6 20:41:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-4-2 12:01:35 | 显示全部楼层
要做一个很牛逼的程序员,网络安全方面有所建树,完了给国家做贡献
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
发表于 2018-7-8 21:57:05 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2018-9-24 18:35

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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