鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
; M" R- x6 r3 Y5 l2 v

0 N* I! @& s4 K7 z$ X书名:《恶意代码分析实战》
8 U2 ?3 w7 D  m# A  Y. V" O8 e. ?作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
& O6 b; k) k# _5 F6 g" q$ [" ~译者:诸葛建伟,姜辉,张光凯 " ?4 S5 p) Q0 R: U  T# L- q. a
出版社:电子工业出版社2 b1 X8 }$ i- _3 M+ ^$ F8 ~" v
出版年:2014年4月1日(第1版); i! R/ N% K+ s4 |5 `# E
定价:128.00元
3 C# l' ?. E$ f0 X  k9 L2 r装帧:平装: g* Z$ a2 I- o; {/ \$ |) s
ISBN:97871212246834 H& B5 n- {! d' M
; v- Z; z2 b( x+ D5 }
购买链接:
; N) h! z" {9 t7 a( O5 a8 g9 y6 Z
/ Y8 N/ D2 H, q: ^# I1 V
# C! B4 A# ?$ A! s) ^% U" ?& D, Q
亚马逊 -> 传送门0 I0 U# ^5 m" k& X

+ ?+ J8 ^/ y. C, J- E6 a- O% r当当网 -> 传送门
7 V' [% |% C) U( l
% ~6 J  \# r$ b. J京东 -> 传送门- G5 W3 K: m% N$ U0 z
- h5 w( N) O) C5 h) o
天猫 -> 传送门
: }% R, P) \- `! `4 \. ?8 a" A( I& [# ]! I- o

( `6 R3 U" L5 a" K: _内容简介:; a5 X; r- r% L% S3 H- E% g
( c- x' B, S$ J5 g% |1 n


4 Y) ^% @8 Y0 d( l《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。3 L  T# Z! g4 N- `6 k: y
+ F8 L! _+ l1 W: j: ^% m5 c
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
5 h* B; H$ C& X3 j2 X* V7 T" r/ l+ G8 R. s
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
0 g9 `& m$ ~7 ^' \2 c% b7 ?! a针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。2 w# V, y2 d& F: W

: G! e7 ^) a% A- [/ J) n- F% _& Z  S1 D目录:
6 H( {  J4 W5 u; w5 ]# [3 t# U: [$ \/ T- e$ y/ _+ P, {  |( w

6 q+ C; g9 O+ w, o6 s
第0章 恶意代码分析技术入门1
, U/ E6 g0 N% l- s8 t
+ J) X+ }% q2 p) P1 g, N0.1 恶意代码分析目标16 }$ p6 e3 M: `  j) C
0.2 恶意代码分析技术25 y3 U6 v9 k' t1 B! g: H4 I$ w9 u
0.2.1 静态分析基础技术2# x! ^# ~) Z) U, ?4 ?6 j5 T, \
0.2.2 动态分析基础技术2
' n  ]$ y: q3 j: V; n0.2.3 静态分析高级技术2
* c$ e! E$ G. b& O# M0.2.4 动态分析高级技术2( p3 X" F/ J( P) P# j
0.3 恶意代码类型3
! J; {0 L+ I) {# K# `" _+ ]4 M4 i& `0.4 恶意代码分析通用规则41 p8 X1 b- ^$ m2 S# p- b4 H
: b0 K. w! q0 i9 m2 D

/ @/ q5 b7 a( F7 ]第 1 篇 静态分析2 B. c  M/ }+ p% t' A

