鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
* |; w% V( u" q  n9 e: |  m
5 S3 q0 P) X5 J& e
书名:《恶意代码分析实战》& t. e) y6 e. `% q9 U
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
5 m) e1 P. f, e/ @) l0 t译者:诸葛建伟,姜辉,张光凯 - `* x6 R0 @5 H2 k
出版社:电子工业出版社
2 S7 m: x& f" o: u; }6 D7 j+ k出版年:2014年4月1日(第1版)9 K) k( X- ^( V; ]% P
定价:128.00元
2 i2 z! D, r4 d: Q+ x装帧:平装8 ], m  p7 i. O3 @
ISBN:9787121224683
0 i7 }( R2 L: m# w& \7 v
1 ~( B) L% d1 u' o% e/ @  {购买链接:! V: L: }/ k9 f  }
" S9 W+ N, f0 e* g; ]

5 v; y2 R. G8 m- n: s
亚马逊 -> 传送门
- ]/ i8 X1 ^; J3 ]
. y- x& Y" q8 f  C5 Q& d当当网 -> 传送门
8 T" W: J2 ~% Y* E4 [* k1 ?
3 K' G3 c; @" _; o4 k京东 -> 传送门
0 r& ^% |# d- b% i) F) @
* H3 h& ?" R7 e& K& `天猫 -> 传送门
  ^# Y- S% Y1 C6 ]; p1 Y. E3 w$ M! b& P9 \$ I8 e4 x% I
; P" b" |! u, g$ [
内容简介:: y  q9 o# a+ e" C8 a+ ^
6 e7 y; |! Y1 r  ~6 k

- k& `9 h$ l4 v( S# t6 n0 c; ^
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。  ~4 e1 ^; I1 c8 z

! C, ?) r! }! @$ p9 Z" \% T, o《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
/ J2 d: y0 h: A1 R2 d3 r( h
3 r2 H* T) p: V0 @% I, l针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;  c$ D- a' f1 f
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
3 l0 q0 a+ \$ s8 I
7 J. C  `1 @6 ^! _2 Q目录:) W$ T8 f1 F$ `1 d- `

4 d# T/ F& H( |* {+ k, _
% O( I2 R8 `1 J' v
第0章 恶意代码分析技术入门1) I- ?- F* @6 o& q- d( o, E# ~: ]
# W2 P: i( U, O" C7 a
0.1 恶意代码分析目标1+ j. p! I' J" ?% p$ w/ C; q- S
0.2 恶意代码分析技术2! G% x. Z# C5 j3 U3 ]- H
0.2.1 静态分析基础技术2
. ?% j5 e( z0 F8 e0.2.2 动态分析基础技术28 H( Y1 f* h. ~3 D' ?
0.2.3 静态分析高级技术2
, g' p# U5 E1 ?' S# ]2 u0.2.4 动态分析高级技术2, \2 o* D+ G; [9 y" ]' d
0.3 恶意代码类型3) ~7 R+ X3 [! U1 U" W
0.4 恶意代码分析通用规则4: }& E. b. _- }2 z4 _
) i7 m2 ]$ `! k. e! |& w& z

1 v$ \  P* X4 p8 e& W* ]  r* H第 1 篇 静态分析
1 A! d! b' X4 W$ q! K# M( N% a3 w. H+ |$ w; `2 M
第1章 静态分析基础技术 6
/ l+ m# \2 w3 [/ G9 j' i" }
$ E6 p6 \$ _( o- U/ ]$ ]
1.1 反病毒引擎扫描:实用的第一步66 D0 \. v2 G' R: W/ ~( Q# f& z
1.2 哈希值:恶意代码的指纹7
( Q" d1 j  J8 ]4 C6 @1 X8 C" o1.3 查找字符串76 e# s% I$ g* S5 w( R3 G
1.4 加壳与混淆恶意代码9
6 `+ V! S# Q2 b: s7 m1.4.1 文件加壳104 Q0 n  X! N( g* a) m& P, ~
1.4.2 使用PEiD 检测加壳106 f6 ?0 e/ K& H- |6 \4 X- X
1.5 PE 文件格式11" m" @# }) T! ~# T- M
1.6 链接库与函数12# C5 f. s3 d, Q8 Z
1.6.1 静态链接、运行时链接与动态链接125 \9 ~- @5 O7 _! a! L' _$ r
1.6.2 使用Dependency Walker 工具探索动态链接函数13' d( w' r3 u3 l" K
1.6.3 导入函数14/ b1 w! q& N: W0 n1 E
1.6.4 导出函数15
# v( f0 [' ]+ H  U  b1.7 静态分析技术实践15
/ f5 {' [* }8 q+ l, S) @- E1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
+ [7 T' C9 ]) z; ]1.7.2 PackedProgram.exe:穷途末路181 e6 Q  y' A, m
1.8 PE 文件头与分节18
5 [# B0 \5 L! ]& W1.8.1 使用PEview 来分析PE 文件19& f; y6 M1 }. P- t7 ^+ x
1.8.2 使用Resource Hacker 工具来查看资源节22
7 D! d, a& l! E' F2 e& B8 q* k- `5 L- e1.8.3 使用其他的PE 文件工具23' W, L  b, o, l) W2 x, X3 n
1.8.4 PE 文件头概述237 g, F7 q7 d# W, a4 a! s' }3 ^
1.9 小结24. e6 @9 ~# m+ A/ C+ S
1.10 实验241 i( y) d( v4 A6 E- g) S, w3 ]4 z
+ p# U1 c+ {; N/ E4 q0 k
第2章 在虚拟机中分析恶意代码 27# \( g9 `6 C' O0 d; L+ x' U

