鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
" @5 G0 ], Q/ e. U5 _/ R
- ^  y/ k' _( |  K% t7 K9 J
书名:《恶意代码分析实战》1 _4 [% h: H8 t, u, B
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)* g2 B" z+ u4 a/ J* f. ~% n
译者:诸葛建伟,姜辉,张光凯
. T% r1 ^) {  @! U出版社:电子工业出版社, S; T5 x2 s8 V( b# Q5 C
出版年:2014年4月1日(第1版)8 p1 A, r: Y3 ?  I! _  m8 l
定价:128.00元" [' o* ~1 u% ~5 H
装帧:平装
* m+ ?6 d$ g4 DISBN:9787121224683
# q1 b3 d$ I% g7 I: f  T' ?2 A: Q( b/ R+ M9 I+ \
购买链接:- B: I1 z8 K- ^6 D) t. b  T

" ?: n, o, T- z  M( ?; B, O
$ J' K$ a" S: p2 E9 J4 E
亚马逊 -> 传送门5 ?5 q: ^$ O0 V: f, [5 E) |# t7 b! N
/ e  x0 o/ Y" b( n8 c, i5 w4 C
当当网 -> 传送门- l7 ]/ Q) r0 F( ]- |

* K4 v: M* v9 i- K1 I京东 -> 传送门
0 \, Y  A0 |7 W% R8 P5 y$ A9 g9 L3 O4 F* f0 T0 ^- t( t
天猫 -> 传送门
* F/ {+ J, J' ^4 |( J. `8 \1 Z$ }) T2 a  u1 C9 E9 f8 P
+ T0 x& h! ~6 c* `+ ?
内容简介:
- {* @. Y; I2 r3 O. Z: \" e! Q5 r+ E+ s! g; I0 k- M

3 j1 t4 P( f' |" S$ A9 e0 @7 @! L
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
$ x) u% }! x* l* N6 t' j7 J0 W8 |+ C& x1 Z. |+ I5 x
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。+ ]# f. r! h- f" v" i  ]4 b" ?
" }1 ^2 I4 \3 Z2 O+ d
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;; h! F, K4 |9 e0 S% c
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。, ^, m0 F& g: s; @4 I+ }

! E4 s6 H$ F1 b2 l目录:# W' a2 z6 Z1 g0 E. \3 B% A& V

% O# ?0 b- v3 y- q+ j3 x

, \' t3 e2 T$ k+ i$ X; ^. {4 r第0章 恶意代码分析技术入门1
3 D) D( Y( q/ J3 L/ {' A# z
1 }- r4 G7 P3 J4 U) r0.1 恶意代码分析目标1' v7 [- W1 i$ N" T% l
0.2 恶意代码分析技术2" Z8 e( @" e6 h6 b0 \+ W2 w/ d7 g8 @
0.2.1 静态分析基础技术2. n% {' B3 X& J% D
0.2.2 动态分析基础技术2
3 I: @+ c& |! v& u$ E0.2.3 静态分析高级技术2* P, d4 H- W3 F- x
0.2.4 动态分析高级技术2
$ D1 ~+ e' H3 y' B( T- n; k0.3 恶意代码类型3
- `5 w8 Y7 e0 D4 P0.4 恶意代码分析通用规则4
$ C+ |: W7 l* e1 F+ p+ V) C1 r% W
6 X  ^( q* R" X+ d$ ]5 J5 j0 F, q6 q6 _8 X3 @5 I) b5 e
第 1 篇 静态分析( S7 e( ~9 U# h

: o& q& ]) M3 c  w: P; d2 j第1章 静态分析基础技术 6' S7 t( I+ C; T: x1 |% i$ G" Q' A

4 r; ^9 ?3 c) Y. ?1.1 反病毒引擎扫描:实用的第一步6
: `* X# |, n3 C; C; s. ^1.2 哈希值:恶意代码的指纹7
: _/ s# z, z) D1.3 查找字符串7( L; b7 S9 v3 g7 V; V' V+ ~) r9 T
1.4 加壳与混淆恶意代码9
; T2 k9 I% S  m! O1.4.1 文件加壳10
: U9 h, J- f! {0 K, l+ H& {% Q1 u1.4.2 使用PEiD 检测加壳10
& W0 U+ |: ?" {# z1.5 PE 文件格式11
. K& I3 W+ W/ F% N' l1.6 链接库与函数12
2 x) d1 y# @6 n# R, _2 |5 Z: ^1.6.1 静态链接、运行时链接与动态链接12
" X- T, F0 I8 d: j; ~8 L* w4 `+ E1.6.2 使用Dependency Walker 工具探索动态链接函数13
  e( y; N- H+ t6 {' O1.6.3 导入函数14% o( O, s. z; C$ j
1.6.4 导出函数15
6 m' c# B! ]. z, R( |1.7 静态分析技术实践15
; z2 |/ p' i( a8 Y  N1 @  n& A* @6 M1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
! m6 a7 i3 m5 u2 E1.7.2 PackedProgram.exe:穷途末路18% w/ L7 W& P0 i' o, o
1.8 PE 文件头与分节18
  h0 D+ F" N: Y/ ^4 @1.8.1 使用PEview 来分析PE 文件19
( \! v! O- M$ I! `1.8.2 使用Resource Hacker 工具来查看资源节22+ I: N! D, N3 u
1.8.3 使用其他的PE 文件工具23
+ X" b3 k8 \* u- {3 f$ O6 H1.8.4 PE 文件头概述23- _# f4 N2 C- _% g& t* Q
1.9 小结24* w- q9 n1 C8 v/ z  M& b8 Q
1.10 实验24
8 P% T6 ]3 Z, _* D! g
/ u) `$ M+ X$ V+ g* E( n; P第2章 在虚拟机中分析恶意代码 27
/ ^9 l& n0 @; T7 N7 p0 m$ _, ?- |' a* L5 n. r
2.1 虚拟机的结构27
: D5 T4 E9 R' m. \  j& `9 C2.2 创建恶意代码分析机28! m1 I; G, @5 q
2.2.1 配置VMware29/ e7 A9 G0 l4 J# |* h
2.2.2 断开网络303 R. e+ e& t( |
2.2.3 创建主机模式网络30
3 K' t0 @! j3 ?3 j" k8 B2.2.4 使用多个虚拟机30; J* N5 o/ D  P- B4 {2 M) a
2.3 使用恶意代码分析机310 [1 F& _! F+ s3 T/ |/ g1 A+ T
2.3.1 让恶意代码连接互联网31
3 g; h* }: F( h0 B6 U2.3.2 连接和断开外围设备324 p3 r2 J1 P4 D% d; B3 L
2.3.3 拍摄快照32
. x8 m" k3 j) O5 M2.3.4 从虚拟机传输文件33
# }  a; a5 M) y! t8 N2.4 使用VMware 进行恶意代码分析的风险34
3 C' f5 f& J0 o( Q( o0 {2.5 记录/重放:重复计算机运行轨迹34
+ Q! F/ ]- f1 D9 k2.6 小结35. K/ Z3 s+ a4 k6 v6 u4 E( J

+ |) W/ j: l4 _3 ^" v4 v第3章 动态分析基础技术 36
) S, M4 W7 V9 `% n" a9 v
. _0 r* n  ^8 C7 U8 e1 o
3.1 沙箱:简便但粗糙的方法36, {; |# J2 z/ r
3.1.1 使用恶意代码沙箱36
# K; r+ r. s7 W- e  k2 o3.1.2 沙箱的缺点37! Q1 z6 Q3 e5 y  M; D- N' q. a
3.2 运行恶意代码383 d! k& ~" j' V: i& _
3.3 进程监视器392 j) O# B* N( O
3.3.1 进程监视器的显示40
5 j! b. Q( k- c3.3.2 进程监视器中的过滤41
- }4 }7 g0 _6 k1 Y% H7 T; f3.4 使用进程浏览器(Process Explorer)来查看进程43+ a/ u* M' T* W( w
3.4.1 进程浏览器的显示43
# E# S  F; O8 Q% g; r0 Z3.4.2 使用验证选项44
# N, m" }1 U- P; w6 x- n! v( k3.4.3 比较字符串45/ t& p" n# r/ D% `7 w
3.4.4 使用依赖遍历器(Dependency Walker)45, ~/ `1 e; k1 T8 `+ X
3.4.5 分析恶意文档46( E# U6 y  |4 o; J( k( }
3.5 使用Regshot 来比较注册表快照46* A& }1 j/ M; A2 U
3.6 模拟网络47
9 M4 q2 K, O# P' J4 U3.6.1 使用ApateDNS47
7 m  e: L( O! [5 `- k3.6.2 使用Netcat 进行监视48
& D/ z! n! F* v3.7 使用Wireshark 进行数据包监听495 \9 ]: F1 }  L3 k4 Y6 H
3.8 使用INetSim51
6 X' Q6 D, \8 q) k! D3.9 基础动态分析工具实践52
: V( z/ ~7 c% ?: d3.10 小结553 e; A* U% |; k7 ^( K) |6 g* q% y
3.11 实验56
$ j9 {( J4 |$ ~7 J1 f5 O/ i/ p" K: I% v  w2 l  f) L  r$ P0 Q: ]

" H* _* Q" G9 m6 T' c; W  V第 2 篇 静态分析高级技术篇
, H' [; l4 l3 M" P+ ^0 G
/ N5 l0 q) Z8 |  V1 c第4章 x86 反汇编速成班 60
8 s! O7 v5 x0 g7 x6 ~: v) w1 \4 `& _" q
4.1 抽象层次60' ?  c8 `0 G4 D, D; u$ ^) O
4.2 逆向工程629 Y: l. p/ F  o, |: s0 j% }
4.3 x86 体系结构62: n# }/ Y; ]3 ~
4.3.1 内存637 w% l- Z. ~. Z& d
4.3.2 指令64
9 X# Y% u# ^' Z4 z* ?* m. i4.3.3 操作码和字节序64
" b% v! `1 }' X) G$ _- Z& U4.3.4 操作数65
( ~4 i6 ~, K0 u4.3.5 寄存器65
6 l* M) W0 S, m4.3.6 简单指令67
; _5 k7 a: m1 f. C) L4.3.7 栈70- c, T! |2 Y% T4 t; v& H6 U  |
4.3.8 条件指令73
' K) L0 l' _$ p$ }4.3.9 分支指令739 K" K, a% J" B3 {! ]8 Q
4.3.10 重复指令74
% d+ e3 h6 h0 _5 W2 j4.3.11 C 语言主函数和偏移76
6 D2 f- A" F/ Q- U: f, B4.3.12 更多信息:Intel x86 Architecture Manual77
, i# z  C+ f" R8 f  R9 o# v4.4 小结78
1 v# a9 m  \0 v6 W4 ?1 t8 G( _  L3 l7 @( z3 l1 p) ]/ \2 t9 z3 k" F
第5章 IDA Pro 791 g( X7 j, _+ r9 R% Y1 f$ Y

" i$ g4 X1 `0 L& _8 a% j5.1 加载一个可执行文件79
' M& G2 R1 n9 Y5 g) d; i8 B$ b' W5.2 IDA Pro 接口81
3 X9 a3 ^6 V) b* F) t9 y5.2.1 反汇编窗口模式817 F$ p6 `; w! i" i1 _0 M0 `
5.2.2 对分析有用的窗口83) J4 ~1 D: ^/ Y
5.2.3 返回到默认视图83
% U$ W4 C! k( t0 f8 a& `5.2.4 导航IDA Pro 83) H% l4 `$ a0 O  w% J
5.2.5 搜索85
% `" @* e2 W) s) n5.3 使用交叉引用86
$ n% y* }, b9 U  n8 A& Q5.3.1 代码交叉引用871 H0 q( f  y4 O2 M6 U+ }9 K
5.3.2 数据交叉引用88
5 W4 R7 |7 O4 F8 }* s5.4 分析函数88' }# v! N2 u+ P; T; h" @
5.5 使用图形选项897 S* s- d+ v+ c' ]: V
5.6 增强反汇编91
) X3 B" I$ K4 X* `$ l* Q5.6.1 重命名位置91( m! A" c! }- F$ D0 S% r+ B4 Y7 f
5.6.2 注释92
/ x; L  L( P, J0 i9 t5.6.3 格式化操作数92
! g  ^; g* a$ t  k# A5.6.4 使用命名的常量93/ y$ U2 F2 p: C8 j# t! Y
5.6.5 重新定义代码和数据94; f  m5 E4 C( N; k9 J0 W8 w
5.7 用插件扩展IDA951 M5 _. [0 n" K
5.7.1 使用IDC 脚本96
; c* \6 J1 h- h; c5.7.2 使用IDAPython97
- G% w6 L& }) d$ }! p: I0 g5.7.3 使用商业插件97* {8 W$ _5 I. P8 \3 @7 o
5.8 小结98
, X2 E( T* q8 @  w5.9 实验98" U% h) ?! M( M! I/ `3 K

2 @4 u5 ^) S  t, k0 Y$ M第6章 识别汇编中的C代码结构 100
3 o5 Y  a3 ^6 ~; X

+ B7 e" U- n) q" `, p6.1 全局与局部变量101
0 q* s+ ~0 N7 ^: T6.2 反汇编算术操作102. M) C8 r: E. a8 z/ K3 ]8 T
6.3 识别if 语句104+ A) Q! z2 t) O! ^$ Y# P
6.3.1 用IDA Pro 图形化分析函数1055 F5 `  q) Q3 o7 X5 b# Y
6.3.2 识别嵌套的if 语句106  L( ]: _3 e9 d
6.4 识别循环107
  k# P8 ^, m+ N+ M, h6.4.1 找到for 循环107
6 |" [# y; Y: ?5 l) O6.4.2 找到while 循环109
( W7 L0 V# r8 Y# s! V6.5 理解函数调用约定110+ d7 w1 h- o/ ^* t! l# c) g
6.5.1 cdecl110
0 T; U5 u) {* e( v" |0 J6.5.2 stdcall 111
, {' x0 K+ l8 r; s  J6.5.3 fastcall 1110 @* s" f# r' K, s2 Q
6.5.4 压栈与移动 111: h1 {( r3 ?- A4 _
6.6 分析switch 语句112
  _- {$ K3 Q! F# Y, h6.6.1 If 样式1128 J' W0 b# t, C% v" R% O- ^
6.6.2 跳转表114
( }7 ?1 M. i. o7 [& ?4 v1 K6.7 反汇编数组118) H6 U8 g6 F- B+ h5 q
6.8 识别结构体119
9 w: x! B) H% \, s6.9 分析链表遍历121
3 h- l7 ~" \$ Q. y6.10 小结123; O' y8 u/ ]+ D8 ~& y: s5 \: J
6.11 实验123
7 \, H0 F* r6 t1 e9 ?7 E$ ^! y+ P" S* C1 ?4 n' c
第7章 分析恶意Windows程序 126

! G8 n+ P# Q- @& d7 y/ [8 z3 z# D* `8 ]  S" L- b
7.1 Windows API126+ |6 E8 H, F" p7 l" m$ M/ w0 y' x
7.1.1 类型和匈牙利表达法126. [( j/ M& N) A: N; D
7.1.2 句柄127" X; O0 Z* |& @" j1 Q. R) a3 S
7.1.3 文件系统函数127
9 y8 c  A  V8 m: @, q( K7.1.4 特殊文件128( l1 B, V+ F# T
7.2 Windows 注册表129
6 }) u8 P( A) H1 h5 e" g7.2.1 注册表根键1307 a4 i8 \, l, n4 Y
7.2.2 Regedit131, V7 j7 ?4 U$ X/ q0 o
7.2.3 自启动程序131
, E/ {; q) J6 K7 C# p- ?1 \7.2.4 常用注册表函数131! \% J3 M+ {% l2 p% C
7.2.5 练习分析注册表操作代码132; C3 R: O5 x; l  Z3 ~) f$ ^- N
7.2.6 使用.reg 文件的注册表脚本133
7 @7 Y+ V2 O" _* o+ ?/ c/ L7.3 网络API133" ^3 R* p+ n0 h9 k! S% ]
7.3.1 伯克利兼容套接字1340 Y, U& v: r) E- J2 @5 K
7.3.2 网络的服务器和客户端134
! |1 A4 ^+ L3 P( @2 Z7.3.3 WinINet API 1357 e4 A. F& S& @/ B0 t& Q3 L& t7 q% b
7.4 跟踪恶意代码的运行136& |* S- v% r' X+ O0 d% o3 Z
7.4.1 DLL136
) c- @( H# N$ G& p9 a; h8 _& x! ]9 Y7.4.2 进程1376 W3 {$ N8 K' a# d2 e
7.4.3 线程139
' w/ `( E  f. C3 P4 J, z2 X7.4.4 使用互斥量的进程间协作1421 x! O2 T& Z" y8 B5 A
7.4.5 服务1439 p: n$ y3 @/ ~7 m% l3 k6 f0 A5 X: X
7.4.6 组件对象模型1457 R+ j) X. A" e  B# Z2 S
7.4.7 异常:当事情出错时147: @  W0 w4 ]" _% I
7.5 内核与用户模式148. d4 O6 O# k4 J+ I
7.6 原生API149
7 x6 j3 H0 M! ^: y7.7 小结151- B( d6 Y' m/ z" k- C! b
7.8 实验151' C: `$ _! Y" h, o9 A' U
9 J# s$ _5 d" @$ f7 C

9 w0 Y: X5 }- k9 V5 Y3 C' K# m第 3 篇 动态分析高级技术篇! c" y$ F6 G* o* q; t1 ~- C

9 h& \( J4 u) y" g4 c$ l, M第8章 动态调试 154

  ~8 ?1 r- L, l+ j1 E1 F* X3 D! i; c" G, c% R
8.1 源代码级与汇编级的调试器154
- w4 X/ d8 N0 E8.2 内核模式与用户模式调试155
1 l. p/ T. c9 V. x; C2 O$ ?8.3 使用调试器155" Y$ G* V# t7 @% \% n6 _( ?( c
8.3.1 单步调试155
# V' n) T: x9 R: \/ J/ m( U8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156" o. p' f$ Q3 X- _& @0 b
8.3.3 用断点暂停执行157
7 S* K# B' [; p( e6 ~0 r8 s8.4 异常161
6 N2 _8 v7 v8 _0 [: g9 A( [8.4.1 首次和二次异常处理162( N1 t9 Y2 k7 V0 O+ z+ \2 ~$ {
8.4.2 常见异常162
, H3 N  l* D/ x* N. H! N4 q/ i8.5 使用调试器修改可执行文件163
" \6 r+ H! Z/ n' w' e8.6 修改可执行程序的实践163) L8 i- \9 f! ~5 b2 H* ?
8.7 小结164- A, ?( O$ \& p/ Z, K# L

' ]1 h# h' J2 d# x' h) u第9 章 OllyDbg 165

3 |2 e, }7 U8 m8 p9 o5 C$ ?! F! s* A% h: N( l% _
9.1 加载恶意代码165
& ]' X9 N) F% W; Q9.1.1 打开一个可执行文件165
' t: L& M& r9 Z; e6 P- C9.1.2 附加调试器到一个运行程序166, ^& a1 n. a5 x+ `# M% d
9.2 OllyDbg 的接口167# M6 b( l; y, J, U' x
9.3 内存映射168: {* c1 \+ ]+ a( x/ s
9.3.1 基地址重定位169. T( W( f1 k, S8 s2 I3 O
9.4 查看线程和堆栈170
7 Q  K' Q; A8 o7 v* Q9.5 执行代码171: c8 S! X3 n( N" i7 p
9.6 断点1720 L* R7 B0 j6 u" C6 A& L# O
9.6.1 软件断点173& p- ^( y/ M5 N
9.6.2 条件断点174
! {/ |, g4 k! V! u9 c9.6.3 硬件断点175% a% H# |* }/ Q, P+ F# C
9.6.4 内存断点175
$ K' Q3 V4 J2 W; c6 C" {1 k9.7 加载DLL176: l* ~1 E2 n" A. I. d
9.8 跟踪1774 Q. _% e7 W0 t8 K* G3 R0 j
9.8.1 标准回溯跟踪1773 z3 I4 D" Q* u$ \" n
9.8.2 堆栈调用跟踪178& G6 ^3 d7 q4 G1 M& D7 i+ z
9.8.3 运行跟踪178
# e  S2 o! N' J* y" I8 Y9 F9.8.4 跟踪Poison Ivy178
4 C% ^2 R& ?% D7 g/ m9 L" z9.9 异常处理179
0 a/ E  |* D! \8 U9.10 修补180
  `& }* y: ]/ d! e5 N7 H) b9.11 分析shellcode181
/ v- k4 C; X8 p6 Z: e8 w( y9.12 协助功能1823 m0 [, o" R* I9 w/ I
9.13 插件182
2 G5 P: K% I+ x& F7 v/ D. p9.13.1 OllyDump1839 ~# d" _' y6 z9 [2 S1 |/ E- N
9.13.2 调试器隐藏插件183
  K; T7 A) u3 u7 B9.13.3 命令行1845 b9 b5 p+ u' T5 M
9.13.4 书签185+ O6 m* L# H5 V$ K
9.14 脚本调试185
! Q+ ~; B2 B% E/ p& h; Y0 v9.15 小结186
7 X0 t6 }1 }; t* ^1 ?5 z9.16 实验1878 Y& u# l$ Z8 C. V% m+ {6 o
: s6 {, d) _$ Y( r9 Y1 `
第10章 使用WinDbg 调试内核 189& f6 V  y7 D, x6 j6 g' ~9 K9 `

: V0 G0 o6 X6 Q9 M10.1 驱动与内核代码189
; j/ w# h. d. M10.2 安装内核调试191+ W0 S. G8 V0 Y0 t  f2 G
10.3 使用WinDbg193( I. ]& B6 t2 W2 a2 R8 ]; G( B3 @
10.3.1 从内存中读取1945 }" c# {4 i3 w4 M
10.3.2 使用算术操作符194- B4 y. c& s, y0 C; o) l
10.3.3 设置断点194
" V" ~6 g* F! {" _10.3.4 列举模块1958 G" R3 B! q- }% |+ _; z6 ^
10.4 微软符号表195
0 ^8 {( V: S) y- N" |+ ?  X) \10.4.1 搜索符号195
1 E  O- y* B+ q3 y10.4.2 查看结构信息196
: t4 p% q: T7 ^2 I# M8 y6 g10.4.3 配置Windows 符号表198
, V6 I  C9 S8 |5 R10.5 内核调试实践198
$ v' g, }6 M" i' w* }10.5.1 用户空间的代码198/ a, X' ~* y4 Z2 V! G2 O3 _
10.5.2 内核模式的代码2007 a- ?. B& ^- S9 D* x" n
10.5.3 查找驱动对象203
; i; \0 Z( |  H$ N; V10.6 Rootkit204
( J) u; a& Y0 u, x; W5 z/ ]10.6.1 Rootkit 分析实践205
' ]& Y' L* c5 {3 T$ a. w! a4 a! S10.6.2 中断208
+ Y9 d" q4 l- F: A. Z7 o  t10.7 加载驱动209/ D: l- |; F' W0 `
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
( U0 V8 n( q5 t- D6 z10.9 小结210. j; T/ A* O" n7 ~9 B
10.10 实验210" P: b9 w, y/ R
% d' ^9 f0 |# g' n9 p* B/ B
; j5 i3 [3 ?! }! n4 s
第 4 篇 恶意代码功能篇
' U) g! V3 I: k! V1 H) x  I
- T' Z6 F* r4 A第11章 恶意代码行为 214
/ T" L# t$ b$ n6 H- F- m7 c: g- r+ D, @
11.1 下载器和启动器214
- i0 Z/ J# N$ o0 s8 R11.2 后门(backdoor)214
# f2 l4 W) r$ k- j; Z6 u' C( u11.2.1 反向shell215! v( v+ c& |7 P, X# e
11.2.2 远程控制工具216! ^6 q( A6 I3 G
11.2.3 僵尸网络216
/ u) w  b" L/ V9 a0 l8 M11.2.4 远程控制工具与僵尸网络的比较217
( \, d7 m; ?. b( v( _11.3 登录凭证窃密器217: s: S& d, M# ~8 w0 Z
11.3.1 GINA 拦截217. O. K# [  R$ w$ M* p+ A: C* j2 O; i
11.3.2 口令哈希转储218% B: e9 Z4 B+ E: t
11.3.3 击键记录221
% y6 F' C% }/ J) y8 z11.4 存活机制223
, B  v: ?! S& _$ q8 B" l3 d; E2 I9 K11.4.1 Windows 注册表223$ ~/ M" Y4 v  @
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225: R( n: w5 Z9 |/ E
11.4.3 DLL 加载顺序劫持227! v3 |. D4 o9 |2 u! }6 o% y
11.5 提权228
' d+ ^$ `; m) k/ Z11.5.1 使用SeDebugPrivilege228
+ ]+ r8 m# H. n+ e11.6 隐藏它的踪迹——用户态的Rootkit229
  I. m1 \, k  h% Y  `/ O11.6.1 IAT Hook 230
' G- A& Z1 m% [' ?7 D1 O11.6.2 Inline Hook 231
' l4 N' ~* i' N; X6 l& a11.7 小结2323 z  m  _* e$ |* b: A$ Y" ^
11.8 实验232
/ i7 V. s! F8 U3 p  Q* d, Y
) Y& X8 D4 q' U5 A; k& R' c第12章 隐蔽的恶意代码启动 234
& s/ u% S, m5 [& N/ G* H' t9 s! t4 @# }2 d$ x6 U7 s$ Z6 o/ N
12.1 启动器(Launcher)234
+ t% T' C6 S) E) G12.2 进程注入234
9 C& a/ E/ k8 [9 {" u8 O& K12.2.1 DLL 注入235
( Q: n) r8 v7 ~# s2 R12.2.2 直接注入237
! m) {4 ^: X. a' @: ^/ }12.3 进程替换238
, G  R5 F8 O3 }5 V0 h3 e' G12.4 钩子(Hook)注入240
" Y' I: p+ T3 @$ _12.4.1 本地和远程钩子(Hook)240
0 b6 y. `+ A2 v6 H5 c- p2 z12.4.2 使用钩子的击键记录器241
; [3 d# i* Z2 \12.4.3 使用SetWindowsHookEx 241* |. {) [7 H; x1 Z0 o
12.4.4 目标线程241
9 n5 v! {* a; d* }12.5 Detours 242$ a* z7 B# g( m2 n
12.6 APC 注入243
3 I; }! N* c1 h( d( _9 n! D: e12.6.1 用户模式下APC 注入244
/ F0 o2 z$ _" ~12.6.2 内核模式的APC 注入245: w6 _0 T6 E2 l! o% Q- s
12.7 小结246
" C) Z' H3 L6 ?; |( M8 i12.8 实验2469 ^4 h4 w1 o5 g9 E$ Z
9 I, T# V6 X$ y7 m
第13章 数据加密 2480 u' u. c4 B& x  E' O5 r

5 N) d7 E- C! Q3 u" ?7 a3 A& J13.1 分析加密算法的目的2484 \7 a/ Y4 m- y7 C3 i6 V9 S
13.2 简单的加密算法248) K" K0 ^8 Y4 h* d5 S1 ]+ W4 [" i
13.2.1 凯撒密码249
% u% f: i1 x! ?( f9 b: t) V13.2.2 XOR249) |3 r; D+ P& B% ~
13.2.3 其他一些简单的加密策略254( R; }) P& c$ m9 K$ G
13.2.4 Base64255
$ v! B  `9 |0 H! H1 {13.3 常见的加密算法258, m6 F9 f+ B! V: D3 s) U
13.3.1 识别字符串和导入259
, p2 ?, D% }+ Y7 ^; ^  z13.3.2 查找加密常量259
& \, y0 [, T) I13.3.3 查找高熵值内容261
! t, j/ L0 W# w; _1 C13.4 自定义加密262" x% z8 _' \0 A7 P6 J; J
13.4.1 识别自定义加密263# r& |4 v  L: H& b) i( L$ |5 G# b
13.4.2 攻击者使用自定义加密的优势265$ K1 g; ^7 A3 ^  z5 `+ X! |; ?
13.5 解密265  k1 o) [+ w; R! c3 G" L8 U
13.5.1 自解密265! C5 x/ r- f2 Y/ b+ U- Z! E
13.5.2 手动执行解密函数266
9 p# M5 a) n0 z" B13.5.3 使用通用的解密规范267$ V' `, _% y  `# Z8 f0 k% M
13.6 小结270
* Y* n5 ]- C$ W4 D# V13.7 实验271
1 {& `7 m$ ^% t( M1 T' `' f: O% P9 q! {+ x/ \$ Y3 _- y' F( h
第14章 恶意代码的网络特征273
' i/ z$ l0 C. q2 i6 Q4 t
! h; G3 r8 y8 Q* U7 X14.1 网络应对措施273
+ |2 v( B' M# R. S/ j14.1.1 在原始环境中观察恶意代码273
/ F! A1 p/ _) W+ v' o! X6 _14.1.2 恶意行为的痕迹274) U& ?/ n$ F! _3 O& @# P" R
14.1.3 OPSEC=操作安全性2758 g# Z) ~$ E! r7 x
14.2 安全地调查在线攻击者275
: @3 I' j" p: }. w; Y8 s6 x4 Y14.2.1 间接性策略275
2 E4 l3 n1 W$ s9 h% H( K' \14.2.2 获取IP 地址和域名信息2764 z$ m8 F& w  Q5 S) T7 C1 G
14.3 基于内容的网络应对措施278
$ `5 N  [7 }7 B3 l% T4 ]14.3.1 使用Snort 进行入侵检测278
3 b: E7 l8 Q9 n$ G5 `14.3.2 深入观察279" w- w( L. O3 k+ L' G
14.4 结合动态和静态分析技术2828 C5 _4 z6 u" t  ~3 I. O9 g5 p
14.4.1 过度分析的危险283
# g6 k% w( B: _2 O9 I14.4.2 在众目睽睽下隐藏283
6 d8 q9 a6 b- V# \# c14.4.3 理解周边代码2866 K  E; B7 W) V3 a% c, M) _: W
14.4.4 寻找网络操作代码287
- [0 ~* i2 P9 _  x3 m14.4.5 了解网络内容的来源288
# o) ~, v1 e/ F5 D" w14.4.6 硬编码数据 vs. 临时数据289
; ^5 N; N1 q; H/ z  B6 x  l14.4.7 确定和利用编码步骤2892 H/ l0 \  r( a$ d  x3 u
14.4.8 创建特征2913 q9 y5 }  ?, A: r. p( _$ {; e/ W& e3 Y
14.4.9 分析解析例程292
6 S$ ^4 S+ T, J14.4.10 针对多个元素294
# Y* _/ K& d8 `4 a3 R9 l9 f3 E14.5 了解攻击者的意图295
+ J9 _$ I- R/ q3 [4 F14.6 小结296
- W; M, h  I$ \, \( e14.7 实验296
  i" {- F! y8 U2 E& v1 s* I! |& w. c, ]. j

6 t' I7 c- E3 H8 [3 N第 5 篇 逆向工程% M: M! q7 l2 k. ^. `3 s5 R) P6 d
  H4 l" ?! _* `+ [4 G2 ^8 j
第15章 对抗反汇编 300; K; m% Q- h7 I2 Q9 d! n0 W% w7 \) K% B
) E& `: M* d% |6 ~0 H
15.1 何谓对抗反汇编技术300# v$ L' e) @5 Y) D
15.2 挫败反汇编算法301
5 R" q. ~" b; D! @+ z  b3 P* c15.2.1 线性反汇编302. Z$ J% w4 e; v8 n% s( _/ p
15.2.2 面向代码流的反汇编303
% W1 E( I, C: Q/ u" Z$ j15.3 对抗反汇编技术306
5 d, a( n% S9 v* l; \/ U15.3.1 相同目标的跳转指令306/ l7 X; B" g6 N0 j5 k. L* R
15.3.2 固定条件的跳转指令307. T' @) B$ ]  U7 p
15.3.3 无效的反汇编指令3087 K  t9 E8 `  `8 M7 V7 j1 l
15.3.4 用IDA Pro 对指令进行NOP替换311, H8 ^& F& r/ v6 b  c1 q2 S7 D4 K
15.4 混淆控制流图312
5 Z$ [7 R1 R0 ^! O# F0 ?* C- G15.4.1 函数指针问题312
9 N) o& a, a3 y0 g4 S0 k/ s15.4.2 在IDA Pro 中添加代码的交叉引用3132 ~2 R1 C( ^3 ^4 B8 Q
15.4.3 滥用返回指针313
1 r  q1 z4 Q8 O4 d( u) F1 W15.4.4 滥用结构化异常处理3152 E# |9 G' J1 d; W+ Z
15.5 挫败栈帧分析317
0 J' L2 t5 w$ Z3 k1 [15.6 小结320, x8 i9 B! W  c/ q8 H
15.7 实验320/ a# [, w; g+ r/ u
/ }1 {) ?: k, {/ ?) h
第16章 反调试技术3223 {7 r& a/ b7 P5 l- a

0 l9 e& f. _! v16.1 探测Windows 调试器322
9 B" \: f9 w4 T$ F/ ~/ V16.1.1 使用Windows API322
% X6 F' S. e' K16.1.2 手动检测数据结构324
2 b; N2 ]$ W, V% D0 z2 J* e16.1.3 系统痕迹检测326
! c, P; ^: T6 j% W! n, l- H+ v16.2 识别调试器的行为327
: T7 }! ^6 ?: X3 G3 }3 s8 [% B+ L16.2.1 INT 扫描327
. s) F& }* |. t- x7 [- B7 n# y16.2.2 执行代码校验和检查328
( h7 T; d* a/ d1 J16.2.3 时钟检测328" A+ H" ^+ Y$ }7 ^' B9 c
16.3 干扰调试器的功能330
$ x5 S* t0 r, D9 `5 x0 Y5 L16.3.1 使用TLS回调330( c2 T* C( A; o8 H8 S. o+ F- ^# R
16.3.2 使用异常332
7 u' |7 r2 `  I& l9 i' D7 R1 q16.3.3 插入中断333; M. ^3 U; ^. B
16.4 调试器漏洞334
5 o; W. C9 _, z2 i. m16.4.1 PE 头漏洞3349 q, t# y* \4 `: {/ H7 [( l
16.4.2 OutputDebugString漏洞3361 O; C7 b1 s4 H: x2 Q
16.5 小结336/ n' L3 y! G8 b" Y+ m
16.6 实验3363 y" W& h& `" Z* G- O! x
& f, w" f/ c. s2 S( _
第17章 反虚拟机技术 338
" a. ~  X7 w/ N9 ^7 L
1 F; Z, c9 W2 I1 q, R17.1 VMware 痕迹338) @: F3 b9 O6 h5 V) S  S
17.1.1 绕过VMware 痕迹的探测340! s2 X+ p. G3 ]- f6 D7 d) f: u
17.1.2 探测内存痕迹342! a: q0 q+ ]4 g+ a; \
17.2 查找漏洞指令342$ S+ ^8 s. T; Y0 Z! B
17.2.1 使用Red Pill 反虚拟机技术343
4 W+ F: J0 ?. n) ~$ w) v17.2.2 使用No Pill 技术344
/ {1 M' B, Y# t: K( S0 S- e17.2.3 查询I/O 通信端口344
7 }  H' k# d1 Y5 D1 v4 J  ~17.2.4 使用str 指令345
5 M  P" o' A! W. M* k$ M17.2.5 反虚拟机的x86 指令3467 G$ }- L4 c4 h) K" Z8 q
17.2.6 在IDA Pro 中高亮显示反虚拟机代码3478 N. j- x+ N) M+ D* N4 N6 m4 U# l* Q
17.2.7 使用ScoopyNG347
9 k; \& M. _( G- Q) \0 W17.3 调整设置348
( s2 M; V; Y5 F* @/ ?17.4 虚拟机逃逸3499 `0 h0 ^3 u( _( \0 p' ]
17.5 小结3493 E3 z$ X' ^2 q4 \0 h* D
17.6 实验349
9 t0 m( E, `( U1 x# ]1 u: C# {6 ~. D( {: n6 V
第18章 加壳与脱壳 352
7 D( u- C$ w) H/ r' H* \+ m1 N! t' V  O6 K
18.1 剖析加壳352
' V( G% M7 _7 z6 Q18.1.1 脱壳存根3538 |+ y9 H' S# m2 W6 X# n8 [* \
18.1.2 加载可执行文件353
+ G( w6 a+ o3 P+ O! q: j" _18.1.3 解析导入函数表353/ J5 F5 _. ~$ P$ e9 d
18.1.4 尾部跳转354
4 b; ^- s8 {# s) W18.1.5 图示脱壳过程3546 D+ ~! W5 h1 V0 B9 S+ k
18.2 识别加壳程序355' _3 L* j- w% [
18.2.1 加壳程序的标识3550 B4 \2 g" i. H9 F
18.2.2 熵计算3564 ?# s$ y8 x! `  n' C3 R" o) J
18.3 脱壳选项356
# \, R# j4 t1 `18.4 自动脱壳356
$ k) f- B% }; w2 X5 J& Q18.5 手动脱壳357
7 C! `+ S3 R3 N! K+ p' e" n( Q8 I18.5.1 使用导入重构器重构导入表358+ Z5 ?2 u! L4 ^  @
18.5.2 查找OEP359
/ A$ t6 d4 m8 ]7 R% w; n4 }18.5.3 手动修复导入表363
1 k4 u3 M* B* j/ X. q' J1 h18.6 常见壳的技巧与窍门3640 C) {% ]1 N" q0 E: b* q
18.6.1 UPX 364
' f% {, i& c) p4 R6 N18.6.2 PECompact 365
4 }# i1 B0 y4 u/ s18.6.3 ASPack365
2 F8 W  X" p- c& }7 L! g5 P4 n18.6.4 Petite 365" W. J% Z3 l  S3 _1 K" t1 j
18.6.5 WinUpack 366$ e& A" k3 v& D) x; P) ?0 ]
18.6.6 Themida367$ f  P& C! j4 f# }2 Z
18.7 不完全脱壳情况下的分析368# m  G! Z1 a# M" u$ H5 W  U
18.8 加壳DLL 368/ w$ W) ]9 |* S  |: H* ?; r
18.9 小结369# s6 T2 k. A$ o& [
18.10 实验369
. N8 o2 B, a5 [. S4 r: q0 H) f! {7 M4 S! H% a

6 c# w3 p1 k% X: [3 q7 V第 6 篇 高级专题
- [; v) h) z; p8 p3 [1 I- ]: ^0 r2 O6 a! J( z0 a
第19章 shellcode 分析 372
& e1 ~4 X5 c5 Q8 Y, W! t' i2 s! c, \* I
19.1 加载shellcode 进行分析372/ d2 e" f# t6 {: |
19.2 位置无关代码373
$ _6 S1 B" W6 {: O" l2 f( _19.3 识别执行位置373/ C# ~3 X6 S+ F8 V# E* r
19.3.1 使用call/pop 指令374: p$ {, s; T. c$ I
19.3.2 使用fnstenv 指令376
4 A7 X5 O2 A- ]' e$ R19.4 手动符号解析377* w. o1 j! k$ i3 A! k. t
19.4.1 在内存中找到kernel32.dll378
9 i1 r8 m$ h! o+ P19.4.2 解析PE 文件导出数据380+ j. j, a' P% `
19.4.3 使用散列过的导出符号名382
+ h/ M( H, S, W3 ^, U; f; Q1 v/ Z! L19.5 一个完整的Hello World 例子383) y+ |# R* Z. `  X$ ?4 _6 u
19.6 shellcode 编码385; ~2 }" U: q! z- O( G
19.7 空指令雪橇3872 Q; X) H, E$ b9 b' T% O
19.8 找到shellcode3874 M+ y2 x) \# `" h. S6 j
19.9 小结388
* [; @6 _) ?9 [/ P2 |& f/ ~19.10 实验389
) u' U1 c4 q! b9 R/ ?4 r  L
) v$ Z- ^$ N7 A0 n/ X' ~2 n第20章 C++代码分析 3917 x* r0 P' k% K) Y4 d! f

" F( J0 y; f+ w7 K20.1 面向对象的编程语言391( y' `! Y+ x# f1 L. C; w2 {9 u
20.1.1 this 指针392$ X) r1 _0 O2 D9 B
20.1.2 重载与修饰394
1 T( ]% B+ K' C' s, X20.1.3 继承(Inheritance)和函数重写(Overriding)395
3 H5 n2 |) d) F/ R' X20.2 虚函数和非虚函数396
1 [4 c7 \1 B4 B5 K4 _20.2.1 虚函数表的使用398
' P( U. i7 A' p- ~5 Y( L20.2.2 识别虚函数表399( X( p" E4 v8 H+ K8 A( I
20.3 创建和销毁对象400
9 f' z: M! s5 E( a/ W20.4 小结401
' z0 V. V" d' ^. I7 E  m& M20.5 实验401
; v5 Y' i8 q- Z, p  K( p4 X! j3 a' C% F! o7 R
第21章 64 位恶意代码 403
- V/ }3 L) y5 C. ~  q9 Z+ Z
7 ~- A1 v% j6 s# y) s. j% Y) j21.1 为什么需要64 位恶意代码403, i: j* q% s9 I3 ~; F
21.2 x64 架构上的差别404
# H! U( Q8 e" G* R7 M* R: H+ c( s21.2.1 x64 调用约定和栈使用上的差别4061 T, ~5 W- ^) }* q8 W( a
21.2.2 64 位异常处理408
5 E" x2 w+ G- @" M( F21.3 在Windows 64 位上的Windows 32 位408
1 v2 k+ j+ |4 E1 e7 ]21.4 恶意代码功能上的64位提示409
' X! L5 B( x& d& |1 v/ ~. ]3 R21.5 小结410
0 N* ~$ q& K& |3 y5 l5 t, I& z21.6 实验410
. m4 s" X% e1 c  }' i+ z. k& ^, e1 }4 A. {% w& l4 f
附录A 常见Windows 函数列表 4126 c1 G8 ~+ n, l1 K4 _

0 A$ g, R" A/ Y) p  v7 U- n. S0 x附录B 流行的恶意代码分析工具列表424
; h" W  y% W1 F* `1 a. Y. Y2 r, j' T& l
附录C 实验作业参考解答435  X* w1 c* J2 e8 c, L
  I$ W5 B; @% j' x7 l; E; C! }0 G
附录D 致青春,基础软件开发的中国故事 691
6 _7 X3 j# h4 x3 n: m. {$ f- J6 R% y, n' W
附录E Syser 操作入门 695' ]. l0 F; k5 u+ P0 [8 Q' D
" _5 V4 }: t6 Q1 P' M
  R7 F. `7 K$ k7 h6 k3 g
想知道小甲鱼最近在做啥?请访问 -> 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
! P& X. x9 y$ `) M  ?2 [% T; u什么编程语音写的?

3 c! g( u0 b+ {9 p! j8 `8 u! 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-1 21:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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