鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

) F; A7 [) u. t! Q/ m
, U. i8 \$ q& `书名:《恶意代码分析实战》
$ Y; a$ ?- o6 s( s6 y; h5 y* X/ l作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)/ }2 w7 k4 W8 w
译者:诸葛建伟,姜辉,张光凯 % ]$ A! m' j! z: b4 Z, D: n
出版社:电子工业出版社0 P  d9 m+ t6 j# I$ i
出版年:2014年4月1日(第1版)# p' [3 A9 O, ^3 R4 E- D5 [
定价:128.00元
3 k% f3 w4 m0 l/ n, D. H装帧:平装0 s* o5 P/ e: \6 }. ?. j
ISBN:9787121224683
8 |; }3 `  T$ o/ y' p* L: C9 l+ l) @7 M( g0 q7 S
购买链接:
9 z/ d2 R& @* ?- A1 x$ q+ c" z' T+ D" @2 V

& _  T# }5 T9 E' `3 b
亚马逊 -> 传送门9 Z: e; u- _& O+ q6 t/ E* t8 Q
: }1 }; y1 N/ Z3 Y0 m( `  `4 s
当当网 -> 传送门
8 ^. t/ X! T( C4 |6 x
, d6 I' A' q! L" \- j, L京东 -> 传送门
" m% z/ P4 ^* R  S6 P' d5 w( ]* v' Q$ v3 \
天猫 -> 传送门* \1 b9 ?  z' B! y, I% s

( ~/ u- n" F% Y  q  z
3 H# U4 ~) e% `0 b: U0 l* k! V内容简介:
, w  H5 S3 N& a) a, T! k: b9 c% b6 ^% b9 ?/ W0 \# g


6 B6 ?; @) M  b1 H《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
8 y2 \+ O6 k" D) i7 T, t; w. L2 F- N( @+ @. r9 R- B. U1 W( y
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。. K1 |: S( L) {. i- I$ B

0 s. Z6 _2 O- {9 i8 |9 a针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;, k9 h) b. F( a( m% {$ ^8 d5 i
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。2 A( ~/ y2 ]6 u* p6 e
: X  U# t5 V0 m, ~1 A
目录:
' Y& p6 m6 S# F! N! F* \( }0 Q3 @. z! a

; C; {8 p- ~5 X' \
第0章 恶意代码分析技术入门13 z7 \# @& `, R1 a2 P( I5 h6 X

& g) P3 t! l' h1 o7 I6 w0.1 恶意代码分析目标1# {3 e6 b- f& k- {- ]8 z( f
0.2 恶意代码分析技术2! [" J( s& y$ Z
0.2.1 静态分析基础技术2
' _! G& F4 k1 c/ V3 i6 u0.2.2 动态分析基础技术2# O8 j- N: C+ j& `6 R( D
0.2.3 静态分析高级技术26 s6 b! V. J2 A1 ^
0.2.4 动态分析高级技术2
9 D. I$ Q6 h# b5 p* ~0.3 恶意代码类型32 r" ]: [, u( R3 n( Z
0.4 恶意代码分析通用规则4
: E( f) ]: x1 M2 p  }" K# i' V6 h% o2 K( i2 L) ]8 h! `2 Y( i* N3 `: c
% l% {3 w. d* B. u
第 1 篇 静态分析& H" Z3 {1 h# O7 V/ }+ K% @

% _- P7 H* V- D9 _第1章 静态分析基础技术 6
$ ], R  t4 J8 ?5 T; s
& C4 _$ H$ b7 N. v$ g6 L( O
1.1 反病毒引擎扫描:实用的第一步6
) x( ~! Q' S" s' u1.2 哈希值:恶意代码的指纹7& l' `) H3 W! n/ x4 g2 R
1.3 查找字符串7
! W9 _/ _9 Z7 i& y6 ^5 D# \1.4 加壳与混淆恶意代码9
  [1 j) B0 L0 G, A- Y9 H1.4.1 文件加壳102 O5 G9 a" A$ Y) T$ |+ f+ ~0 g4 [
1.4.2 使用PEiD 检测加壳101 i. G5 z5 ^6 i" Z% a
1.5 PE 文件格式11' ?$ n& n; s- w  ]; B/ g
1.6 链接库与函数12
0 t; h, y# R3 ^$ l9 p$ q! `1.6.1 静态链接、运行时链接与动态链接12% m/ `2 Y' z' s* R7 ?
1.6.2 使用Dependency Walker 工具探索动态链接函数13+ V$ L) h3 t8 z5 d
1.6.3 导入函数14
; \9 j8 b6 w" P+ ]; }5 N1.6.4 导出函数15
4 x. J5 h9 v: t% I0 ^1.7 静态分析技术实践15" o9 d3 q0 q% @/ I/ z/ D0 l
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
9 V( Q1 f4 X& v; m% W1.7.2 PackedProgram.exe:穷途末路18
( o' B+ m0 a8 _% b6 N, _  |  n7 }1.8 PE 文件头与分节18
0 W- z; G6 G& S. t5 K, m1.8.1 使用PEview 来分析PE 文件19! K; H  `4 a- ^/ e
1.8.2 使用Resource Hacker 工具来查看资源节22
& y1 a$ r( [) e+ k1.8.3 使用其他的PE 文件工具235 {  i, c3 I6 [8 o  N
1.8.4 PE 文件头概述23% p+ W) G" G: b1 O
1.9 小结24
. Z# ]. M4 n7 i1 m6 x3 S! @1.10 实验24% k1 S7 Y+ Q. C( J6 \  m8 Z. G/ R! {
# F+ ^9 e$ u) f+ M. V' `8 Z
第2章 在虚拟机中分析恶意代码 27- E/ M, d; g+ V& v6 r
6 ~9 a2 \4 g) {7 ^
2.1 虚拟机的结构27
7 A; W  A, c2 r, v1 j2.2 创建恶意代码分析机28
( G0 m' X; J2 i6 F  M2.2.1 配置VMware29/ r9 p, Y$ d6 c/ B
2.2.2 断开网络30; _5 \& l; y1 D1 |' Z9 w
2.2.3 创建主机模式网络302 F4 D5 ~5 x; T! }: N6 K6 q
2.2.4 使用多个虚拟机30
3 b9 @& z4 F/ `  ~" v2.3 使用恶意代码分析机31
8 k) s7 [( @3 M: F4 q5 m2.3.1 让恶意代码连接互联网31! Y3 L1 G$ `( l6 H
2.3.2 连接和断开外围设备32
. U: @1 L. ]4 U; j+ ~2.3.3 拍摄快照32/ C/ m! P* e% w0 z3 i7 D3 W
2.3.4 从虚拟机传输文件33- S' [5 M1 Y8 _! j8 L/ d0 n1 o' @2 P/ Y
2.4 使用VMware 进行恶意代码分析的风险34
- x2 v! h; n  B8 K2.5 记录/重放:重复计算机运行轨迹34
! t( d0 X" b/ k. U. T! @4 r. _2.6 小结35' C! o: ^) p- i: F% ~9 l$ S- g
: x5 q' ^3 G, j9 s) H' x
第3章 动态分析基础技术 36
5 A. S* u3 H# t% ~- a
; L6 P) l& u5 _3 p- l2 b! O' V
3.1 沙箱:简便但粗糙的方法36
; w( c; H. x1 p3 [/ |7 A& P3.1.1 使用恶意代码沙箱362 v" h  D8 M  c" r! D
3.1.2 沙箱的缺点37& B6 v3 j2 ^) r# d" j
3.2 运行恶意代码38
$ o6 f" w3 q+ X4 X# S5 Q# N3.3 进程监视器39! [0 u3 @9 ^8 @) |$ q3 S$ P
3.3.1 进程监视器的显示40
' k+ w& G7 r1 Q- Q) {3.3.2 进程监视器中的过滤41
* B* F8 h" x' h2 u6 l  V3.4 使用进程浏览器(Process Explorer)来查看进程43
( D2 O6 t% L) Q# E8 y3.4.1 进程浏览器的显示43
& G6 x- a9 G* h( p/ l/ b7 k3.4.2 使用验证选项441 ]4 d: d1 F. g) `. U- J" u: u
3.4.3 比较字符串45
' r) h% J) y0 j% o3.4.4 使用依赖遍历器(Dependency Walker)45  T. t# ^+ k* B6 |( f4 s
3.4.5 分析恶意文档46+ \& x" |1 m, G
3.5 使用Regshot 来比较注册表快照46
5 ]8 P! g3 j* H4 S1 i9 z3.6 模拟网络47
. k$ ~9 z# E2 K4 E2 W" b3.6.1 使用ApateDNS471 `! X2 A6 A- H* x4 K
3.6.2 使用Netcat 进行监视48. o! q2 j! p$ a' W5 _& e; L
3.7 使用Wireshark 进行数据包监听49
7 F% R' K5 W# j' \3.8 使用INetSim51
+ M' b2 w# h3 y2 H0 R+ S3.9 基础动态分析工具实践52
3 _: o# ^9 \( r" Z2 A0 F* Z7 F3.10 小结554 f( b& [* E% y
3.11 实验56
4 N" E! t. ~* p2 I, N* ^+ y- E
  `6 s/ t+ v1 s. h8 e
  H+ h# |" i# ~8 ^) x" s第 2 篇 静态分析高级技术篇" N6 l# l1 \0 m8 w0 q. @1 S
- W0 n( T9 u* `3 N
第4章 x86 反汇编速成班 60
/ u+ k, g7 y# c
3 G8 Y/ i) t( R& @5 N' {- t& s/ b4.1 抽象层次60; `( t0 ~1 v$ c6 _. Z
4.2 逆向工程62
* f1 I$ f+ k, @# J4 q5 L4.3 x86 体系结构62( h- \9 i) u3 i' m% ^8 ^
4.3.1 内存63( \, u2 M2 s& b4 [, w# b( D
4.3.2 指令647 T4 i8 r. q8 |! X, D4 {7 [7 d; o7 e& q
4.3.3 操作码和字节序64$ u+ J9 A4 {! R4 u5 j8 f" P
4.3.4 操作数65
: U" Q# T9 U) z7 T- z  D: B4.3.5 寄存器65
3 f8 v4 x) z8 Z4 l! X; W4.3.6 简单指令67
& u4 z! ]. I: G/ O4.3.7 栈70
: [# P1 M4 m) T4.3.8 条件指令73
; z. o7 V( P, B4 e9 C; N4.3.9 分支指令73
5 ]$ n- L! ~+ x/ L/ @4.3.10 重复指令74
8 e. ?! Z8 w+ B& G' L4.3.11 C 语言主函数和偏移76
' u, d+ Q, r7 x4.3.12 更多信息:Intel x86 Architecture Manual77
: q% l" j5 F+ V4 w# C) C: V4.4 小结78
7 t- @* a1 G- B$ K, @; v6 T) ]6 Q; u0 h( n3 \2 a
第5章 IDA Pro 79* Q6 P. q+ [8 e" n3 U% k2 w

# S' h+ V6 T. @) ]6 Q+ o5.1 加载一个可执行文件79- }% R. G7 U: V9 B# ]6 I: ?
5.2 IDA Pro 接口81
* c; }( z9 ^. m! v5.2.1 反汇编窗口模式81
- E6 C7 a9 [" K4 S( T+ s, D$ q' Z5 x5.2.2 对分析有用的窗口83" r/ u. \1 I  y1 r$ h
5.2.3 返回到默认视图83
1 B4 T! p' L/ a% _1 ]7 d6 O5.2.4 导航IDA Pro 83
+ I1 Q7 t1 Z8 a5.2.5 搜索85  V# Z4 s8 |5 T
5.3 使用交叉引用86
+ U8 n" g7 |6 |0 r  ?% R5.3.1 代码交叉引用87
# n+ m. [" h; G& ]5.3.2 数据交叉引用88/ b# V; K$ q3 \8 h# r! U
5.4 分析函数88
  [8 k7 O$ u8 C% m8 _2 Y' M6 K$ l5.5 使用图形选项89% V+ v, P& a- _+ r) t
5.6 增强反汇编91" ?4 h. G& ~2 Y9 c& Q2 _( ^  {
5.6.1 重命名位置918 P# f6 U6 m$ Z; Q
5.6.2 注释92
3 C7 [) H9 |7 i% t* `3 Z5.6.3 格式化操作数92
5 |; r; p$ O; b4 A! G" K$ M4 m/ x, t! o5.6.4 使用命名的常量93
6 `0 j: \7 R$ X5.6.5 重新定义代码和数据941 y0 Y# j! D* ?- C& J. |
5.7 用插件扩展IDA95& W2 S+ r0 C7 E* A4 I" y# n( @: b: a
5.7.1 使用IDC 脚本962 _! F% d. y5 d7 K4 ~9 d+ r
5.7.2 使用IDAPython97
# i( S7 y5 U& p, M9 O1 `: {  p5.7.3 使用商业插件97
8 B: E3 w2 h% E% \' I5.8 小结989 x; Z# }5 |/ j  J2 p
5.9 实验984 W% F* X& ]% ?

5 ?, V0 L7 x7 K第6章 识别汇编中的C代码结构 100
. `( ?0 I# {* P0 D  K

/ E0 Z* d+ I0 {' s% S6.1 全局与局部变量101+ D7 A2 n) J1 t% X) p
6.2 反汇编算术操作102
! Q7 e7 |- z+ N1 G6.3 识别if 语句104$ {6 v) S) n: g. y, t, p9 L% d
6.3.1 用IDA Pro 图形化分析函数105
, x3 @" a6 D2 e& x, A% F6 J! \. U6.3.2 识别嵌套的if 语句106
& g# \5 O* h- z6.4 识别循环107
1 V$ K  Z. L/ ~6 O& I' Y! o$ _# g6.4.1 找到for 循环107- G! V8 O+ g% k' S' S" m
6.4.2 找到while 循环109
" X0 w4 W% g& R$ A6.5 理解函数调用约定110/ C& }# T& K, _- X
6.5.1 cdecl1102 i) y1 O$ n" r8 d7 p# F( D
6.5.2 stdcall 111* j  S$ ?: v" ~0 Z# I$ N/ W
6.5.3 fastcall 111# t, g' {1 O+ j  ~& ~! L
6.5.4 压栈与移动 111+ R7 D4 D' R% x+ r5 H/ ?
6.6 分析switch 语句112
4 o0 e! a- E* {; z5 Y6.6.1 If 样式112
. q' x# G9 }: f% u6.6.2 跳转表114
2 S+ o' j; D2 P7 y, r1 \" z6.7 反汇编数组118
5 O( U# F' G8 a5 i4 c" Y- G6.8 识别结构体119
# D5 q) {5 \$ x7 a6.9 分析链表遍历121
1 W+ G* b" b( d* j6.10 小结123
) o3 f/ Q1 N2 H5 n( O& d/ ^$ o. t6.11 实验123
6 U  w8 Q/ P7 F1 \3 o. }* p5 C& K
: E1 ^, `4 j& T) p; U第7章 分析恶意Windows程序 126

) J  M( ?! n* |- e4 ^. s8 X& R6 x5 J5 C4 `
7.1 Windows API126- f. H, C8 z8 E- |, F0 e
7.1.1 类型和匈牙利表达法126' T/ C; e+ w# B+ u) }4 b% i% P
7.1.2 句柄127
$ l% r4 R* W$ [* J+ W4 s& {7.1.3 文件系统函数1274 e9 P% Q3 w# ^4 \/ o7 q
7.1.4 特殊文件128
# h$ f& s3 ], k) G7.2 Windows 注册表129
/ Q5 {; Z. H9 m7.2.1 注册表根键130
/ ]$ r# Q0 _6 Z+ ]! h) a7.2.2 Regedit131/ O( C3 ?8 |0 w0 D' N
7.2.3 自启动程序1315 [, x1 b! D2 n4 w" V
7.2.4 常用注册表函数1317 H% q- a4 L4 C2 o5 s
7.2.5 练习分析注册表操作代码132
3 Z/ C* h- Q& Y  [  j% {+ B7.2.6 使用.reg 文件的注册表脚本133! I+ H" J% |. G  {
7.3 网络API133' o$ b) n: h7 x$ o
7.3.1 伯克利兼容套接字134
; G" u6 a; j# H7.3.2 网络的服务器和客户端134
0 f( U* w+ |0 Z3 E8 W7.3.3 WinINet API 1359 [/ ?' O3 N$ B6 z9 H2 E
7.4 跟踪恶意代码的运行136
/ m3 c4 e6 s% F7.4.1 DLL136! n! F# ^8 q0 g& e# X
7.4.2 进程137$ v% f1 R" i* v3 T/ G+ ~  h( ^/ d
7.4.3 线程1396 s6 f; K2 M  B- G' g
7.4.4 使用互斥量的进程间协作142
8 A! c* f" M# d2 Y! G7.4.5 服务143& M+ G- r9 S7 E% R- ]  b7 }
7.4.6 组件对象模型1453 o$ n& @+ y- c7 y1 }2 p7 P* D( K
7.4.7 异常:当事情出错时147" t1 e! G) Q# ~! g$ T
7.5 内核与用户模式148( r' l+ r, g7 U- }3 n6 @
7.6 原生API149  b3 C+ @; ~2 F
7.7 小结1512 m7 R- ]. I2 t9 m; ?4 h* x3 s/ F5 Z
7.8 实验151
! f: G# L3 `: O. ~. s9 z7 Y7 ~; F# M  \

7 n5 ]( m8 Y) J第 3 篇 动态分析高级技术篇' b0 `" M+ S+ \6 D9 ?0 r' q, u5 ~7 A7 ~

: g; u1 m- U/ c( K$ `; a  f第8章 动态调试 154
7 z% {/ x# w- S$ Y5 l$ f

4 u) s- k& }" |- H& s9 J8.1 源代码级与汇编级的调试器154
. E  {6 S7 d. R8.2 内核模式与用户模式调试155
. c3 B- |1 J+ d8.3 使用调试器1559 F! Z4 k( k) ~/ v5 J1 T
8.3.1 单步调试155
/ Z7 I4 M5 \! d8 k! ]" \+ I8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156: u3 Q8 ^* [  ~5 F/ W+ ]
8.3.3 用断点暂停执行1573 l5 s* S% R: e6 e0 f
8.4 异常161
$ ]5 \( r( p& m' s8.4.1 首次和二次异常处理162. u  a' `5 Z2 m% Q
8.4.2 常见异常162
" ~$ [- S, V: ~1 }& [* K! m$ v& H8.5 使用调试器修改可执行文件163
- j  V1 T2 o* C* V' y, m8.6 修改可执行程序的实践1631 P/ H5 v: P" B' q& x/ O' D  r3 N
8.7 小结164+ C, R0 N) z5 e/ p, q# U& S9 h

6 J: [+ N6 q6 l) Q第9 章 OllyDbg 165

% r8 J" \2 l$ ^7 {: t
9 K0 q# {' T4 X7 X/ }& r4 W4 F, H9.1 加载恶意代码165
$ U" {1 |: c9 S" s, l3 F9.1.1 打开一个可执行文件1656 H" Y% C$ D6 K& f9 e$ Z
9.1.2 附加调试器到一个运行程序166
* A& u) k. T1 t/ k: b9 g# Y% D9.2 OllyDbg 的接口167
' I% r1 ^7 b1 M0 i0 X8 K9.3 内存映射168( C2 ?. r! L1 U+ i
9.3.1 基地址重定位169
3 ~6 |; x4 x: z# r7 v1 O9.4 查看线程和堆栈170
/ d8 ^/ \) U% M; Y& H+ Q% W% ^9.5 执行代码171% H' T1 T% c  ~0 j$ W6 \
9.6 断点172
  j5 E7 U9 u- e  _5 O* v4 o9 q9.6.1 软件断点173
# @0 r9 f! ?' S2 t7 g9.6.2 条件断点1748 F6 \; n) ^! r3 f4 E
9.6.3 硬件断点175
0 Y  z6 b2 G- g5 E& U; t! p+ N3 b8 L9.6.4 内存断点175. h8 B( o5 i0 f4 b
9.7 加载DLL1764 H* Q3 ~) `8 G" ~3 y9 d# Z6 ^: z
9.8 跟踪177* E! u' U. O% h
9.8.1 标准回溯跟踪177
" f1 J2 o9 x& [( e$ O8 l/ u9 U2 ^9.8.2 堆栈调用跟踪1782 n( {" E7 p$ E
9.8.3 运行跟踪178  W8 r* ]0 {) L3 X; N5 h" M) G% h
9.8.4 跟踪Poison Ivy178# H3 b  ~2 P- S1 y# `9 m! R
9.9 异常处理179: ?. x+ ^  F) y) j
9.10 修补180
5 G( B5 H: ~8 ^+ t* n) [$ z# b9.11 分析shellcode181
1 }9 G" j$ p% l0 U1 Z7 C9.12 协助功能1828 h- k8 v  d7 y  B5 u% x# V& r
9.13 插件1823 I/ T* E) `1 D- n: a' J
9.13.1 OllyDump183
2 n  m6 a4 V  B& v0 t7 h" D9.13.2 调试器隐藏插件183
5 X3 @# v4 u0 C0 K; Q9.13.3 命令行184+ I+ Y4 I) }! i; j/ h3 n
9.13.4 书签185
( b8 q; q& k* f9.14 脚本调试1857 K" w3 ~7 J, U) e' Z9 C8 l6 s
9.15 小结186  a! ~+ |5 e( g  c; l" V  i
9.16 实验187
* k$ I! T/ I( w1 j, B/ f! R( z+ S
; ^; W8 u! Y5 v4 Z( i第10章 使用WinDbg 调试内核 189$ a3 m9 C8 H* @
2 x! _" R3 e" f6 y' @5 W
10.1 驱动与内核代码1890 Q) b: w; P) a5 C; n! ?1 |
10.2 安装内核调试191
' j: S# n: q, p) L& M, _) H10.3 使用WinDbg193
; l  b/ u4 d9 H9 e/ D/ B10.3.1 从内存中读取194+ _7 S) C7 I. w% Y) }
10.3.2 使用算术操作符1943 i' ?# K! |' D+ }& @" a
10.3.3 设置断点194
% A; Q, G- ~0 n% g: h, Y10.3.4 列举模块195
& a. N4 g% Y, ?  c2 [# D10.4 微软符号表195
+ _4 f: F. v2 X  M( }10.4.1 搜索符号195; Y" y) ?6 L( e5 U6 s
10.4.2 查看结构信息196
  j7 `8 A& _8 n! v+ M( C* @10.4.3 配置Windows 符号表198
# k  U) V- ~* g) E3 X7 Y10.5 内核调试实践198
' v& o  P% F1 {" D10.5.1 用户空间的代码198. z; t' F$ V! o. U1 m5 F- H
10.5.2 内核模式的代码2006 N; ?7 d* C9 e( i
10.5.3 查找驱动对象203( Z# k7 s* m5 P% j
10.6 Rootkit204
$ e9 ~! q  g  j3 ^" t8 a10.6.1 Rootkit 分析实践205
" p. Z% t, w" B- E: `" m, y10.6.2 中断208
3 H8 |) A2 }( Z+ r* q5 e' W10.7 加载驱动209
) C# [  H' ^! s) O" b10.8 Windows Vista、Windows 7 和x64 版本的内核问题209
! ]5 o1 Z$ |6 _10.9 小结210
. X1 [4 }" s2 h1 ^2 X: C. h10.10 实验210
: I# ~( M! U8 O. [; M0 W* R: f" I$ m$ i4 u3 Q4 I3 c+ F6 E( A  e
+ i* c' o) o( u9 T4 ^
第 4 篇 恶意代码功能篇% x  y! a# L0 ]

- A% C2 _; S* O# `第11章 恶意代码行为 214; \1 \& N7 u- J& Q' [% f

9 E) _' B% ]6 o: Y11.1 下载器和启动器214
% f* a0 J; \+ X2 B# D11.2 后门(backdoor)214
. w6 c5 n* I  ?9 R/ Y11.2.1 反向shell215
  V6 ]1 o! j3 S$ W% R0 o11.2.2 远程控制工具2163 [5 d0 `0 }5 o3 f3 S
11.2.3 僵尸网络216; x; N, m2 Q- Q1 ?
11.2.4 远程控制工具与僵尸网络的比较2178 g% ?' c+ T. r1 o- {% A: @- b
11.3 登录凭证窃密器217
( o: p+ T! Y. l) r! n& I9 q% J11.3.1 GINA 拦截217
% d: u& X" j  E0 n4 G* r11.3.2 口令哈希转储218
. O+ n+ W, J5 P. ]( i; L7 q1 ?11.3.3 击键记录2211 |2 z; l: f3 }3 m! @0 o
11.4 存活机制223; l! g) B+ E9 z! s
11.4.1 Windows 注册表223' j, c1 x/ P  d$ B* b# X; ]
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
( V/ [3 x2 i: ]4 @7 p! h) w' i1 c11.4.3 DLL 加载顺序劫持227
8 U3 k. T9 }! G) M& m- N$ y11.5 提权2282 }: ], J8 Q' t: k' L( K, E
11.5.1 使用SeDebugPrivilege228
& Q: Q3 u/ n7 i% t9 N8 g& c11.6 隐藏它的踪迹——用户态的Rootkit229
5 \5 d3 \3 H6 J. B8 Y" |11.6.1 IAT Hook 230  l: R9 i- G+ R6 F9 A
11.6.2 Inline Hook 231
& S# w3 F1 K) K3 H6 x4 n11.7 小结232! [, ]- V$ P; I+ s
11.8 实验232
* Q, f5 a) h# y( }- [$ f
* j6 V. ]* q8 `+ P' H! c; I第12章 隐蔽的恶意代码启动 234+ \% T6 k, g2 d
# e! s; }6 A  t" a; y3 H" ]
12.1 启动器(Launcher)234  G6 S0 X. L: D) X" A
12.2 进程注入234* I/ \) Q9 N6 `
12.2.1 DLL 注入235  j% s- i- Y0 h7 L0 a
12.2.2 直接注入237# E5 }! t# @: h- K# a  p! f% K) ]
12.3 进程替换238
0 V6 m4 k2 {9 {4 M5 ~12.4 钩子(Hook)注入240
; k$ x9 y7 E8 d# Z: z, U" s) i" K12.4.1 本地和远程钩子(Hook)240
5 e; J# r+ d' X4 _7 s1 J  Y12.4.2 使用钩子的击键记录器241
: y3 x- @: s$ q" x0 c% B- ^12.4.3 使用SetWindowsHookEx 241
  N0 D4 v5 X! @  t5 C" _$ U# F12.4.4 目标线程241
0 o/ P: ~7 _. P$ F8 k12.5 Detours 242
; i% ]6 j' L$ M  P; S0 f12.6 APC 注入243
8 c' [4 D! Q3 Q" J8 _- Q12.6.1 用户模式下APC 注入244
$ K) O& \! k* Y/ _( D5 T# f' x12.6.2 内核模式的APC 注入245+ `0 Q) r6 @. D/ ]; c1 U- I
12.7 小结246; i0 L8 g! K0 Z
12.8 实验246- j0 F' [. J4 N

: Z3 ]' i, C8 R. Y& D7 _第13章 数据加密 248. C3 [3 {7 T( c2 q/ e5 H! w

6 U4 g5 y' l3 R13.1 分析加密算法的目的248
, B+ Z! V$ c2 ~. A  v; L: D13.2 简单的加密算法248
7 J3 Z0 C$ Y- v- P) K9 r13.2.1 凯撒密码249
$ s+ Y) F; `& v% g13.2.2 XOR249$ X+ R' J& N! t; b; t6 ?& }4 w! b
13.2.3 其他一些简单的加密策略254
  H" r  b/ d1 l# W3 p+ ?% N, y13.2.4 Base642555 h! U& M9 q( h6 v% w# a: u
13.3 常见的加密算法2587 x& ?8 h. W& x; t
13.3.1 识别字符串和导入259; B9 ]  y3 x3 c+ W% b1 T2 Y
13.3.2 查找加密常量2595 V) l5 b1 j3 A, V2 a
13.3.3 查找高熵值内容261
1 s# N+ Q1 M# e' t9 [% D13.4 自定义加密262" u- x) }3 h1 Y4 k
13.4.1 识别自定义加密2635 O& |4 s7 u& i7 }. b& v) \
13.4.2 攻击者使用自定义加密的优势265
4 v; b8 A% ]& u! d) B5 C13.5 解密2659 [& k" ]) a8 S- V
13.5.1 自解密265
# f8 T5 z+ j8 x1 y13.5.2 手动执行解密函数266, d5 R4 m3 {7 p' M; ]* p
13.5.3 使用通用的解密规范267) I) w+ Q4 V, M6 e5 H. J
13.6 小结270/ l# `+ y6 e4 Y( s
13.7 实验2719 ^- k  S5 _/ y# E
( O- B! q2 L4 P# ^0 @. I; R
第14章 恶意代码的网络特征273
3 Q0 R  d8 e9 D# x& J
3 h/ a: e6 @& ]; V; z14.1 网络应对措施273. q) s4 a8 k# {% D) L# r
14.1.1 在原始环境中观察恶意代码273& C$ x! X% ^' N" K) J4 n
14.1.2 恶意行为的痕迹274
+ P- r6 [2 s" e& E14.1.3 OPSEC=操作安全性275
" N* @7 b/ Y" W. z* l& d# L9 M* a14.2 安全地调查在线攻击者275
% i1 T- V0 n$ H# W$ X. |* \, ]14.2.1 间接性策略275( x% Q, x  x# z
14.2.2 获取IP 地址和域名信息276
: z: u" @' E; r) [14.3 基于内容的网络应对措施278
# b5 A$ T  E/ z7 W1 f14.3.1 使用Snort 进行入侵检测278
. `. [: y( Z; a14.3.2 深入观察279, N0 S- w) s5 F, }4 {' J
14.4 结合动态和静态分析技术282# q7 D+ Z1 f0 z* O
14.4.1 过度分析的危险283- _5 f$ s+ X: N( d. A/ R0 e6 G. E( G
14.4.2 在众目睽睽下隐藏283
8 D. f. ~; l* m$ o' r! a14.4.3 理解周边代码286
5 c4 E% D3 l, ~14.4.4 寻找网络操作代码2876 N' D+ M# Y6 S% ?
14.4.5 了解网络内容的来源288
& h( D  a, I' a3 |14.4.6 硬编码数据 vs. 临时数据289. J% k/ R) I* P) W6 J
14.4.7 确定和利用编码步骤289( c) r8 K: j9 D5 n! p3 [- y2 p
14.4.8 创建特征291
' z6 ]3 p2 O/ ^2 O14.4.9 分析解析例程292& o8 i2 w5 v- Z/ a6 _. P" K
14.4.10 针对多个元素294
; J7 C* t3 g% f' Q* D14.5 了解攻击者的意图295* `- `9 L/ ?4 ~; _
14.6 小结296. K: j# `4 W  u
14.7 实验296
" }) \% F  i' q& w5 [7 c9 j, T
6 h* Q. O8 e1 g) M  w: P6 u9 @) N$ `
第 5 篇 逆向工程
2 s0 G" y: S/ G7 X0 z  T5 m5 ?# J0 Q9 d0 S
第15章 对抗反汇编 3001 F( f3 c  w+ k- J& W; B2 b0 @) |
# Q, w8 x0 s! l1 e! |
15.1 何谓对抗反汇编技术300
# w$ {9 T( v1 W+ S15.2 挫败反汇编算法301$ O# m3 ]- c- Q6 k
15.2.1 线性反汇编302
5 h; v, Z. o- M% i15.2.2 面向代码流的反汇编303
; n9 @/ y5 o) Y( F. m15.3 对抗反汇编技术306
* {( K4 O$ j5 M15.3.1 相同目标的跳转指令306- b! O1 r; K0 k1 R9 `& i9 X! ]
15.3.2 固定条件的跳转指令307- ~5 Z, K8 {; i' `8 t. q& w7 ^
15.3.3 无效的反汇编指令308
7 d: w8 H# F8 d0 d( H0 J15.3.4 用IDA Pro 对指令进行NOP替换311
& G7 V9 M: \4 @0 r( O6 R15.4 混淆控制流图312
! W0 q: \4 f% x15.4.1 函数指针问题312& ~+ z. Q! A. r) Z% L3 N  m
15.4.2 在IDA Pro 中添加代码的交叉引用313: y( b6 Z! G& _4 o* R" o. K
15.4.3 滥用返回指针313/ ^! w, {3 \$ o5 s
15.4.4 滥用结构化异常处理315
0 W" B. S$ E1 H3 q! D8 U15.5 挫败栈帧分析317# x( A1 h. s3 v1 Y
15.6 小结320
3 l" k" l) ^9 g/ {$ Y15.7 实验320( r1 e/ V- H; e4 q. L

1 Z2 e6 Y2 ^0 B+ n3 ]第16章 反调试技术322" ^4 D0 }5 @- `) V3 j
8 p3 \# I. Q7 b: U- c0 }& s
16.1 探测Windows 调试器3225 ~/ v% o5 }" U: v/ S/ ]; }! E" G# O+ ^
16.1.1 使用Windows API322
5 x% v+ {  h2 x6 ~4 V& k16.1.2 手动检测数据结构324
- H3 _( O- j3 J8 D5 B2 T+ X16.1.3 系统痕迹检测3268 ^' ]) Y% `1 m9 D1 C0 s: j
16.2 识别调试器的行为3277 Q4 p& S( b4 I( A7 L
16.2.1 INT 扫描327
4 K( i& \+ `, t% Q+ a. r+ [/ X% U16.2.2 执行代码校验和检查3289 X4 o+ B3 _5 s
16.2.3 时钟检测328
, |) `/ p9 k1 Z: w/ V/ l& F16.3 干扰调试器的功能330
+ s* E' T2 k8 g4 @- g16.3.1 使用TLS回调3303 O: r7 k5 v# w0 X9 p5 r. V
16.3.2 使用异常332
4 t5 ?0 X/ c# S  a+ {$ E4 x% Y16.3.3 插入中断333! i1 E5 `& D/ S( x
16.4 调试器漏洞334
! T, u3 T$ i9 t16.4.1 PE 头漏洞334
4 ]5 j" G) S7 W, t" m) p3 z16.4.2 OutputDebugString漏洞336
& i; Z: R6 m, |: I# T7 _* l$ J( v! _16.5 小结3361 X% L# \; L: B
16.6 实验336
9 j, o6 X6 X3 A/ `0 J6 H! z% i: j: p% E  c0 U- s* q
第17章 反虚拟机技术 338
5 A& c: L3 z6 K* X$ U9 C! P, F9 x4 w; E3 |
17.1 VMware 痕迹338
2 ?) y  b  q! i17.1.1 绕过VMware 痕迹的探测340( _3 p, n* y, O. t# {7 N, t- V' A# D
17.1.2 探测内存痕迹342
" V- V5 m: ?' t6 p' i$ ^17.2 查找漏洞指令342; Z0 Q$ H) v  k# b: Z5 u
17.2.1 使用Red Pill 反虚拟机技术343
( i! |4 _6 U3 j* O$ c: e# g6 Z17.2.2 使用No Pill 技术344
& [& i6 ~$ ~- G- a* G17.2.3 查询I/O 通信端口344
0 X6 N6 G, A2 _! S$ ]8 q- g1 f) b7 a17.2.4 使用str 指令345
. D0 u" v3 ?/ ~17.2.5 反虚拟机的x86 指令3466 {5 X! q. {* F
17.2.6 在IDA Pro 中高亮显示反虚拟机代码3471 b$ a" t4 N4 b: q9 M% @  p
17.2.7 使用ScoopyNG347
5 h1 X6 Y4 a( A# U8 y  G17.3 调整设置3487 n9 J  q# f: \" B6 M% H9 ~! S+ _
17.4 虚拟机逃逸349
$ X8 f4 L0 Z& H17.5 小结3495 S0 j% n0 o8 x( N( }
17.6 实验349& ~+ k0 |6 Q0 s& v

! t0 G8 c+ D, _1 ^) I& E5 ?第18章 加壳与脱壳 352) `3 a( C* [3 [, I
$ g. z2 D  F+ }! B" o; W
18.1 剖析加壳352( ?( S1 V5 d# B( d7 V4 t
18.1.1 脱壳存根3533 h  Y8 w$ _2 k3 \
18.1.2 加载可执行文件353
* m5 d( E% l; s; {+ D* i18.1.3 解析导入函数表353( @' p# E6 c2 S  j, r; `
18.1.4 尾部跳转354; f, t4 p1 U( H* |1 e' Y7 i
18.1.5 图示脱壳过程354
) g% G3 V! \4 g% i18.2 识别加壳程序355" Y; w+ K8 @, z4 Y3 \9 ]( s
18.2.1 加壳程序的标识355
7 k+ `4 i& t' i5 X  Z3 K18.2.2 熵计算3567 e% o, n5 |1 [- \( p- ?7 p* Z
18.3 脱壳选项356
2 X; n, V  x& P7 h  @18.4 自动脱壳3567 u+ y. \. x# b# X$ N& s0 ]! Q" r
18.5 手动脱壳357
8 z' }; y8 ~' r+ O. j; @18.5.1 使用导入重构器重构导入表358
  N: h  Y3 {2 ]+ s1 t1 j8 ^18.5.2 查找OEP359
! b% }3 C4 t2 E4 v18.5.3 手动修复导入表3639 W" A- A4 |" t3 z$ G; w
18.6 常见壳的技巧与窍门364
. U& d4 s" O& L) V1 H+ f18.6.1 UPX 364; j& g9 {- \3 F+ h, s! Z
18.6.2 PECompact 365
( H5 u4 m" U) a8 [4 \18.6.3 ASPack365
5 S4 `' \3 \$ i8 ^18.6.4 Petite 365
) d2 D7 F8 Z# M! }* r& G18.6.5 WinUpack 366
! f$ y+ T7 Q# Z1 C, @* c6 U/ u% H18.6.6 Themida367
# `, L0 Z% y+ }6 d9 W8 v( p18.7 不完全脱壳情况下的分析368
9 }* n% R- f2 o& ~' b18.8 加壳DLL 368
& A* y0 K9 D! ~2 ~9 I# a18.9 小结369
2 a) o; i7 U/ E8 L3 z18.10 实验369
$ [- P; g% ^# q5 c  E+ c1 d' h7 J2 h$ \
1 b. b( _8 \- K* b; f: e) v
第 6 篇 高级专题5 f9 U& ]0 y" y+ I! K

  z3 L3 B3 r. v1 ~* P第19章 shellcode 分析 372
( X2 p, s: J0 Q
& n. v5 k" [7 G2 x19.1 加载shellcode 进行分析372
0 U- A) V% {0 r6 g3 V- w19.2 位置无关代码373
# s" m0 e! @4 M+ d) g3 F19.3 识别执行位置3733 `# U: B6 ~# C5 [/ n# z- c
19.3.1 使用call/pop 指令3742 V3 b! x' X: \2 w( v
19.3.2 使用fnstenv 指令376
- z" a  M; M2 c$ I' ?3 ]19.4 手动符号解析377& p/ A, r, d. P" q7 T) F. X- W2 i, Y
19.4.1 在内存中找到kernel32.dll378
0 p0 p1 R' i* O  p+ F1 l: k0 Z19.4.2 解析PE 文件导出数据380& A! E' f' h& i+ U6 V
19.4.3 使用散列过的导出符号名382
! B3 J1 ~8 L; k; p( I2 S+ j19.5 一个完整的Hello World 例子3836 Z8 s! x5 l6 ?, k' _/ V
19.6 shellcode 编码385
* ~- c# r1 X/ Q- J0 q: V  Z( X. a$ e19.7 空指令雪橇387
6 l6 f  F+ \& O4 W- M! `# h. F19.8 找到shellcode387
' |2 E1 P# C  K. j# I19.9 小结388+ v+ E& \7 T  `. r( p7 }; u
19.10 实验389
* |; A: Y  u7 E' w; W& Y2 [6 E, T7 O: g, X
第20章 C++代码分析 391
, a# w; o) w. l7 p- `3 c: u0 v- Q* G6 ^
20.1 面向对象的编程语言391
  `% P7 S' _- a4 t: t" l4 B* u$ o20.1.1 this 指针3923 m5 J7 i4 l8 Q# |% e
20.1.2 重载与修饰394
6 r2 c2 F% R+ w, i7 E) t20.1.3 继承(Inheritance)和函数重写(Overriding)395/ f8 O: Y6 ~! p- g" f
20.2 虚函数和非虚函数396
: v0 A" o  \# z! d7 k0 K& s20.2.1 虚函数表的使用398. N; Z0 w  g6 C: V
20.2.2 识别虚函数表399
/ y" \6 ~: \) P; I. b# i" S6 h20.3 创建和销毁对象400' t/ E2 B9 c8 S
20.4 小结401& ^# F1 I2 u5 N9 I6 o9 l! c4 r/ {, m
20.5 实验401
! G3 R* f' Z* l4 z9 L
6 V% ~5 B7 D- G) |  o# z! I" V% A第21章 64 位恶意代码 403  L% g9 J4 B2 L& I' S0 J' \. O; I
! U7 G9 P/ s4 ^
21.1 为什么需要64 位恶意代码4036 l" \% f4 m2 E5 c
21.2 x64 架构上的差别404
; \! L( V9 {( B7 s- `- b21.2.1 x64 调用约定和栈使用上的差别406% j" O, l* ^# |1 d: }4 U' m9 J
21.2.2 64 位异常处理408. V* |0 ^" Q8 {9 q8 W, T; G
21.3 在Windows 64 位上的Windows 32 位408* O) E$ k' W' `3 S
21.4 恶意代码功能上的64位提示409$ b4 Z9 z) h+ V4 s& V9 o  A( G
21.5 小结410) c* K. b  h8 }1 {2 E
21.6 实验410
, r* }" r# h# I3 \# B  s
- L2 b; T% u" N- G3 R# V) Q( L# \附录A 常见Windows 函数列表 412# Z( ?5 R3 V4 H, Z

8 A5 s9 b8 N% @2 R- b. v5 }/ K7 |6 t附录B 流行的恶意代码分析工具列表424
) M. c6 R7 b! U$ i7 w" w+ R
/ V( C8 w; k. }+ X附录C 实验作业参考解答4357 n* y7 ?  `5 y$ v3 ^  c8 f# v

. y; D8 Y" K0 |: w4 I. n附录D 致青春,基础软件开发的中国故事 6917 X) L: j4 T8 h  ^  S7 E" o
/ |. h& n* l, a1 |
附录E Syser 操作入门 695+ V0 w3 B0 q; I
9 @" k4 m% z9 {
: A/ M' M7 t) S/ b' F
想知道小甲鱼最近在做啥?请访问 -> 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% a, n3 W' H8 _' S
什么编程语音写的?

) u( B1 C( F1 ], E什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 15:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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