3 i) [0 P# b9 K/ n& a. g0 K2.1 虚拟机的结构27
3 R# T: F# J: G2.2 创建恶意代码分析机28
1 T2 a- A" _+ a) U! K! h2.2.1 配置VMware29& c! w% W6 f2 |8 t+ c
2.2.2 断开网络30' J6 b/ w. `2 A% A% M3 @
2.2.3 创建主机模式网络303 n$ c# i$ B% f* v
2.2.4 使用多个虚拟机307 P2 v! ^0 G4 d5 m) J
2.3 使用恶意代码分析机31# u( o6 @5 H* Z7 T* Y3 L* W; v  H$ l
2.3.1 让恶意代码连接互联网316 \% ~8 D7 J3 L" b4 m, F8 \) P' M
2.3.2 连接和断开外围设备32' k8 A% N/ P% Q: ^4 n  A' a7 y
2.3.3 拍摄快照32
5 D; E. ~4 m$ v& y2 ?2.3.4 从虚拟机传输文件33
5 M6 {/ e; m( q; `2.4 使用VMware 进行恶意代码分析的风险34
5 z- b1 s' Y9 i; ~; k* s# c2.5 记录/重放:重复计算机运行轨迹347 C% I9 ], |8 z7 Y! B
2.6 小结35* J' q7 N& `/ e) {- s# C$ G  V$ q/ J  W
; p+ n+ E- l. g7 }$ W& X/ G
第3章 动态分析基础技术 36
1 a7 S' U3 z6 [& f/ g

, c3 w5 B) G% @1 d' @  y3.1 沙箱:简便但粗糙的方法36$ m/ f$ H: u2 Y' j# |+ X
3.1.1 使用恶意代码沙箱36: h$ U8 U; b. Z  U; ^! w- z
3.1.2 沙箱的缺点370 c( V) w& t8 Q( D  |, E& i
3.2 运行恶意代码38/ D8 a0 O( U- @& u- n3 h
3.3 进程监视器39
$ h7 S, L5 R8 _2 @+ {$ ^3.3.1 进程监视器的显示40+ c4 [! D. ^% W6 N9 f9 n- b
3.3.2 进程监视器中的过滤41$ [- z/ @& x- M! ?8 Z7 L
3.4 使用进程浏览器(Process Explorer)来查看进程43
/ x+ Y4 X, u' n3.4.1 进程浏览器的显示43
6 f3 s5 T+ A' o3 X5 T3.4.2 使用验证选项44
! C3 Y  r6 b6 l5 m) T3 ?+ D3.4.3 比较字符串45; W& U( D+ W8 o# U
3.4.4 使用依赖遍历器(Dependency Walker)457 F" t( m' R- m1 G# d) Y
3.4.5 分析恶意文档46
, A7 i' T; l+ r8 X2 w3.5 使用Regshot 来比较注册表快照46* u% s7 T& |4 v5 b# ^$ s
3.6 模拟网络47
( ~4 J  P: l" ]3 M8 `9 d7 V9 t3.6.1 使用ApateDNS47
* p9 }. R* c9 T/ x" T3.6.2 使用Netcat 进行监视48& c0 B5 F; k5 v8 ~! n; w
3.7 使用Wireshark 进行数据包监听499 _4 L2 z3 G, |5 p& t, m
3.8 使用INetSim51
* B7 r" p+ Z. [. c0 X3.9 基础动态分析工具实践52, q+ [) Y9 U  g) k- E8 V* r  @
3.10 小结55
& c6 }5 I% U& s7 \, o0 J% t3.11 实验565 Q! @. \. R$ W9 Z

0 t" m, x+ w) N1 _1 h1 Z
4 r  x; \$ o2 I. Q1 g# p. s8 L第 2 篇 静态分析高级技术篇) E% {. O7 P6 K) @3 ~
( r4 ?% h( y" N- h7 y+ }0 i
第4章 x86 反汇编速成班 607 {: j4 N; r& b" Q$ b
2 Z8 {1 j0 t' [+ W
4.1 抽象层次60
! [& G& t, I3 r9 h. X7 B4 G5 ]4.2 逆向工程62
. q; k! `+ {  s9 e$ U4.3 x86 体系结构62! o8 _/ [$ Q9 Y! V, T
4.3.1 内存63" M- M7 k2 H5 j) I/ y- {5 ^
4.3.2 指令64
7 Y, g9 a/ \' T! A, a4.3.3 操作码和字节序64
0 G1 s3 }/ d$ h4.3.4 操作数65
; |' E. z2 I* u; u4.3.5 寄存器65
; Y" W' t6 l, n7 l8 m4.3.6 简单指令67' |( b8 G) J8 v  i( k, o% W% @
4.3.7 栈700 Q# S. P) Q4 M6 f
4.3.8 条件指令73
: Q  Z5 G4 E6 U$ j& P0 A8 i1 |4.3.9 分支指令73( ?3 t+ e# m) ]. F: S
4.3.10 重复指令74' \: j7 t5 x, L, y
4.3.11 C 语言主函数和偏移765 O, i4 O  K+ [
4.3.12 更多信息:Intel x86 Architecture Manual77
4 ~; b% O7 {- D2 z; B* I4.4 小结78" t/ Z9 x$ [/ r

" y- c) `3 t/ P5 G  e3 g& T: k第5章 IDA Pro 79
$ Q: c. B2 ]- s0 }% K# e6 h, m$ b' Z4 F* `* ?" s$ Q
5.1 加载一个可执行文件79
6 f* d% O( Z) S9 @: r0 O* o8 y0 ]5.2 IDA Pro 接口81
" L, l$ E6 m- }% C$ V8 m3 G% B5.2.1 反汇编窗口模式81! s/ R' ^  [: A- T3 n
5.2.2 对分析有用的窗口83: J  z5 H  x% \; V  r. ^
5.2.3 返回到默认视图83
8 U4 m4 N$ v' t! V! ~9 g3 P! `5.2.4 导航IDA Pro 83
. J  Q  k: i0 f0 ^. K2 Y5.2.5 搜索85
: {7 f7 [% m& o+ R0 k" C* `5.3 使用交叉引用86
4 d' ?. b5 L, p0 q) j5.3.1 代码交叉引用87: U$ w* B/ Z  I; s; e
5.3.2 数据交叉引用88: {! G& B; z3 g3 I, t, b7 `( @
5.4 分析函数88
+ w' y. F# ]1 X5.5 使用图形选项89
  ~! ]( u" o0 [2 P' ^* y3 o5.6 增强反汇编91
0 Q& n0 N9 o$ A0 @. r( x5.6.1 重命名位置91( T- o/ U4 q" Q
5.6.2 注释92
. d9 L: ^5 H! Q/ \. J! |5.6.3 格式化操作数92: H$ q2 {! m9 c8 P3 d6 _9 L
5.6.4 使用命名的常量93
( s( ^8 T9 X' v5 X, S) C# K5.6.5 重新定义代码和数据94
6 F6 k3 Q  m4 w$ L5.7 用插件扩展IDA95
7 N5 \- U1 C+ J& G- i5.7.1 使用IDC 脚本96( T2 H, W+ Y% G1 D8 f( T
5.7.2 使用IDAPython972 P- v* z/ g6 e* N7 W
5.7.3 使用商业插件97
' R; r6 f# _: S/ g/ N, q5.8 小结98  t2 R; ^7 _  }% {
5.9 实验98
! O2 b. \8 i, D& j8 U
, _0 w& v, L. g( F第6章 识别汇编中的C代码结构 100

* F# @0 I# E" H( Z- g
- H  K* q4 S0 W' w1 p, R  _6.1 全局与局部变量101
" U. S1 a% _; Q' x) p7 F6.2 反汇编算术操作102
: c' @$ c, M" [$ Y# e6 S% ^/ X% U6.3 识别if 语句104
  J# C7 i3 Q& b( w. }$ h6.3.1 用IDA Pro 图形化分析函数105
# L- ?& {5 K( @0 V* u2 C6.3.2 识别嵌套的if 语句106
9 S; d+ U1 S' _, K+ I6.4 识别循环107
. o1 R; l8 b3 u6 D1 u3 b$ V6.4.1 找到for 循环107
1 \# P" m* |/ I7 m2 i! X8 T2 }6.4.2 找到while 循环109* n2 [7 k  M8 r, ?& U
6.5 理解函数调用约定110$ x( s3 d( X2 p. m
6.5.1 cdecl110
% D% ^5 d- d9 ?7 y$ p5 e6.5.2 stdcall 111
$ E- r' ~/ r0 w) M8 o$ J6.5.3 fastcall 111
4 V! B% U1 a, j% S8 k+ A) n* t6.5.4 压栈与移动 111
3 ~" y3 ^# Q; U1 M# F0 B% v6.6 分析switch 语句112
) Z7 S! ^5 D) r# q! M' j* ?# m" k6.6.1 If 样式112
4 x2 a/ }) ?& {) B2 t6.6.2 跳转表114. k" u: i! I( S) }6 Q0 F
6.7 反汇编数组118
9 _% A: l. C; t' `7 D6.8 识别结构体119
  |/ ~! F% f5 ~1 K* Y6.9 分析链表遍历121- h& d6 s, C2 C- `+ V
6.10 小结123' W3 X0 p; S  F1 k! v
6.11 实验123
. T! W; C1 `# P/ R% W# F# u' C- o
+ `1 Q  \5 i6 Y) V6 o第7章 分析恶意Windows程序 126

# }2 W, h  K' c" O# S1 o" u" g
7.1 Windows API1264 F5 N/ C4 y9 @7 i; B; p
7.1.1 类型和匈牙利表达法126( o$ E. m) U/ r8 R
7.1.2 句柄1276 s( M. h: n1 `
7.1.3 文件系统函数127
# f/ C- n8 a2 z7.1.4 特殊文件128
5 x/ g* i/ i% P8 ?' w& ^$ n7.2 Windows 注册表1298 r% @2 b( L4 u' T2 t
7.2.1 注册表根键130
& F/ j/ @  S2 A! z+ u1 C7.2.2 Regedit131- J9 M3 ~1 t$ q8 K. k  ^
7.2.3 自启动程序131$ \: l2 ]& U) D" ^3 T- ~- i
7.2.4 常用注册表函数131
3 d6 A$ Q0 ^& a1 J7.2.5 练习分析注册表操作代码132
, H# j* s! T, S- W7.2.6 使用.reg 文件的注册表脚本133) a1 v" X; P5 w7 J9 v- D1 \1 J
7.3 网络API133" L# b4 d1 Z# j3 q5 v! a$ Y
7.3.1 伯克利兼容套接字134
8 s9 \: v" h  o# \7 x7.3.2 网络的服务器和客户端134
3 y0 g3 N/ F9 s& r3 S' \% E7.3.3 WinINet API 135+ }% n: B& g. \/ |7 y
7.4 跟踪恶意代码的运行136
3 [& N; Z* g  A$ g0 ~9 O7.4.1 DLL136
- E3 I& D# D: v' y1 G7.4.2 进程137- h" \* j  D9 Y# i
7.4.3 线程139
/ S# m) V* }( d- y1 ]- l7.4.4 使用互斥量的进程间协作1420 G6 C( |* B5 R4 D- K7 J, m, s0 @% [" x
7.4.5 服务143
' i: E! r4 ]8 W5 H7.4.6 组件对象模型145
5 u, I* X8 `% l+ B" i7.4.7 异常:当事情出错时147+ M0 ]: I' o$ ^1 m) D2 H3 B
7.5 内核与用户模式148
1 ^1 _, x  z' D* Z# _7.6 原生API149- ?# q# X7 s% o/ G2 k: b
7.7 小结151) m! P+ c: i/ s& D" g# P+ B8 {2 R
7.8 实验151
( ?, |9 \: e7 d7 h6 m8 [4 b1 m- J" `" {3 D4 ]

4 l7 f* Y* l. V. }  k! S" o/ m2 `第 3 篇 动态分析高级技术篇4 @; [/ B( J, X: c7 _
: \( d  e: F) L( ^6 D# n* I2 C8 X
第8章 动态调试 154

. e( ]9 a( W8 i$ _/ l3 D4 {7 }+ W
4 f9 x0 i% p; [- ?0 a8.1 源代码级与汇编级的调试器154
* ?) l  {6 a! c8.2 内核模式与用户模式调试155
8 Z( T' `+ h' _8.3 使用调试器155$ N& t7 e+ G; d
8.3.1 单步调试155' R/ N* O! d' {8 n
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
7 F7 B$ t" Z( g/ t& |" N8.3.3 用断点暂停执行157) @2 E# e  B  m" m+ d
8.4 异常161
1 W& x) _# U. T6 l0 p8.4.1 首次和二次异常处理1622 }7 r. n+ ?( U" W% n) J1 j
8.4.2 常见异常162# p  C2 o/ g" O7 E3 J5 F6 u
8.5 使用调试器修改可执行文件1637 _7 b! ]) |7 w, M" B- i% c  `
8.6 修改可执行程序的实践163
  g) B* z% L- K9 L% |' p- P8.7 小结1649 W4 l' D. p0 G3 ?, C8 J9 a

  [3 f% _! ^' Y5 J( O8 Z第9 章 OllyDbg 165
. }. m# C$ k6 n5 J5 Z/ h

8 C, l9 E/ q; y+ A9 }9.1 加载恶意代码165
8 [/ P! G  Z' _2 b* s, Y9.1.1 打开一个可执行文件165
  R) M: R, ~0 u8 r. U( K* o9.1.2 附加调试器到一个运行程序166
! k* B4 w$ F4 U9.2 OllyDbg 的接口167
, k, b7 M8 `% ~9.3 内存映射168' @+ F4 k6 P5 r/ y$ t4 b6 X
9.3.1 基地址重定位169
; A% b2 c( _0 |' `9.4 查看线程和堆栈170
0 j6 q" S' a" |  r9.5 执行代码171
9 p' O+ A8 M" Y! h' c$ b( l. E9.6 断点172
, l" J  B! a! I: c$ ~* K3 X  Q9.6.1 软件断点1738 b) v- [5 l: c$ s6 v9 v7 T2 S5 K
9.6.2 条件断点174
9 p' f1 t4 D- e. [2 X, z9.6.3 硬件断点175
. Z& \5 |. ?: M* z0 h4 i8 y9.6.4 内存断点175
" `4 i: `" V8 C& N$ J; `9.7 加载DLL1763 s. r" F; Q; U1 l
9.8 跟踪1779 z! C  Y5 {8 _( O5 ?# H
9.8.1 标准回溯跟踪177
4 Q# x; O: ^: S. A  T9.8.2 堆栈调用跟踪1784 v6 K# L: b9 k
9.8.3 运行跟踪178. e6 |7 C" s. L+ Z
9.8.4 跟踪Poison Ivy178
/ n: m6 f9 ~. A) K0 s- Y9.9 异常处理179, P# J2 w& J. U$ S  ^; s
9.10 修补1803 k% P8 ]8 u/ E; z6 c$ j0 ^
9.11 分析shellcode181
. P! f9 Y! v/ I- ^1 @: _/ J* w9.12 协助功能182
/ t& g3 W! j7 L; Q9.13 插件182( m0 w8 {/ H$ N( {7 |1 e+ e
9.13.1 OllyDump183& l$ @. @& B- r" d
9.13.2 调试器隐藏插件1835 t7 O% o: E9 p0 ^& Q2 ~; r
9.13.3 命令行184
. ~$ m3 ^6 T8 c9.13.4 书签1853 V2 J8 J0 U8 z  A6 m  E" A) m
9.14 脚本调试185" z6 S$ D8 q8 Q, _( {: t
9.15 小结1861 S3 g! x$ o, E. e2 x$ `- m
9.16 实验187/ r- P& \  O1 g# R/ v( y2 S  e

1 r6 ^  f' N0 U1 x2 }9 C) H第10章 使用WinDbg 调试内核 189
3 ]" C4 I2 L: u2 C% [. d8 g  |6 `3 v7 c* N
10.1 驱动与内核代码1898 t# ]8 X# K% S7 f
10.2 安装内核调试191% B. }! h8 n8 j! L& Q8 `
10.3 使用WinDbg193
1 F1 y' J5 [* P% u& Z2 C1 C$ ?10.3.1 从内存中读取194, q% S* T0 k: K0 M
10.3.2 使用算术操作符194
$ h& B+ v' u' v' P10.3.3 设置断点194* r9 E5 [& w# @1 K- ~/ k2 `9 U3 K
10.3.4 列举模块195) Q+ ^5 F: r" C8 g+ Z7 q( \' o
10.4 微软符号表195
% Q( k4 ~9 _8 j7 d% a10.4.1 搜索符号195$ N9 z5 b( k: S2 g+ Q: b; S
10.4.2 查看结构信息196% O/ }& X8 {1 ]& W* A
10.4.3 配置Windows 符号表198% g' A/ U$ v5 W+ ~7 S
10.5 内核调试实践198
8 l) f4 V0 r  Z5 f, \10.5.1 用户空间的代码1982 }% ], F4 Z3 T% b
10.5.2 内核模式的代码200
3 `* O% ]) }4 k" u) A' w) |+ _# F6 i10.5.3 查找驱动对象203
' S3 c/ }3 S6 O- p  N" d: C* p10.6 Rootkit204
# f. w% ]! X9 }1 }10.6.1 Rootkit 分析实践205
6 Z1 p: _5 W6 L6 R7 t* m10.6.2 中断208
; j0 o. Q4 O! U- N4 j' A$ L10.7 加载驱动209
8 I9 j& N* j5 ?10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
$ A8 Q6 ^2 x0 ~1 R1 `  o10.9 小结210
$ |3 H% p, S0 u" U10.10 实验210+ |. ?3 L+ _' }& b+ e# H. s
* z4 c3 B3 {9 ]2 Z4 Q
6 H" J4 Y6 l! [
第 4 篇 恶意代码功能篇
# M5 F+ u& [3 F* T( h! M2 ^- `6 D% \
第11章 恶意代码行为 214
6 g- T: Y0 B0 I) x$ [5 W2 w' K7 P0 g* F
9 Y6 f# @+ W0 T: y: l% Z2 ?  a11.1 下载器和启动器214. |  H2 }) F6 A
11.2 后门(backdoor)214
: o6 A7 C- _- j/ d% q& x11.2.1 反向shell215
# w( g* {. }0 t4 t11.2.2 远程控制工具216  Y" `8 W3 Q0 U$ s+ C& q
11.2.3 僵尸网络216
& E7 o5 N/ E( q11.2.4 远程控制工具与僵尸网络的比较217
  a6 Z( b$ V3 n7 A3 M$ v11.3 登录凭证窃密器217- e. h3 T+ l. M  m4 z4 W/ r
11.3.1 GINA 拦截217
9 W, g( X! h1 [* A2 Q# M1 G11.3.2 口令哈希转储218
3 W: T+ K: E7 Z/ R8 v, Q. N4 K11.3.3 击键记录221
* X2 d  v, f/ Q+ q( [7 n5 `! S3 ^. `11.4 存活机制2231 Z/ T. H* n' q/ H9 }" _3 V
11.4.1 Windows 注册表223
& [: v' e/ B8 ?1 O  P: c11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
1 X/ R# v2 ?" O# ?& L. r11.4.3 DLL 加载顺序劫持227
, k+ i. `' _8 K( x8 Q* _0 w11.5 提权228
$ R$ m7 P+ L+ E7 K/ O11.5.1 使用SeDebugPrivilege228+ J1 _8 B2 o1 R; T
11.6 隐藏它的踪迹——用户态的Rootkit2290 y# r0 _9 P9 r
11.6.1 IAT Hook 230
/ h8 {# j$ N  e% e11.6.2 Inline Hook 231! @4 @5 D0 }7 c; m6 T+ [% W9 s/ f
11.7 小结232# Y7 J/ m* ]: {. _. {7 \0 Y
11.8 实验232% G( x/ ~$ D4 X0 V# z0 Y
! h, @; Y% @" Q
第12章 隐蔽的恶意代码启动 2341 B  d' [0 P. O* k: k' B$ S
7 I5 q5 c6 C  D* y+ R5 c
12.1 启动器(Launcher)2348 o9 k- z, B8 u0 |0 z; J9 o
12.2 进程注入234$ q" \8 v. H4 N' R! V
12.2.1 DLL 注入235# @7 E( S/ i' d, `+ W: o4 C" p2 _
12.2.2 直接注入237( D" _2 L' B; ]- _8 J6 }
12.3 进程替换238
% w% A' U$ z' q/ ^, L12.4 钩子(Hook)注入240
& N3 R+ U" m, q& {, X! b0 S2 c12.4.1 本地和远程钩子(Hook)240' G0 D9 T7 P$ \( {
12.4.2 使用钩子的击键记录器2411 A8 H1 |5 W: P0 y- ?) B: F* ]
12.4.3 使用SetWindowsHookEx 2415 d8 C* g4 d3 \/ B" ]
12.4.4 目标线程241
6 G7 F1 @& _6 u4 J6 L1 Z12.5 Detours 242
6 x$ {0 X/ t5 W: J' h* |12.6 APC 注入243$ X1 Z8 N" K  B+ A: ~
12.6.1 用户模式下APC 注入244
4 e" l  l7 Q0 _! l: ^$ S+ J$ B12.6.2 内核模式的APC 注入2458 P4 u/ O8 \9 R' S+ n
12.7 小结246& q9 {5 ?& m1 {/ ]6 E9 ?
12.8 实验246
4 R6 O' F! k2 z
  F+ H9 h. ~( w  M: Y) Q第13章 数据加密 248/ O, M) n+ Z- M7 t! m
' q+ i6 \+ i1 m0 v4 ^  I8 h3 @- ^
13.1 分析加密算法的目的248* G" I! f! y* W: a* C" N, l. J
13.2 简单的加密算法248; d( D' J! W$ D4 D7 d$ J$ Z9 D
13.2.1 凯撒密码249- c& u# w# V  s0 x, z6 j2 w
13.2.2 XOR249
2 q: Q% K. t1 M" @13.2.3 其他一些简单的加密策略254
; H6 @+ T9 I# o- O13.2.4 Base642558 O; u4 z3 u4 l" u* H  o- I$ A+ b
13.3 常见的加密算法258! A: P. q7 H4 c2 s
13.3.1 识别字符串和导入259
  z  t* h6 g" E! N5 K13.3.2 查找加密常量2594 Z/ M; N$ p! T4 z, c. G
13.3.3 查找高熵值内容261# o3 ^4 r/ L0 V: f( M2 s
13.4 自定义加密2628 C/ A" G, k9 B0 U+ Z
13.4.1 识别自定义加密263% r0 H  B4 c* u% [. E7 j
13.4.2 攻击者使用自定义加密的优势265$ p2 o6 U1 V9 t6 T
13.5 解密265+ L) F0 f6 ^* a. U
13.5.1 自解密265
. B; H4 t3 z% p* v7 V1 n9 A4 \13.5.2 手动执行解密函数266" T, i( n+ ?$ J8 u
13.5.3 使用通用的解密规范267$ s) ~: e$ }0 Z* {9 Z! M$ |
13.6 小结270" A5 \. _" [/ v& h3 g
13.7 实验271: ~% Y; B$ ?/ F! W1 l+ p. ^& Q

' @6 T8 I* P: Z0 H; c% I& J第14章 恶意代码的网络特征2735 z$ F3 V- b8 X. E! j
7 ^: {/ [0 y: k1 ?* Q; b& H9 T
14.1 网络应对措施273
' x" t3 V3 L& {8 K( D% W7 L14.1.1 在原始环境中观察恶意代码273
$ w9 Y& Q  J7 g3 B5 L14.1.2 恶意行为的痕迹274
/ F# V7 f& s- G6 a* s) A+ n14.1.3 OPSEC=操作安全性275
' m2 h# N) |  p3 Y% A: R14.2 安全地调查在线攻击者275
, Z2 [/ Z  i" r8 t14.2.1 间接性策略2753 ?* Y' \; T. U4 ^/ ~: I
14.2.2 获取IP 地址和域名信息2763 \8 _. b7 m! Z+ z. B
14.3 基于内容的网络应对措施2781 q8 a6 O4 E6 g; k
14.3.1 使用Snort 进行入侵检测278
7 s5 ^. X! p' x7 W14.3.2 深入观察2793 x# H! P, ]2 D' b0 I! m
14.4 结合动态和静态分析技术2829 Y4 X7 |/ X. _* P
14.4.1 过度分析的危险283+ f5 V/ d! Q5 D6 [9 T
14.4.2 在众目睽睽下隐藏283
  r. U0 O9 `/ q1 C, h14.4.3 理解周边代码2867 _: ^2 |/ M; d3 Z' x' C5 J
14.4.4 寻找网络操作代码2876 }4 S/ m- u- u' B& d- ?6 ~; H9 m/ o
14.4.5 了解网络内容的来源288
7 Y  f6 K3 |% a2 }14.4.6 硬编码数据 vs. 临时数据289
  \8 }+ l' e5 z/ R5 s/ }, |1 t14.4.7 确定和利用编码步骤289
* w3 q+ y" F" U9 w; e14.4.8 创建特征2917 n- u0 W( U- T- [2 i& x/ ^- T
14.4.9 分析解析例程292
  w2 K1 ]' D/ {( g! D8 W+ m14.4.10 针对多个元素294' g; p1 k. U" X: d2 T, h+ N
14.5 了解攻击者的意图295
' p8 P6 n2 K) _( h0 u6 I. h' Y14.6 小结296% e( M3 e# Q# x3 K/ d
14.7 实验296+ D$ ~& @, X8 @+ m9 C, c$ G) L4 }

4 b6 ?& c0 \* N. A1 F& f+ W4 K% v1 [
第 5 篇 逆向工程
, f3 y2 R8 O7 f7 C5 Q% o$ c  j1 b
) j* T+ ?: W) Y3 r9 x第15章 对抗反汇编 300
- l/ g7 e7 r+ p6 Q9 l) h& w" y! E0 r$ O7 E
15.1 何谓对抗反汇编技术300
9 K, `" H- H) e0 d15.2 挫败反汇编算法3014 P' g0 j7 U$ _: y: n; y
15.2.1 线性反汇编3026 Q; r' a4 J" h. M/ Z& b- l
15.2.2 面向代码流的反汇编303
9 j, G0 m1 G$ y! |15.3 对抗反汇编技术306
0 H5 {  U! N/ p4 J9 f15.3.1 相同目标的跳转指令306
1 C1 b: s9 l$ m  ^15.3.2 固定条件的跳转指令307& J" g. L* k6 Y" p* w' D6 e6 Q
15.3.3 无效的反汇编指令308
' P( Z9 |& N5 s% B4 A9 t15.3.4 用IDA Pro 对指令进行NOP替换311
" ^; G! Z5 `$ w% e15.4 混淆控制流图3126 g2 `  j. ~' L# c6 @! Y
15.4.1 函数指针问题312
& V, i' l# `" Q15.4.2 在IDA Pro 中添加代码的交叉引用313
0 S* V5 _6 E6 d1 H15.4.3 滥用返回指针313
& k" r7 ]# F* V( X4 {15.4.4 滥用结构化异常处理315
5 o# ^5 z$ i4 z) }3 y3 Z15.5 挫败栈帧分析3170 Q( c8 E9 `6 M. ~) V7 x
15.6 小结320
" Z7 K' ]( m+ F- Z15.7 实验3200 }2 Y" v4 p; V$ D% S3 U: r0 c& O

! D+ C, V  H6 P: C0 U3 U4 d第16章 反调试技术322
2 P! q% J4 D+ M6 G7 A6 X9 E3 |1 @  e6 ^- [
16.1 探测Windows 调试器322( y$ l: l1 X, ?& a4 ?6 G' ^
16.1.1 使用Windows API322
, j; l+ K4 c/ n2 m6 ]6 O. I6 K16.1.2 手动检测数据结构324
1 i6 g7 P+ X# j+ `16.1.3 系统痕迹检测326
; i. [# d# c& E7 |7 G16.2 识别调试器的行为327+ J+ s8 m) m  G8 ~  t! q- V0 g
16.2.1 INT 扫描3275 N! T1 ]# {; w& ~- N
16.2.2 执行代码校验和检查328
: z  |- m( ^( s1 Z16.2.3 时钟检测328. e, l6 Q' c+ ^6 P! M. Q
16.3 干扰调试器的功能330" @- f+ f7 s$ \9 q  {4 \7 [, S* l
16.3.1 使用TLS回调330
% g% \' Q( A- ]  _0 O16.3.2 使用异常332
& M# u, W* b" ?+ q16.3.3 插入中断333
6 m6 t  x4 Y/ w0 }, @" ~16.4 调试器漏洞334" m" _9 ^# Z" k7 h+ E# h
16.4.1 PE 头漏洞334
% K( ]4 G7 }2 R8 _3 V+ }+ F: V16.4.2 OutputDebugString漏洞336
+ P" W! \: u' m7 j; w3 s7 Q16.5 小结336; H' C3 y( T0 k5 j+ L3 x. q! x
16.6 实验336
/ w* U6 K: ]0 n* m* D) b
: b. X  I, S! \0 h  ^; e6 n第17章 反虚拟机技术 338
) V/ n" C% ^+ l& D; _- ^
; M! h$ b& m! Y9 E' z2 f17.1 VMware 痕迹338
" v, q. G& S+ Q17.1.1 绕过VMware 痕迹的探测340
& B; M0 N; ~- b+ \17.1.2 探测内存痕迹342
+ N7 [' H! b3 \6 J17.2 查找漏洞指令342& a) M. B/ G: c  X  e
17.2.1 使用Red Pill 反虚拟机技术3438 v" Q8 P% D- @6 v: I2 B( _+ t+ Q0 a
17.2.2 使用No Pill 技术3441 P! R" x( F+ ~% c( i* P
17.2.3 查询I/O 通信端口3445 M: E" U- }, |1 k) I0 j
17.2.4 使用str 指令345
2 I( W! i. G2 \; Q' l& b; e17.2.5 反虚拟机的x86 指令346
2 u4 T) o$ g3 W$ i" e9 H17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
' c) X& B) {: ]8 _" }: C6 E$ o17.2.7 使用ScoopyNG347
3 f8 N- p2 J+ x: T9 f17.3 调整设置348
+ F( N) q" m/ d  O6 G, U9 u! z4 p8 ^17.4 虚拟机逃逸349* {$ c4 y1 n# V4 |( @
17.5 小结349
  m2 ~' V5 O4 Z2 g. I5 O17.6 实验349
1 w1 p) e. {( j3 X
/ ]1 u8 ~$ u; _! L0 z  |( F第18章 加壳与脱壳 352
! b# n8 l! D, W% ?+ @1 u# K' x: O) _4 k8 f* n4 g2 S+ q! D
18.1 剖析加壳352* ~* @1 z& I5 i; V) _/ F  }0 I9 I
18.1.1 脱壳存根353
2 P# M: o% m3 Q18.1.2 加载可执行文件353. z. x7 M: |( a& h# ]- }3 K
18.1.3 解析导入函数表353
/ `, r5 [5 V- {& Y, G" ]  d  `18.1.4 尾部跳转354
8 }4 {: u8 @+ p9 i18.1.5 图示脱壳过程354
5 m& n; y8 G2 E4 I18.2 识别加壳程序355
+ `* G# G- A5 U* C  {18.2.1 加壳程序的标识355
( w! M+ U9 w9 S% k18.2.2 熵计算356
* o0 J) N  o; ^. m! y. z+ b& u! W18.3 脱壳选项356
( U& |& |4 ~# z* q3 b18.4 自动脱壳356: H! M, c2 Y6 V! e4 V: y8 u
18.5 手动脱壳357- K- _; A4 P, A, p% F' v3 d
18.5.1 使用导入重构器重构导入表358
) s+ X' ^6 [5 A4 h% a$ E) L  R18.5.2 查找OEP3594 J, v4 U9 ~' x+ B, f8 j
18.5.3 手动修复导入表363+ e, d9 j4 T% O5 f6 T& ?& H7 F
18.6 常见壳的技巧与窍门364
+ R0 l, c1 c4 O' Z" X18.6.1 UPX 364( P# L( D7 S; s( Q/ p8 U- c
18.6.2 PECompact 365
# j: x3 }/ ~- B# V. P18.6.3 ASPack3654 T# Z  O: [* Y3 e+ k1 U! E$ w
18.6.4 Petite 3655 ]0 T$ K  j' w; [) J
18.6.5 WinUpack 366  ]& K$ ]$ k( q" V% }# @
18.6.6 Themida3677 r  m! U8 D  S9 q5 E7 p0 a
18.7 不完全脱壳情况下的分析368
$ g% u+ x* g$ G18.8 加壳DLL 368
" E( ~$ c6 Y* k0 Q18.9 小结3697 n) Q+ U( ~/ ^3 S! A5 }
18.10 实验369" ^. j  t1 V" {
, T* m; s# ~; @$ x+ y

* a: y: m+ ?# p) L第 6 篇 高级专题! H! F7 n9 Y7 B: S% Q6 j
" Q! z1 }$ n+ h
第19章 shellcode 分析 372
- A9 z- m' B3 \+ k- a& _/ M$ F0 P
19.1 加载shellcode 进行分析372" O4 ~. {  Q7 k/ p
19.2 位置无关代码3732 [; }  L. T$ D2 [* s" W% I+ a6 o8 E, {5 d
19.3 识别执行位置3731 v: K, w* F. l$ l, C, m
19.3.1 使用call/pop 指令374
5 j5 {% c0 ?- X19.3.2 使用fnstenv 指令376% ]/ `: `( g) P' ^
19.4 手动符号解析3774 k6 t. B" @6 z5 ]
19.4.1 在内存中找到kernel32.dll3786 u& s2 J! q5 j; @: ]6 t. @
19.4.2 解析PE 文件导出数据380  \# P( J, y, z* {6 u, q8 E0 s
19.4.3 使用散列过的导出符号名382
! q) l$ }& H9 q3 q; r# P19.5 一个完整的Hello World 例子3839 X. s1 m# k; e0 {+ {" _1 n
19.6 shellcode 编码385
. w, R7 z# O+ B/ S) G19.7 空指令雪橇387
2 Q! V$ c7 H1 @" |- r19.8 找到shellcode387
' B* ^% z+ i2 g! _; e8 t; V19.9 小结388
3 E' x9 i. F: K# A# I" _19.10 实验389/ H; f& v0 ~2 R! G( a: S% c7 B6 W

  k4 q) b  E7 ^8 N" _3 b第20章 C++代码分析 391
) |1 t! O) G3 ]9 E$ w& @! L9 T" ?6 V8 m0 m7 J# M
20.1 面向对象的编程语言3913 C4 P2 Q% k) T3 d, v/ `
20.1.1 this 指针392
1 y& Z" e6 `4 q& ~9 d* `20.1.2 重载与修饰394
- ?2 _2 s6 Z4 A$ B) h, k( m20.1.3 继承(Inheritance)和函数重写(Overriding)395. o9 a" n+ w9 ^
20.2 虚函数和非虚函数396
  D: M) a8 G3 {$ L# ^& e3 z( x3 W( q20.2.1 虚函数表的使用398% x4 s3 ?" T( P: P
20.2.2 识别虚函数表399* X" o- e' j/ A4 a
20.3 创建和销毁对象400  C6 l; W, B7 `: e& d
20.4 小结401
5 y/ a) q) r; r) l8 x2 g20.5 实验401
  B  P4 o2 t# Z, C7 L
: b/ B6 e3 S) d% V  C第21章 64 位恶意代码 403* q) a# H7 }4 R4 W

' K3 g5 r% u/ m5 E$ Q21.1 为什么需要64 位恶意代码403, x3 J$ P- w4 l
21.2 x64 架构上的差别404; r8 [; `, A0 T( \1 X. _" l0 Q
21.2.1 x64 调用约定和栈使用上的差别406
/ j; F8 D# G. |21.2.2 64 位异常处理408
( A+ R( i* y/ T1 ~1 ]' k3 g21.3 在Windows 64 位上的Windows 32 位408
0 Y( M$ a. j( C) m$ D) ~# z/ q21.4 恶意代码功能上的64位提示409
2 Y4 B$ X1 a" E21.5 小结410* o/ ~2 S! I3 e1 k7 {7 C( m
21.6 实验410) F0 x) }& f* V/ V. p; V; I% V) y

( p9 y0 x6 ?) h, ^) p3 D, q附录A 常见Windows 函数列表 412
4 F. G( ^0 Q2 B6 A/ `! L1 S6 M, m' c/ y' z
附录B 流行的恶意代码分析工具列表424. J' F2 ]. S& E, p) g

' y7 `$ j/ o5 M# {4 t% o2 j& t附录C 实验作业参考解答435- d7 ~7 t' ^! |' z- m7 w0 }( k

$ r% V# }2 q  Z) h  `5 \6 G( o  z0 P附录D 致青春,基础软件开发的中国故事 691
5 e5 }8 a6 S) T+ M- o3 x/ m" I8 ~# ~, @/ T
附录E Syser 操作入门 695' {( H2 r% _7 P, J& h) t% r. W" e
- s- ~+ J; y6 \* m

* b) h' G9 \. n9 N
想知道小甲鱼最近在做啥?请访问 -> 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# K* r; C) b) H# M. _
什么编程语音写的?

6 u" U  [% h! ]: j& v( `4 K什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-2 02:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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