7 e" o1 ?7 Q9 x& H0 O第1章 静态分析基础技术 6
, V2 b6 _* O. r
1 Z/ |. Y/ n/ k% s
1.1 反病毒引擎扫描:实用的第一步67 B% ~3 i; ]- t% C
1.2 哈希值:恶意代码的指纹7) o- x% X' |6 S% O# ]5 R
1.3 查找字符串7
9 J% i4 S: O: f1 T1.4 加壳与混淆恶意代码9
$ C1 `$ E( r1 n% _1.4.1 文件加壳10
8 i* w' \$ M/ A" \) J( ?1.4.2 使用PEiD 检测加壳10
) J, u0 y0 Y  ^6 ~1.5 PE 文件格式11/ C8 K: m+ v; F2 Y! @
1.6 链接库与函数120 a6 E2 y* e2 B( H5 q( i
1.6.1 静态链接、运行时链接与动态链接12
7 `5 G0 @# I' {( N1.6.2 使用Dependency Walker 工具探索动态链接函数13
6 W6 D! D% T- u! E0 b8 {- D& G1.6.3 导入函数14* {5 s5 S* A8 y3 E2 ^& \' P( Z" b
1.6.4 导出函数158 R+ A: q7 N3 \$ K2 O: l- `% d
1.7 静态分析技术实践151 ]( X1 L9 r0 J! y
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件155 v6 A1 o# V1 A' e
1.7.2 PackedProgram.exe:穷途末路18" j* U) z5 `+ c/ _0 y
1.8 PE 文件头与分节18
. ~  @  L! W. L4 s2 P1.8.1 使用PEview 来分析PE 文件19
0 G' U! C  y$ g7 Z! y0 ~1.8.2 使用Resource Hacker 工具来查看资源节22+ J( G; ]5 u! ]% l  x! h  _
1.8.3 使用其他的PE 文件工具23
; E: L' D2 x- Y8 |. F4 T1 F1.8.4 PE 文件头概述23
3 g. i" v5 X% U" _9 G% n1.9 小结24) i$ I- l) ^$ H, i9 M4 }" Z7 q8 l
1.10 实验24
4 ]. `2 V- n+ R$ n
# p9 A% R# e% k6 `第2章 在虚拟机中分析恶意代码 27
" V) G5 `9 _) I3 N$ U2 ~. w' v, N& O7 J  a% K3 a
2.1 虚拟机的结构27
! `: [# p4 n- `( P# h" R. c2.2 创建恶意代码分析机28+ ^) X- j/ i2 n! U+ U5 |( }
2.2.1 配置VMware29
9 k" r0 q2 f: {- v) q2.2.2 断开网络30: y% h9 k* {& `- C1 I, O7 `
2.2.3 创建主机模式网络30/ C7 T8 H3 c; v
2.2.4 使用多个虚拟机30- E3 t7 h; o1 I4 M% \9 v0 K# O6 t
2.3 使用恶意代码分析机31
' X0 u  U. @2 U& r. N' o& b1 D# L2.3.1 让恶意代码连接互联网31! x, E6 G" j4 R, k% j
2.3.2 连接和断开外围设备32
4 @. L9 X; @4 r2.3.3 拍摄快照32
- _2 g. B0 n/ I0 R& C! D, Y8 B2.3.4 从虚拟机传输文件331 H9 W! _1 o9 @+ X
2.4 使用VMware 进行恶意代码分析的风险34
/ w* v! u; Q; o8 `7 ?2.5 记录/重放:重复计算机运行轨迹343 k' K- ?9 h' P, |: q. D
2.6 小结35* y# n& X' l2 M/ {8 d: v
) T; J9 [5 ?  v, ^
第3章 动态分析基础技术 36
( n/ B& K& a9 Y" e% ?& |

3 D8 D+ D: {1 |) j3.1 沙箱:简便但粗糙的方法36
8 H0 I# z+ N0 E' U; Z3.1.1 使用恶意代码沙箱36
2 z; t; U7 ^; R2 I3 t& @. S8 v+ O3.1.2 沙箱的缺点37. ~$ _0 s' u3 a5 S, F6 K! H! h) A/ t: N
3.2 运行恶意代码38! i6 s7 L# w: v: R; C6 W/ z  m
3.3 进程监视器39: n+ @1 J" L" S) D/ `2 q: p" P& k3 o
3.3.1 进程监视器的显示40- j- w$ g; g$ M3 w' o% ~
3.3.2 进程监视器中的过滤41' q9 O: G# |" M* I. B& Z
3.4 使用进程浏览器(Process Explorer)来查看进程43
/ l$ b1 J& V9 V$ L6 C3.4.1 进程浏览器的显示43
4 a4 v' Z; U' f" v( l3.4.2 使用验证选项44# e4 \9 z( L  H5 l8 K( m5 x
3.4.3 比较字符串453 A9 f3 v7 w1 l
3.4.4 使用依赖遍历器(Dependency Walker)45
( C9 |) k0 c2 o( o5 z3.4.5 分析恶意文档46
+ ]8 E& H: y- b1 P( S( X, A5 }/ a3.5 使用Regshot 来比较注册表快照46
9 a9 F# E  H: @' w1 e3.6 模拟网络47# j. l0 u0 a" ~% j1 A
3.6.1 使用ApateDNS47
* S* R$ o$ z: T& m, n1 X- @3.6.2 使用Netcat 进行监视482 }$ k0 F& g2 h7 }* B, ^
3.7 使用Wireshark 进行数据包监听49
( b$ t( [# t, N3.8 使用INetSim51
/ o2 e, I# }! _0 R3.9 基础动态分析工具实践52) a7 l' J$ \; @, o# F3 x
3.10 小结55
, T/ p2 W3 v2 v: G% x5 `4 O3.11 实验564 r# [6 s* e/ d* z

) Z  V1 V. X. H
  J. N! k# j7 g! R2 x第 2 篇 静态分析高级技术篇6 ^  }7 _  z2 K8 M: \
. d' x; a- i9 Z* b4 Y
第4章 x86 反汇编速成班 608 ^; V! _, D4 x7 B7 M+ d
+ W# K: t, L! c: ]7 d5 g
4.1 抽象层次60
$ ~! ^7 O7 n$ w6 h: X4.2 逆向工程62. U. r" _  i' j0 k
4.3 x86 体系结构62
! _- R/ p# X; ]* Y1 ?4.3.1 内存63
2 n2 D6 x$ |* Q4.3.2 指令642 H- G/ r6 \7 p& c4 {
4.3.3 操作码和字节序64
4 K$ C+ y5 e; L, U! Z* M5 I% i4.3.4 操作数65* r/ J% c' {  {/ [& u
4.3.5 寄存器65
# t" n$ J+ ^, ~0 [  o) K) d: y4.3.6 简单指令678 ?5 u4 N% L0 d- X! l% q& I
4.3.7 栈70
9 \. c4 w5 h: I/ U1 s: f2 t2 f4.3.8 条件指令73
5 N1 a, P6 \4 v0 h( ~- G; `! g  ]4.3.9 分支指令73
  ~4 g) `+ b2 z  W9 ]4.3.10 重复指令749 g" G, u0 p- W% S+ h+ g8 F
4.3.11 C 语言主函数和偏移764 J; J4 y' T  n7 r/ F  I) N. q. i- X
4.3.12 更多信息:Intel x86 Architecture Manual77
! ^$ J. @, A/ b" s1 E4.4 小结78. A+ l! c- Z* E4 r! f6 ~9 x
, c% Z  k7 g1 z9 g* T- L1 _8 ?
第5章 IDA Pro 79
/ }5 P2 s0 F( y) O% J4 u
) `/ o1 M* b: W6 C9 L8 b, Y4 c5.1 加载一个可执行文件79
5 X! B, Y* N3 k$ D5 E$ ~5.2 IDA Pro 接口81
5 u/ r9 L  M' Z2 d+ g/ M0 |5.2.1 反汇编窗口模式811 p! ~, {7 z3 K& w
5.2.2 对分析有用的窗口83  F7 d6 k4 e/ R8 t2 V9 e) e
5.2.3 返回到默认视图83# w) Y) ]2 V' m* I2 K' h6 ]+ @
5.2.4 导航IDA Pro 83
8 g. Y0 }- k" ?- \- v, u5.2.5 搜索85
3 |, ?4 ?$ v0 M+ h+ p: g5.3 使用交叉引用86
4 B6 P+ a& b' K! f' }5.3.1 代码交叉引用87
. T8 W- w6 y* O: Y: V$ @0 ~$ g" v/ y  _5.3.2 数据交叉引用88
+ @4 n3 C% o7 O5.4 分析函数88
" L8 i% B2 }0 l5 i5.5 使用图形选项89
+ r) l5 D, C/ p. e5.6 增强反汇编91+ m& \2 P* d# E3 r6 E% v' r0 m$ e
5.6.1 重命名位置91, J: k5 p2 Q) P; o! n1 a; f
5.6.2 注释92
3 [1 n/ h! E% R  r5.6.3 格式化操作数92
" ?& }) z# B- S' T% J! L5.6.4 使用命名的常量93: s" ~3 J  D: C  s  K# E, y
5.6.5 重新定义代码和数据94) {9 Q8 T2 ~1 ?1 p: ^
5.7 用插件扩展IDA95. X+ T' g4 s' x  ~# x
5.7.1 使用IDC 脚本96
8 q5 m! a! y% j- E0 T/ H5.7.2 使用IDAPython97- x6 z. v3 B9 n# {1 _6 O
5.7.3 使用商业插件97; e( h+ f, Y9 Z3 r2 Q5 u+ T
5.8 小结98* Z" t& ^6 s; E  F  f& o! B
5.9 实验98+ i( U$ o* i- F3 w. A  H2 `8 B
+ S& P! ~0 }0 E" x
第6章 识别汇编中的C代码结构 100

- r: y/ ]  @# s9 W/ s9 s) C4 U7 ~+ E. I
6.1 全局与局部变量101" r# |8 _0 L1 f, v/ A
6.2 反汇编算术操作102
' B, u  R" P, x0 g6.3 识别if 语句104
9 D8 L) V6 j" O6.3.1 用IDA Pro 图形化分析函数105
; a! x' @# _  K7 T% W& X4 |6.3.2 识别嵌套的if 语句106
) ?# C2 U9 E  v+ Q6.4 识别循环107& H' w1 _9 g/ b* d% w4 W( I1 y
6.4.1 找到for 循环107+ W" n% J( T6 n( g; f; C
6.4.2 找到while 循环109
) X' N8 m' a3 J( s4 X6.5 理解函数调用约定110; M. |3 W  _4 p
6.5.1 cdecl110
( h' A, J5 y4 i6 [" _" B6.5.2 stdcall 1116 A2 [. D4 {6 o+ v5 @9 |
6.5.3 fastcall 1118 l) W; P6 b; G; v
6.5.4 压栈与移动 111
8 Q6 X& W2 O' A, i1 U' n6.6 分析switch 语句1120 A- _! g2 F8 Q8 X  |! [+ [
6.6.1 If 样式112" _( o2 V  G, L
6.6.2 跳转表114
0 r6 O$ N9 |  v3 I( X6.7 反汇编数组118( T$ |, _+ H% O
6.8 识别结构体1190 |+ A/ ]7 ^4 g* C8 q2 L
6.9 分析链表遍历121
  c" e& P' ?6 N! s+ u0 f: S+ d6.10 小结123
/ D  H( G6 Y7 A/ T5 U* {: `6.11 实验123; Y' e7 \- |; a# o+ K! f7 e
6 [0 y0 d7 x( r+ R. d
第7章 分析恶意Windows程序 126
; T) @9 |0 Z6 ]5 H
  B; }! L  L) f* i& Y
7.1 Windows API126
8 j, G% j% o; {& ]7 K( A! T7.1.1 类型和匈牙利表达法126
' J( G$ c9 q# e: n+ Z/ x& ]: ]: {7.1.2 句柄1275 U) v; E% _+ H5 ?! K9 n
7.1.3 文件系统函数127
7 }& T$ j! M" j4 I0 R  F* v7.1.4 特殊文件128+ L5 x3 u' {- O
7.2 Windows 注册表129# w* s+ P8 S  t  N' @
7.2.1 注册表根键130
5 x( G; q- S0 g' v+ K! k7.2.2 Regedit131
% S/ \4 z* G3 t/ c3 }0 B7.2.3 自启动程序131
3 E' M! t& g( X) k9 Y4 h7 P2 F1 i' v7.2.4 常用注册表函数1317 d- d" O/ z. P
7.2.5 练习分析注册表操作代码1324 e" U, w0 f4 p5 f4 w$ g- X
7.2.6 使用.reg 文件的注册表脚本133" V  a  f4 G3 O; k
7.3 网络API133
6 i7 `! d7 _! w& \8 b  p7 O+ v7.3.1 伯克利兼容套接字134; `$ ^3 x9 @. T
7.3.2 网络的服务器和客户端1349 v  S; l, d: Q! H! u! v! Z8 z
7.3.3 WinINet API 135
! ]4 O: K; p8 k$ W; U, S7.4 跟踪恶意代码的运行136
) j4 _  s7 o) s7.4.1 DLL136
+ ~: x5 l" c" A( W/ P7.4.2 进程137
8 A' \) ?% b$ U$ o2 R7.4.3 线程139: N  Z. V1 G3 J5 D; _" }- t- Z/ D0 k
7.4.4 使用互斥量的进程间协作142
6 E& p% }$ p/ U& `  p7.4.5 服务143
( H+ U# t3 j% ?) W% V7.4.6 组件对象模型145
6 R3 {0 s! Y+ P& E2 ?2 T( c: s7.4.7 异常:当事情出错时147
* g- P8 N" w0 H0 i- Q7.5 内核与用户模式148
  `' \1 ~( Y" n# w7.6 原生API149
/ M; c/ j! P; s. T; g  ^7.7 小结151
) J; Y& `$ u! i' N% E7.8 实验151# O9 R+ r1 P( y9 X/ U2 Z" s: E8 R

, T% p& I7 W0 y/ N: W
! k# ~* m- U; m' [2 d! ?5 e第 3 篇 动态分析高级技术篇& ?" G/ X  T. n" b

, t7 p3 p, V1 e% _: N9 p9 E第8章 动态调试 154
! j7 B$ ~% B  O$ d2 P, [: m. _

# z5 S6 B8 B# ?2 b. _$ X: l4 b8.1 源代码级与汇编级的调试器154
% X# I( [$ @1 u( z8 N" ?8.2 内核模式与用户模式调试155, e) _& i  c& o( k! V
8.3 使用调试器155
! a3 Q# ]/ @- C& H& y8.3.1 单步调试155* U# `1 y/ y1 G" s+ I, H  W
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156. l' R& e* \! b
8.3.3 用断点暂停执行157
1 i( B2 Z4 P2 V: p) M, s: A8.4 异常161
3 ]+ |8 G. {( D: |1 R0 o- [8.4.1 首次和二次异常处理162
1 E2 K/ N2 H5 k3 ?) M3 @# W( i8.4.2 常见异常162) F5 S- g: B1 x' }/ O$ C
8.5 使用调试器修改可执行文件163
( O: E! t7 b: s1 ?8.6 修改可执行程序的实践163# f8 H2 H. \' y7 p0 x8 z$ Z
8.7 小结164
& N& d+ C' C2 y! j/ M* X' W9 t/ H$ g( ~; K
第9 章 OllyDbg 165
" Y6 C/ m) j# a$ X

+ M+ {* N, m6 Z1 p* Z9.1 加载恶意代码165
* W4 g$ \6 w! t# N0 v1 k3 y9.1.1 打开一个可执行文件1653 d! x; ]; a2 x" `
9.1.2 附加调试器到一个运行程序166
1 ?: O: ^3 L6 L  W9.2 OllyDbg 的接口167
  n& f: U5 l) p3 T9.3 内存映射1685 I3 @3 r/ c' f& d4 l% F2 _, F1 C( Y
9.3.1 基地址重定位169- p( G9 A( N3 X9 k6 p
9.4 查看线程和堆栈170
/ q0 C$ D+ S7 o9.5 执行代码171: x$ y; ?" A" U+ h% X
9.6 断点172. H& D# j: f8 E  ?; F
9.6.1 软件断点173& g$ [& O3 ?/ P+ r. T
9.6.2 条件断点174
  W0 _8 V* t* ?( J8 V, W9.6.3 硬件断点175
& L; m6 c+ m$ B  C- m$ ^* @9.6.4 内存断点175
! X% n. \6 V! N0 f' ~9.7 加载DLL176
$ M5 u9 R! t$ ~. D8 A9.8 跟踪177
, F+ I- A' M! g1 ]7 K! }9.8.1 标准回溯跟踪177
% K$ j4 Q$ j  i9.8.2 堆栈调用跟踪1786 b- O% y; j# ]& Z
9.8.3 运行跟踪178
/ R' g7 x* l% l+ Y& `  f. A. {% p7 D9.8.4 跟踪Poison Ivy178
. f+ q0 B+ w$ f5 J* t5 e* w9 j9.9 异常处理179
& N" J% _. u4 j+ n7 ^  q) E+ b: [% \9.10 修补180
. G2 R% P9 g/ I: X2 K& h& |9.11 分析shellcode181; d7 w: k$ q! _( a- V0 m
9.12 协助功能1824 I3 @3 {  [3 u  v: S
9.13 插件182
" A1 J, v- K; }; w& C9.13.1 OllyDump1830 Q4 L+ D# B  d; ^& C4 N* T) }: {0 o
9.13.2 调试器隐藏插件1838 p, r! r0 S" D) e$ w
9.13.3 命令行184. @# h) P/ ^; L2 H0 x: n6 ]2 k1 H
9.13.4 书签185
; R1 Q1 s1 E' S( z- V/ @2 z9.14 脚本调试1857 F1 D1 p( I- g# o$ v  D
9.15 小结186
& x( ~) c7 }; K. e" [3 a7 o9.16 实验187
" h# q3 h* K+ Y$ F% p+ o+ Z0 x( U
/ x3 N# o6 g9 Z( I0 D8 o第10章 使用WinDbg 调试内核 189& P( U) u- X5 j! X# A8 o6 N
8 l9 b+ z5 ~, ~# G& n4 x( P
10.1 驱动与内核代码189
- I; U, {! d  d0 b- A0 B3 g10.2 安装内核调试191
2 E- E7 F: D! b* j10.3 使用WinDbg193
! q! `* m& n0 {' L& v4 _10.3.1 从内存中读取194
  [- Z0 _  p9 b  ^  X10.3.2 使用算术操作符194& \" ~- A9 A9 o" [) V
10.3.3 设置断点1940 a: x1 M$ `8 k; \; C
10.3.4 列举模块195
0 T6 }9 g5 T. p& [" H$ Y10.4 微软符号表195
' y7 }- F! N& O' q" A  ?  V10.4.1 搜索符号1958 m# g8 M1 e; }9 v2 c% Y
10.4.2 查看结构信息196
, E$ p3 A6 \( K. ?$ t10.4.3 配置Windows 符号表198
" N% H1 K* q; C1 Y; y, y5 x10.5 内核调试实践198( ^/ R# a( @  ]4 l# W8 ]1 W: L
10.5.1 用户空间的代码198) K6 j( k4 @% i* p3 s
10.5.2 内核模式的代码200; ]( n) x5 T6 I! J
10.5.3 查找驱动对象203
" K# ?  f; ]! a' D: N6 J10.6 Rootkit204
' g1 E! m2 a! t' Q' D10.6.1 Rootkit 分析实践205
' N8 }& V$ d/ C+ E9 T10.6.2 中断208
2 z" Z; Y* _6 x; [7 F- o( W10.7 加载驱动209
& `3 i/ q1 a1 L6 L# l10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
7 s/ h/ c, G5 ?* y* {3 t! Y2 _10.9 小结210+ X! K% o+ N$ U0 G  [1 g$ i' b
10.10 实验210( `/ U% s% d7 y4 i- `7 d" a

) B  d2 @8 {( h
, o/ A1 k# p1 O4 U+ s第 4 篇 恶意代码功能篇) a! y6 `$ k  Z9 F

2 ?6 X3 D' m2 C5 K第11章 恶意代码行为 2148 a8 R* V3 ~# v* b- h

- q6 v4 _2 D' C7 x( a11.1 下载器和启动器214# n, `3 J6 p( [+ H- ?! y$ P
11.2 后门(backdoor)2145 v5 i! F) h0 g1 s6 z
11.2.1 反向shell2159 I% g3 U0 x! Y/ R) h6 A
11.2.2 远程控制工具216
( m0 m- @$ V- `9 v+ i: Z! ^11.2.3 僵尸网络216/ F3 Y, \3 R6 A
11.2.4 远程控制工具与僵尸网络的比较217
* \1 s  k) }$ u* @# y1 o11.3 登录凭证窃密器217/ _- Q" y- \! g8 U% `
11.3.1 GINA 拦截217
: i& R6 Y7 P. f% }- ?% K" {- n' Q11.3.2 口令哈希转储218$ D( V( G  A. q3 C2 O6 N) P
11.3.3 击键记录221
* s3 }& \! v% i7 H2 f9 C8 j11.4 存活机制223! z$ i& y$ x/ S8 ]
11.4.1 Windows 注册表223
/ F. ^& d# B; j& W11.4.2 特洛伊木马化(Trojanized)系统二进制文件225- Z6 u2 z3 m; S# y0 @5 X2 q
11.4.3 DLL 加载顺序劫持2270 D( K0 `: m- t4 |/ U5 h
11.5 提权228* C0 S( h3 W4 D" ?
11.5.1 使用SeDebugPrivilege2286 h& M* U) l- r8 w, F, ~
11.6 隐藏它的踪迹——用户态的Rootkit229/ O6 b$ K0 @2 @* k, P8 d& J
11.6.1 IAT Hook 230
2 J2 B, C! U/ y; {) X! g11.6.2 Inline Hook 231
) h) X& u) D2 z' \2 n3 q11.7 小结232( |5 f+ W$ @$ R% _
11.8 实验232
0 }! c- B. j5 G9 }. `% C0 }% _; }: B
第12章 隐蔽的恶意代码启动 234+ f# Z( f! l+ q+ o1 w! F1 Q
% V. P$ F$ N) l- v0 p2 {: p1 r
12.1 启动器(Launcher)2348 i0 }2 s) ~( l, x# z
12.2 进程注入234. B1 I4 Z8 R/ C- k) G) Y
12.2.1 DLL 注入235' v# a" o: b) C
12.2.2 直接注入2373 H* a6 V4 i. @% p- F1 I
12.3 进程替换238. a/ L% q5 I0 K2 E
12.4 钩子(Hook)注入240
# ?! v( J. [. u( z2 D3 E, F9 g12.4.1 本地和远程钩子(Hook)240
0 [! Q( }% |3 J3 A, Q' \- r& q' ~4 Q12.4.2 使用钩子的击键记录器241
0 e( X2 k! X2 _: F1 ^* e7 v5 Z6 j* L12.4.3 使用SetWindowsHookEx 2414 w; u7 Y) g4 }) N, r
12.4.4 目标线程241) i/ i; c$ ~0 x% O' w- Y; c/ T$ X
12.5 Detours 242
0 S2 O# F6 w. H3 ^4 v12.6 APC 注入243
; X& d5 o6 ~3 _' `3 O12.6.1 用户模式下APC 注入244! N- J+ I  `' V- x. q' p
12.6.2 内核模式的APC 注入245
. A& H4 u  x" L5 I$ l12.7 小结246' W# B3 W& N! R( P8 M
12.8 实验2469 w1 `7 \% p9 p# E/ v3 K  a  t" ^
/ J- d$ D7 X$ w: I( M# w5 @5 Q
第13章 数据加密 248
% M# o! E/ G; X5 U* P$ S% j6 d& V7 v- w& E! N
13.1 分析加密算法的目的248
2 G$ y( e, n7 A$ K13.2 简单的加密算法248
  {1 A. B9 R6 [7 Y- R+ ]13.2.1 凯撒密码249& p1 F. a, X' t  m
13.2.2 XOR249" P- f: K, B  f5 L
13.2.3 其他一些简单的加密策略254
' `! }6 v  ~. Z6 n) g& }13.2.4 Base64255
" Z& S4 e9 W5 u. [+ G4 h13.3 常见的加密算法258  w& N- T1 r1 G
13.3.1 识别字符串和导入259! I  w8 e: x( Y* \  J9 z
13.3.2 查找加密常量259
! b. F  [+ k. h/ U/ V5 x) R9 E: D13.3.3 查找高熵值内容261
) P5 S6 `! z$ D) x# U* O2 }13.4 自定义加密262
5 G/ y6 [) T7 [0 Z& \6 A8 a13.4.1 识别自定义加密263
$ f: \6 G' Z0 {13.4.2 攻击者使用自定义加密的优势265
6 [( c+ N9 A, F1 \% {13.5 解密265
& U! r( N3 |9 s5 J7 g' U13.5.1 自解密265
* j8 h! ?, R" |- U13.5.2 手动执行解密函数266( q: j( N# J6 m  ~$ S0 l) Y0 b
13.5.3 使用通用的解密规范2672 x( i3 H+ u# H) w
13.6 小结270
+ [' ^+ t  N; b% a13.7 实验271: m' _5 j% _, X( G/ Y/ v) a

3 `8 e& p9 ?% u: [第14章 恶意代码的网络特征273
4 m+ U: H5 c$ ?1 u
9 S6 X! M/ Z. q! B14.1 网络应对措施273
* f, F. A: b) S% D14.1.1 在原始环境中观察恶意代码273
. O  ]$ ?$ }# V3 X/ f! {! u- e5 L14.1.2 恶意行为的痕迹274- Z5 U' }/ q5 u7 c# k" [% z. p
14.1.3 OPSEC=操作安全性2758 |4 E' I- x$ f4 P* S' {
14.2 安全地调查在线攻击者275
. q7 h& l. H1 H7 _; P14.2.1 间接性策略275
$ A8 h* U/ |' M2 ]3 k# j' X14.2.2 获取IP 地址和域名信息276
# m  ^3 Q% m% u- D14.3 基于内容的网络应对措施278/ \9 H4 p! a$ K4 N6 }1 M
14.3.1 使用Snort 进行入侵检测278
$ ?9 x; T- a, t: p. [14.3.2 深入观察279
+ @8 u" H- @2 v7 K14.4 结合动态和静态分析技术282
3 W4 a, ]8 v2 l14.4.1 过度分析的危险283% V8 g5 a, I& T1 B- T( P* l2 q/ u
14.4.2 在众目睽睽下隐藏283
! X, i7 U& {% v1 ?0 O/ h' q" S14.4.3 理解周边代码286
4 J/ |+ l8 p) O: {6 ]14.4.4 寻找网络操作代码287
0 k0 D7 w! F( f9 r14.4.5 了解网络内容的来源288
  R$ {, ]& t/ M! h) C14.4.6 硬编码数据 vs. 临时数据289
" g, D8 z# v, o; J9 x  x) z% R! E14.4.7 确定和利用编码步骤289
' X4 I  N$ t5 c; w+ H14.4.8 创建特征291! S! x( P* P- N: l& q) J% ]6 p
14.4.9 分析解析例程292
( Z, K  r' \1 X. Z14.4.10 针对多个元素2948 l# d6 |( j& i7 A& b, s$ b$ N
14.5 了解攻击者的意图2957 A3 g/ }5 p) u. o
14.6 小结296
; @* m  a. X% t  `5 G14.7 实验296
1 D! `5 R/ W) ^- \. b6 M! b+ ^" {; h4 o4 e. L7 q6 B
6 Y% {7 k# d" h+ T
第 5 篇 逆向工程
4 X4 o# _' w% y& \  p7 t) ^3 b
第15章 对抗反汇编 300
- b" S( E+ g- F1 c
+ V/ Z: e! F" f( |+ w8 J15.1 何谓对抗反汇编技术300. I) d2 R) B9 \+ k
15.2 挫败反汇编算法3015 Q3 A3 n+ a/ y0 a9 V
15.2.1 线性反汇编302' J+ [( M1 B* j$ G5 P! Q, R' b4 A( y
15.2.2 面向代码流的反汇编303
& d0 R3 X6 i9 P15.3 对抗反汇编技术306
0 j( ^0 w/ T5 q5 {15.3.1 相同目标的跳转指令306
' O( _; ~3 g$ r15.3.2 固定条件的跳转指令307% E$ C: j8 ]- ~
15.3.3 无效的反汇编指令308
  I$ Y6 i+ P+ o  |4 _15.3.4 用IDA Pro 对指令进行NOP替换311
0 Y1 l1 Q, q" i4 \1 Y15.4 混淆控制流图312# Y. G4 P. C- _) m" r8 Y, I
15.4.1 函数指针问题312
6 E% L7 X* X* w0 ^2 h: b7 l& W15.4.2 在IDA Pro 中添加代码的交叉引用313! R: ~9 z  `& U
15.4.3 滥用返回指针3135 }* l* k. t$ p9 r% p+ D" ]
15.4.4 滥用结构化异常处理315# h; e  X( q8 q6 L& v9 ]
15.5 挫败栈帧分析3178 b6 n& O4 Q" Y: h- g& @
15.6 小结320
) q" T0 q, ^% d15.7 实验320
0 T/ s& y2 m' F6 F
. E* O+ |" k0 h) C' _3 }第16章 反调试技术3220 o$ ^* h2 k$ O( E- e) a  L# h/ v+ j
, Z) Q& Y9 J3 j/ l* _, S
16.1 探测Windows 调试器3227 q2 p5 r& f) |1 d6 y
16.1.1 使用Windows API3226 Y" w5 W" e6 K: G' ^
16.1.2 手动检测数据结构324; j: e6 v* @* c7 \
16.1.3 系统痕迹检测326
$ s  V# i  X4 Z% R; |! x16.2 识别调试器的行为3273 z% O2 i. H: c+ |9 {2 d
16.2.1 INT 扫描327! ^! H' S: I% g
16.2.2 执行代码校验和检查328# V9 b1 t+ J7 @; G
16.2.3 时钟检测328' P- v& U! k, Z- O! D4 S+ |
16.3 干扰调试器的功能3304 @' b9 q( j3 F  C& D: [
16.3.1 使用TLS回调330
" ]- W! @6 f! F( u5 e$ V% p16.3.2 使用异常332
  d2 I6 @& q. N6 p' p' E16.3.3 插入中断333/ Y$ @3 d* q3 G0 o6 e$ H
16.4 调试器漏洞334. ~. @. c2 @, ?1 o# ?! y
16.4.1 PE 头漏洞334$ o5 R2 R4 O& q& \
16.4.2 OutputDebugString漏洞336% ^) K1 D: ^; E  f. v+ u) G1 k
16.5 小结336
. u" g8 J4 X5 |8 n16.6 实验336/ u1 k- O% P0 s- H% L( M2 B) c

% e$ U1 a7 [: ]% V1 N5 Q; j/ J% b第17章 反虚拟机技术 338
3 J9 U% Q7 a- O, y
8 g$ V8 j/ A% v/ `6 o17.1 VMware 痕迹338/ f4 Z! c: T# a+ b& s# Q9 h
17.1.1 绕过VMware 痕迹的探测340" e) E. c' V; ], ?3 q# @& F
17.1.2 探测内存痕迹342* K( A- h& B6 E9 M3 _
17.2 查找漏洞指令342" F: a; g: @+ ]  f' A
17.2.1 使用Red Pill 反虚拟机技术343
+ c7 P! a3 s# \' l9 Q% S2 I! S17.2.2 使用No Pill 技术344
# s1 ~' i9 i, w- D6 M17.2.3 查询I/O 通信端口3448 W2 l; Q' c9 n0 O" e
17.2.4 使用str 指令345) p5 A0 F( e5 U. V; S! W
17.2.5 反虚拟机的x86 指令346
0 r" F' `$ I* I17.2.6 在IDA Pro 中高亮显示反虚拟机代码3479 l3 y: b9 L' w9 [0 s
17.2.7 使用ScoopyNG3470 v& z& g* _" C' i- i" G
17.3 调整设置348/ I4 Q! T' ^! a! b" P+ Q
17.4 虚拟机逃逸349
7 A8 Y+ {) H/ p2 x4 |! E17.5 小结349( N  i: ]9 P. G& x2 g" U4 Y, n
17.6 实验349
( ^5 u7 L, x0 s9 C
" g! }0 p6 R& ]0 H第18章 加壳与脱壳 3523 a- X) r2 V: g8 r9 ?
) D8 `$ i1 G/ G4 @% {
18.1 剖析加壳352: g! i- E/ l# j  U, K
18.1.1 脱壳存根353- c8 Q& P3 H' [! O. _
18.1.2 加载可执行文件353
: ~- Q9 l; ]) O5 {- E$ y, v* J18.1.3 解析导入函数表353
. o0 g5 m4 i- I/ y8 m18.1.4 尾部跳转354
/ _- e: C  t' L# O! p18.1.5 图示脱壳过程354& F0 x# ?: R' g  C6 i, w3 v! `( |
18.2 识别加壳程序3559 r: T2 G' r, t+ `" g6 Y9 J" m& Y
18.2.1 加壳程序的标识3551 `, v1 C, ^! }- u" \
18.2.2 熵计算356  V8 C) v' M0 c6 o+ e
18.3 脱壳选项356
% M8 N+ s; {8 ?7 J18.4 自动脱壳3564 H& }2 {; [0 v) l& q  v; e1 s) I% s
18.5 手动脱壳357
- ^. p( H; c6 f1 H, f18.5.1 使用导入重构器重构导入表358) F  ]- m: i5 c+ r2 N- m; u
18.5.2 查找OEP359
0 h- H" Y7 p! X6 A9 s" u" x18.5.3 手动修复导入表3635 T) e/ i* o) Y1 r, U$ P
18.6 常见壳的技巧与窍门364$ ~) V2 N! v$ v2 n0 L# Q
18.6.1 UPX 3645 x- h" T5 S& F6 M6 O
18.6.2 PECompact 3656 R5 }3 n" a" T" P5 K
18.6.3 ASPack365
8 e7 K8 A6 F2 ~6 F$ c4 \. C18.6.4 Petite 365& i4 p' `+ X. W; P( m
18.6.5 WinUpack 366
8 m5 l) f2 ^' c18.6.6 Themida367
: v6 ?% m3 a6 F+ p( R# ~- l# O18.7 不完全脱壳情况下的分析368( c$ P: p/ y+ ?5 a- A3 O; Z7 I1 w' c
18.8 加壳DLL 368, D7 n3 J8 I2 c0 }/ q
18.9 小结369
" w4 B/ N2 Q. B$ N7 _8 q2 q% Z18.10 实验369
( ^, T# _) H5 i( }$ s
* `) k7 C" W9 g. n, l
8 L: N. r' r. q( S第 6 篇 高级专题: c9 {% e. R: U1 z6 A3 q8 h

5 b9 t2 T# j' H) l, _第19章 shellcode 分析 372, ]% ^& y4 _8 d
1 E4 t5 S" @% |
19.1 加载shellcode 进行分析372. ]( H  ^; O# ]) v. Q$ s8 |
19.2 位置无关代码373* h4 v% w+ y0 ~# L
19.3 识别执行位置373
2 \3 F" a& i! H/ j6 H( J. V19.3.1 使用call/pop 指令3741 y/ J6 Z' I9 `( K; F8 ?6 f
19.3.2 使用fnstenv 指令376" b8 s: N2 }/ b/ m- ]
19.4 手动符号解析377* G! J  R) i- U2 q+ X! g
19.4.1 在内存中找到kernel32.dll378
2 r  b; i  c  K& h19.4.2 解析PE 文件导出数据3803 q; b5 q. P2 J8 e; A
19.4.3 使用散列过的导出符号名382- p! ]; ?5 E1 M4 z+ Z: v2 o
19.5 一个完整的Hello World 例子383
9 G9 B  o+ o" J$ h- I19.6 shellcode 编码385' H+ ~( k' {2 B8 Q! |( `$ ~5 E( Q
19.7 空指令雪橇387
) M/ E$ N* F* @1 h19.8 找到shellcode387
# f. O  r* X  |% D  v; }; Q19.9 小结388
& l' r# X: n7 F1 T# p1 \19.10 实验389
# ?% N) T9 K- c3 o! c+ Z% G& f* o+ L& K
第20章 C++代码分析 3915 i6 q- e+ o6 M" w

- `* }9 O0 R8 v; _2 y! t20.1 面向对象的编程语言3915 |4 n, V6 ~2 A+ D# o; m! L# R
20.1.1 this 指针392
# n8 v# ]6 N% k  a$ H20.1.2 重载与修饰394
' Z/ b) R# h% b# w5 n% C4 k20.1.3 继承(Inheritance)和函数重写(Overriding)395
* Y1 u& u9 `# @4 C20.2 虚函数和非虚函数396$ N/ `' @2 t1 i! j
20.2.1 虚函数表的使用398& o; R4 E% E- ?
20.2.2 识别虚函数表399
1 C7 C, ^7 E# o. s- R6 M20.3 创建和销毁对象4009 ?# T2 h# }% d! A; J8 e
20.4 小结401$ Q: P( B# @8 G+ [4 D
20.5 实验4010 _5 Z9 S. n. j1 S5 M
0 V5 ]" Z3 v8 ]5 s: ?) P
第21章 64 位恶意代码 403) p# Y# p( G- @0 C+ [! k
7 y4 ?; }% s! R0 L
21.1 为什么需要64 位恶意代码403( L% ^' q8 g: b
21.2 x64 架构上的差别404
5 x. H4 B- ^% v21.2.1 x64 调用约定和栈使用上的差别406
+ x6 @5 W! d, o& e. }, q( @2 f21.2.2 64 位异常处理4088 b# n3 ^4 i5 E$ V; V
21.3 在Windows 64 位上的Windows 32 位408- [/ A9 ^  j6 W2 l% k5 v
21.4 恶意代码功能上的64位提示409- ?7 C7 m  H1 |$ ?$ q7 G
21.5 小结410$ ?& @: B7 T, C
21.6 实验410
. z2 P. k0 N1 U
+ B& n2 p3 Y& @1 M0 \附录A 常见Windows 函数列表 412
& N2 \! p0 E, G( |! O. t$ \. Q9 {5 s& T/ e/ l* k2 W' b1 d+ F, S
附录B 流行的恶意代码分析工具列表424
' G+ [$ P! X& D8 Q* B( `: v! v* D3 T- Y, G
附录C 实验作业参考解答4355 \8 L6 \' |0 q1 L+ O% ^" s3 B# ]) x

" e; `" D. e' ?/ y附录D 致青春,基础软件开发的中国故事 691
0 V3 s" D/ o% n- T
9 C, i9 Q7 Q: g* N2 _* O' q附录E Syser 操作入门 695( P4 I. O# C& V: N9 j

) H7 {4 @" g5 W# ~5 i3 [' @; }  A2 l( R( ?2 B2 c
想知道小甲鱼最近在做啥?请访问 -> 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
: \, Q8 l3 v; O! W什么编程语音写的?
. i% ~' o! z! g
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-7 12:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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