鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
, k) }8 j# h( A. V  b

# W. t  `, L( J  G7 Z: L& P书名:《恶意代码分析实战》) H# h8 y1 l- v) L+ m
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig). V1 K  U7 V9 c
译者:诸葛建伟,姜辉,张光凯
+ u7 y' C3 {7 k" n' _  C出版社:电子工业出版社
# x* b+ ]/ }, ~" t出版年:2014年4月1日(第1版)
7 q( H" |) |3 r: H/ W3 N! w定价:128.00元
4 D7 G$ D! b3 ^6 Y. x) f装帧:平装
6 G) ?5 D- [) a2 c6 N; r4 ^9 KISBN:9787121224683: W5 c- l2 i5 O; R7 _/ w; |  G1 S

" h- {: x& a3 f; D. g8 P" j购买链接:/ V) y# ~+ e# }0 ^2 x
4 E& c( T+ S) s/ z9 w% O- F+ L2 @


6 E" e6 p$ p6 t3 x亚马逊 -> 传送门+ |* C: Q( b# s8 _3 T8 h3 Q2 [

; o& ]) T- v- Y. `当当网 -> 传送门- a: I: w& _& j+ D2 G3 D
1 e, D& D2 x  |
京东 -> 传送门2 v6 r, S( V7 |

2 q/ g: q6 `* J+ ^天猫 -> 传送门
' {% q2 p3 J& n2 w: x3 H
  v& z$ c& f6 J4 Y* ?" j% s- A
6 T" U: ?0 Q1 l3 t: b7 U3 X3 |内容简介:: e9 K$ V1 H7 Y1 I

/ y; Z5 Z0 D/ I! Y( Y

" U6 M5 B& q( ~5 T; U9 J《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。( x0 ]; b; C1 [$ Q

7 l' c- H# z- n2 f+ V/ X" n; w/ N, h《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。2 A0 b5 N- P  o/ x
+ R( A" S9 E* V" X8 @7 z
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
+ O) _9 f: H2 \针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
8 d8 S1 N; ~5 v( M( I0 L0 w% l0 b% I. S: R7 S8 w; ~
目录:
, s# T. W4 r& c: G5 S* G' L5 y  ~


) }" W% T+ y. ]5 o3 e第0章 恶意代码分析技术入门1' j6 m( N3 u6 y" f- f0 A
" S# H/ E- x3 q2 X
0.1 恶意代码分析目标1, j" @" B1 ~% k2 N/ m
0.2 恶意代码分析技术2- W9 D! z8 r* v5 M% K$ F& ^: ?) j
0.2.1 静态分析基础技术20 A% R4 ^1 O. X) X* }- C
0.2.2 动态分析基础技术2
" o7 j5 K9 z  o% {5 N0.2.3 静态分析高级技术2
: j, z; C" b8 N. ~& f- {( F0.2.4 动态分析高级技术27 a- S1 j$ L, z' U4 U
0.3 恶意代码类型3
) R5 D4 q' J, S0.4 恶意代码分析通用规则4
$ d# S' ]0 ]+ T# T$ ?5 E
4 e- F& H' O! Y0 a6 [, [# O4 Q5 |( M+ L5 Z
第 1 篇 静态分析
4 x5 D; }  _+ O$ r) ?, L& w+ G4 I3 ~  [+ _- R1 t& h5 w
第1章 静态分析基础技术 6; D" ]6 f6 w3 y6 o8 j

- Q6 f2 c/ e5 r) R  ^+ q% N; W) e8 w1.1 反病毒引擎扫描:实用的第一步6
2 I, I( f$ k' P: q1.2 哈希值:恶意代码的指纹7
( h9 H, D. f  i5 `1.3 查找字符串70 [6 B0 c/ I, t" o' j* \0 M; ?
1.4 加壳与混淆恶意代码9$ R, y0 ?6 N( G, w$ t
1.4.1 文件加壳10
  y3 J0 {2 q: `6 X* ^4 o/ X1.4.2 使用PEiD 检测加壳10
: m: M- }0 g1 f+ y5 {1.5 PE 文件格式11
' X' y: X& n4 [1.6 链接库与函数12) ~6 G4 O- p  H; P5 T
1.6.1 静态链接、运行时链接与动态链接124 c1 X6 p8 H# U
1.6.2 使用Dependency Walker 工具探索动态链接函数13) s# ^3 v7 p4 |) {- z: |
1.6.3 导入函数14
: Q3 A% G- N6 Y4 v/ T/ V1.6.4 导出函数15
4 Y$ \. F# p$ T# b, A1.7 静态分析技术实践15
' [% S' _  }. ^6 [# q: r. H1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
& q# \4 z4 |, p6 Q" ~: Q, Z1.7.2 PackedProgram.exe:穷途末路18
& ~' G) J3 q# P) y8 _6 R; B4 {1.8 PE 文件头与分节18
' v, @! |7 t4 j. ?! H1.8.1 使用PEview 来分析PE 文件19
' n5 m# U# a6 m# T7 f1 s7 C1.8.2 使用Resource Hacker 工具来查看资源节22
: }+ ?' D" P# I9 j& m1 J# ?1.8.3 使用其他的PE 文件工具23' k) u6 c# {7 y) O( k3 ~2 S6 R- J6 x, k
1.8.4 PE 文件头概述23
6 {: C: A5 H2 w2 ^) U, w: X1.9 小结24# G# d. E  k2 F1 k+ [5 a9 |
1.10 实验24; ]; D  w* t5 L8 }( E. l

1 @. ]6 S, c+ Y. X第2章 在虚拟机中分析恶意代码 27: K- [0 d7 L1 ^& X1 x' h

8 Y* @) T7 z' n2.1 虚拟机的结构27; f; L* S; Y/ {" H! F! ^
2.2 创建恶意代码分析机28: {% f# B5 u* \" r
2.2.1 配置VMware29
8 Z# I$ x3 h- i3 X- [2.2.2 断开网络30
. T8 G7 H* W8 \$ \+ [  ]2.2.3 创建主机模式网络303 e' f# {! x# h3 T, g* v
2.2.4 使用多个虚拟机30
9 A0 q6 m& U* |8 e0 g& C2.3 使用恶意代码分析机31) {  Y' z* B2 W8 }% Q! I7 r) |
2.3.1 让恶意代码连接互联网31
6 f: P* H( P* b' g2.3.2 连接和断开外围设备32
% A4 T5 b0 B) i  f- F2.3.3 拍摄快照32. l1 Y+ C" |% V% d
2.3.4 从虚拟机传输文件33& u2 B  F2 y# {2 K! [( V" _
2.4 使用VMware 进行恶意代码分析的风险34; b3 D" Q- e, w/ n- ]. H( \
2.5 记录/重放:重复计算机运行轨迹344 t* P" ]! z/ u' ~" K/ r2 `" f% A' G. }
2.6 小结35
% x6 a2 f5 x* y7 F4 T3 r/ `
2 p; V8 M1 C3 x+ o# ~- H; d第3章 动态分析基础技术 36

0 o" y6 t( b, C* t' `3 z" ~
( t: ?7 D) h2 U# p3.1 沙箱:简便但粗糙的方法36# O; |: {% o+ l, K. L+ [$ `% `
3.1.1 使用恶意代码沙箱36
: M; ^. _1 w2 \' S' q8 G  t5 w3.1.2 沙箱的缺点37
3 i' x( T( N) _" c% p3.2 运行恶意代码38
# ^1 O" T- p4 N5 F4 {( i3.3 进程监视器39
5 ?* Z5 A" ~/ k" P5 l; U3.3.1 进程监视器的显示409 \2 R0 F0 {: B' h; s" k
3.3.2 进程监视器中的过滤41
& s# ]0 ]# j) j3.4 使用进程浏览器(Process Explorer)来查看进程43
- U3 s  O% O- \& R3 e7 O3.4.1 进程浏览器的显示43/ |' y& K! y; i6 V0 e) Y
3.4.2 使用验证选项444 R3 }+ p% w' X1 ^4 t' M2 T
3.4.3 比较字符串45
4 m9 y- e" x" B" `3.4.4 使用依赖遍历器(Dependency Walker)45$ g" O3 j4 I4 H; M: b! e
3.4.5 分析恶意文档468 v# A& m5 K- W4 F% c, T% g6 l: @
3.5 使用Regshot 来比较注册表快照46
# b9 O; d! V; I" v8 ]4 o6 i3.6 模拟网络47
: l" x7 d8 N4 d# o5 K+ o& _% Z7 S3.6.1 使用ApateDNS47
* U3 y/ t. z4 A# G; w3.6.2 使用Netcat 进行监视48' m" B- F0 V) L. n! w
3.7 使用Wireshark 进行数据包监听499 T8 Y" u% A2 h# Y
3.8 使用INetSim51  v. T. O) c+ T* L5 `! H# B0 J) F; ~
3.9 基础动态分析工具实践529 c1 p. H5 a" s0 d  Y5 x6 P
3.10 小结55  h7 h' v0 V/ O6 M0 U! z4 _2 o
3.11 实验56
& Q* V( X+ \6 ^0 G7 f+ h+ A/ O/ m8 C, V% N+ |( w, O
* r6 \% v/ ^& W4 z
第 2 篇 静态分析高级技术篇4 J; H, I# g, _6 q' C, i

# C' z5 @3 |! W" {8 o第4章 x86 反汇编速成班 60
( s; D) h/ ]9 x6 n& Y$ O' l) H2 c* l% G# L0 }. S; K1 t2 ^
4.1 抽象层次60
4 i! @% S4 {4 O% N) w4.2 逆向工程62
2 e/ t9 G& c; q) G4.3 x86 体系结构62
) `4 z6 j" F6 F7 t& i4.3.1 内存63* ], z0 r" m, ]' q: d
4.3.2 指令64/ s4 E* \8 Z5 x( T" W
4.3.3 操作码和字节序643 Q; q, _! v' @% r
4.3.4 操作数65
% t9 B+ t" Y$ l4.3.5 寄存器65* A$ U) U5 ]' s
4.3.6 简单指令67# U0 s' }+ L9 Y4 U
4.3.7 栈70( _" ~# }% w' a( k& h
4.3.8 条件指令73
3 y4 B$ G1 s, _. A+ J" v4.3.9 分支指令73+ Q" E5 w$ B, Q3 O
4.3.10 重复指令74" |( S( \: E1 Y
4.3.11 C 语言主函数和偏移76
! u, D3 k4 O# e' A4 I" T4.3.12 更多信息:Intel x86 Architecture Manual77
7 }; n- U4 D& Y- h" B4.4 小结784 _: u, ~1 I" D

1 K# Y, H" N% d, L, ^) d第5章 IDA Pro 797 R! O6 X- Z/ k: u6 K3 F/ {3 T

. a% p  A8 W0 Z: q& A! |( o5.1 加载一个可执行文件79
" \2 ?8 W' e; l0 U% s4 `5.2 IDA Pro 接口81* E0 c" @) g8 T) {- @6 D4 v
5.2.1 反汇编窗口模式81
  L- k' ]/ t1 K0 _3 d5.2.2 对分析有用的窗口83
6 U* ^' z7 T/ ]5 y5.2.3 返回到默认视图83
. A! Y' Z! J+ a8 F  |/ n7 {+ }3 w5.2.4 导航IDA Pro 83- i5 q, f( w2 |7 |7 v* H6 _" ~+ u
5.2.5 搜索854 Y6 y! d2 ]" q
5.3 使用交叉引用86% J* s) _) B# G$ j* Q. S
5.3.1 代码交叉引用873 q; ~; F7 f! j" U" o% Y3 O+ Z- S
5.3.2 数据交叉引用88
- l6 p/ l9 g$ I; d5 Z6 \( H; }) N5.4 分析函数88
9 g: Y9 K. d/ b, ~. G0 @2 E5.5 使用图形选项89
6 y( o6 }3 N" b' D9 I6 G/ d) ^5.6 增强反汇编91/ z1 T1 w2 [: m5 M+ _
5.6.1 重命名位置91
9 j+ {3 ^  H# K4 _3 v- H. y! q2 E/ k5.6.2 注释92
# ]: z" N# Q% w5 I) Z( S' y( c5.6.3 格式化操作数92
- k* D- s+ s5 W8 R+ o5.6.4 使用命名的常量93
0 E& @$ D3 v* P: ?, N5 S5.6.5 重新定义代码和数据94
1 a: i: Q7 g" c" t6 t1 G: c; e5.7 用插件扩展IDA95
! i+ W2 g+ ~4 ~, G& `5.7.1 使用IDC 脚本96
7 z+ O7 `' h! z8 n9 s- E5 l5.7.2 使用IDAPython974 |) G5 M1 D5 L% ~: H+ \& j
5.7.3 使用商业插件97
: J/ Q$ V1 L  a" |# }! @* r; L: X5.8 小结98
+ x% n1 P2 ]3 d, P5.9 实验98% D; |  A+ D) S4 P, x% L8 W

  W2 P' M. q! w" f第6章 识别汇编中的C代码结构 100
- ?9 ?3 S3 f5 G2 V0 u, e, ~

0 w% m  T( e2 \  R3 H8 A6.1 全局与局部变量101
% i2 `, s# [# U' |1 P: i6.2 反汇编算术操作102
/ C5 r: x% P" l6.3 识别if 语句104. z3 j; w2 i' b6 @/ U/ {9 D
6.3.1 用IDA Pro 图形化分析函数105
* @) K$ h3 D5 ~- n7 W6.3.2 识别嵌套的if 语句106
+ q8 D  E6 A2 y" E( r6.4 识别循环107
6 b5 P4 y. I) K) ~/ @6.4.1 找到for 循环107: r% H& E5 w0 o' x; i; o
6.4.2 找到while 循环109& `9 w( G  \& m% k  u. h2 t
6.5 理解函数调用约定110
; \0 O6 d5 T# J+ Q# n3 H6.5.1 cdecl110: z- E1 k1 I! ^  `4 Y0 A
6.5.2 stdcall 111
4 D* \: A* u- u% u+ w6.5.3 fastcall 111$ E/ X7 I! r% j+ g# W+ x$ @1 s! T7 y+ k
6.5.4 压栈与移动 111) }8 L1 `' O- M' k& B0 [" I
6.6 分析switch 语句112! \) N6 t; b9 f8 @+ K3 p
6.6.1 If 样式112
# f- r$ v. l" t& H6.6.2 跳转表114
' i0 g8 @  ]  o) o. e% b6.7 反汇编数组118( @& j( P$ w3 b1 A  _) w; H1 I6 B
6.8 识别结构体119
) c  C9 G# [7 L6.9 分析链表遍历1213 ]/ m. o9 I7 R7 \9 k
6.10 小结123% ]: T5 g" N! s7 k9 K
6.11 实验1238 ~7 n2 J0 J+ Q  m1 w

8 f* }+ s- V( k% V! M- w$ [+ n第7章 分析恶意Windows程序 126
2 t+ E& _& w$ X. s, q. t; C! ~
& ]2 ^6 s3 u+ J' u, g
7.1 Windows API126" ]5 u5 p; T- S9 l: x
7.1.1 类型和匈牙利表达法126
4 z! v1 Q0 V- I* M2 ^8 I& a7.1.2 句柄127
& _* Y- q' W7 j7.1.3 文件系统函数1272 T$ q; V  Z4 _4 B4 k3 O1 c2 ?) U2 ^+ f
7.1.4 特殊文件128
' k( e+ a$ L7 n  r( ?! \7.2 Windows 注册表129
: F9 I6 x# R# J1 e1 P7.2.1 注册表根键130; ^6 x6 p" T+ q/ z+ M% H' e: r
7.2.2 Regedit131
: ~" [( I9 b" s/ @5 j7.2.3 自启动程序131
2 ^4 H, i  H; |, p, `5 W9 g. D7.2.4 常用注册表函数131
7 Y) a- l/ K- Q* l- A; {7.2.5 练习分析注册表操作代码132* a4 R. ]2 J( X0 p; o6 k" @
7.2.6 使用.reg 文件的注册表脚本133, U' G! Q( d! ]& l
7.3 网络API1337 ]# V! ], h1 x$ k6 V. ?; h1 O9 [
7.3.1 伯克利兼容套接字134
6 ]: ]; l. Q) l- r& ]( E: `* o7.3.2 网络的服务器和客户端134" w/ v) O' R5 k' }( N5 o2 X
7.3.3 WinINet API 1352 D0 N  b. A' s2 {5 Z* ^
7.4 跟踪恶意代码的运行136$ r6 h/ r6 q/ a$ d7 y/ E  `
7.4.1 DLL136
) V* a7 P' X  W( G! L7.4.2 进程137
0 `% V5 |6 A9 V* c; h2 o7 L% T) b7.4.3 线程139( [# t& e8 {; M$ ~" K& L
7.4.4 使用互斥量的进程间协作142
' ~/ h! {) I& P8 M4 k# z7.4.5 服务143
, G6 z+ R2 t5 m* a& l, k. d7.4.6 组件对象模型145
, |0 W! I2 |3 @& ]$ w1 P& m2 ^% f7.4.7 异常:当事情出错时147
, D0 G6 |& _& O& S# B# K# K7.5 内核与用户模式148
% _$ H0 X. v. P1 }: M  |7.6 原生API149
$ ?3 Z- m6 l+ m7.7 小结151* r( K9 A, ~$ C& j4 a! k
7.8 实验1519 O2 u; l& R  i4 @

+ r3 x& K; k" _/ h! c2 ~, A, j0 W' V. e; t/ ?: B
第 3 篇 动态分析高级技术篇
. K( h' E8 Q, m2 L' o
' Y' S2 E& X2 k; ~# s: T+ W# i第8章 动态调试 154

* A! v" H! ^1 h8 ~) f- ?1 ~# o  m, @' T& {
8.1 源代码级与汇编级的调试器154
0 e3 D; m- u  V/ ~/ h8.2 内核模式与用户模式调试155( x7 R. ?$ S* k& {2 x
8.3 使用调试器155" M9 J+ e5 C: [2 m
8.3.1 单步调试155
6 M/ W2 p0 F( v7 {8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
  G# J! X( b1 I" N7 }. f8.3.3 用断点暂停执行157: b/ o5 g4 w9 E1 [
8.4 异常161
; X. M8 A  m$ z8 J8.4.1 首次和二次异常处理1620 I  m3 ?6 d+ m$ B
8.4.2 常见异常162
2 \2 p( f& s" s+ u% e# A) j# ^8.5 使用调试器修改可执行文件163. W& g% }9 W) K3 f+ K% K
8.6 修改可执行程序的实践163
2 N+ E( r5 H" J7 S$ }; j6 {  a8.7 小结164
  g- E2 s' f& A$ G1 Q$ M
( G2 u. F; [( i" o9 {0 M第9 章 OllyDbg 165
3 R% J; m. A7 n9 W# O- @
6 `' s3 @+ [0 Z8 u
9.1 加载恶意代码1655 v; f$ y8 H& G1 }4 G7 }7 e% z
9.1.1 打开一个可执行文件165
) ?8 V* u) x3 L) t6 d$ X6 I9.1.2 附加调试器到一个运行程序166
* h0 q  e; y+ M6 g8 C+ G9.2 OllyDbg 的接口1675 C6 H% h3 R, p4 j" f' C8 t8 O& u
9.3 内存映射168
! d" k0 A0 `0 H5 Q9.3.1 基地址重定位169
/ Q3 b" i) z. }9.4 查看线程和堆栈170' Y( W& ~  V9 c9 S4 I
9.5 执行代码1719 x4 {. {. w# G( j$ `
9.6 断点172
2 r/ f% i; g: E$ D# q1 _( H  [9.6.1 软件断点173
# R- _* ~9 |* Z6 e9.6.2 条件断点1746 K! `9 R9 Q; z5 c) y! ~
9.6.3 硬件断点175* z- K* B& O& D3 Z) \8 f7 L7 |
9.6.4 内存断点1757 i  h8 A# n( o* ?; Z: X# J! I
9.7 加载DLL176
* _' y: t6 ?* l  U: n6 i& e: Z9.8 跟踪177
, z* K' t# j! @# m& j/ b9.8.1 标准回溯跟踪1778 `; Z) |5 H4 S
9.8.2 堆栈调用跟踪178
; f) q: [1 o- b8 C9.8.3 运行跟踪1785 ~3 f1 l  Z8 P0 @/ _
9.8.4 跟踪Poison Ivy1787 l& z4 k( C, i6 k' d, d: U  a
9.9 异常处理179
: @% O( {8 O- V' m  j9.10 修补180
# i3 ~  C+ X, [+ V; r! ~6 X9.11 分析shellcode181
) C0 R8 h5 {" b, W. N5 l* T9.12 协助功能182' ~; l! }+ z. x, R* b3 [0 Z2 H
9.13 插件182' [. s8 w) a& ^. ~, }$ _& l4 J: j
9.13.1 OllyDump183
6 {' e" w' D# a$ ^+ z, W( H9.13.2 调试器隐藏插件1831 o2 ~# E7 C1 V, J5 p
9.13.3 命令行184
* o! L, I; V7 L5 G  ]9.13.4 书签185
1 a0 v' E; v* }, D: g6 v9.14 脚本调试185
; G) t8 N' U" f! ~. A! @9.15 小结186
3 C$ U$ N0 L# p# G$ N- @9.16 实验187
  V! J) X, }) E) j# w' H4 C; S# W% I
第10章 使用WinDbg 调试内核 1899 v, w, X  o( R. ?6 Y! T8 g
, H! R' E1 P$ h& w/ N4 j
10.1 驱动与内核代码189
8 T' i% X; _7 c* ~( L0 W10.2 安装内核调试191
6 o) U4 q8 c- w! d+ A  H) K" s10.3 使用WinDbg1933 h8 R5 L2 t) e7 R3 o" A. U' D
10.3.1 从内存中读取194
, s9 E& Y6 f) \: [: F' T& j# k10.3.2 使用算术操作符194
. V6 E" ^; y7 r8 d10.3.3 设置断点194
1 I& D0 ?* c5 S10.3.4 列举模块1952 l3 O$ C2 c& F) N
10.4 微软符号表195
" v7 U( z3 f: O* k10.4.1 搜索符号195
$ ~( K# _4 o+ u* g' v1 {10.4.2 查看结构信息196: B: N+ q& U4 ^, `% |6 W
10.4.3 配置Windows 符号表198- g! c7 f& q0 u1 s/ u
10.5 内核调试实践198
  f; o7 J' X0 w2 u10.5.1 用户空间的代码198
. u# ?& v, {" M9 s9 W! Y10.5.2 内核模式的代码2002 m& g7 z6 j9 [1 o( H
10.5.3 查找驱动对象203! T6 \9 E3 w( H
10.6 Rootkit204% B4 b! u" j8 r4 Z  ~; ~' @
10.6.1 Rootkit 分析实践205
% y! `4 R$ q$ R4 ?8 @0 b, P10.6.2 中断208
1 m# U! [2 h& k) l  Z10.7 加载驱动209
. l1 \* `9 t6 E0 k. {+ p3 q% X  T10.8 Windows Vista、Windows 7 和x64 版本的内核问题2091 G! k8 s7 r  s: {7 e
10.9 小结210
  p. [6 h7 }( o0 v/ y$ P. F10.10 实验210
6 `# D! `4 H4 y: H6 S0 Q+ N+ [
( C5 K2 E6 N8 s2 G4 }( r" A( X
" h# K+ i/ H0 D; h" v" J第 4 篇 恶意代码功能篇
3 G6 x5 E% e0 H7 A' b/ x0 O
4 c: H4 U- x5 ^  I; g: f第11章 恶意代码行为 214
% K# Y8 t9 M: j& b2 }
, E3 H4 ~- G0 g11.1 下载器和启动器214
9 d& ^% ~! W5 L; Y, F; Q11.2 后门(backdoor)214* \2 p1 S6 w( U) i; S2 L
11.2.1 反向shell2154 K9 O! g6 r1 [8 _* X$ Z
11.2.2 远程控制工具216
5 I1 M4 J* I' u; ?+ a/ `11.2.3 僵尸网络216
; u2 E% y6 N; Y+ D7 \% I3 t" Y4 a$ }11.2.4 远程控制工具与僵尸网络的比较217
3 [; N4 |- z) g. Z" E  V7 `3 k11.3 登录凭证窃密器217
* T1 ~9 F0 ~' f11.3.1 GINA 拦截217
, s5 a9 d6 a+ A: C5 s: p11.3.2 口令哈希转储218
2 l8 ^  V+ ~. D. c11.3.3 击键记录2214 Q; {# ]3 w/ \! h. k  E
11.4 存活机制2230 A/ t- V2 O$ T8 R8 D" J( x
11.4.1 Windows 注册表223
* |  O% S7 B' T! l3 i: }5 i11.4.2 特洛伊木马化(Trojanized)系统二进制文件225* h5 W- g+ \8 m
11.4.3 DLL 加载顺序劫持2276 e+ Z. T* S8 W& O
11.5 提权228
$ [8 R# z$ x9 @! D. Y11.5.1 使用SeDebugPrivilege228
% m1 U+ G) I9 V7 H, ^11.6 隐藏它的踪迹——用户态的Rootkit2299 h7 z% \4 r% c2 n
11.6.1 IAT Hook 230- a, R% k' s/ V' S) C7 I
11.6.2 Inline Hook 2317 X6 N$ D( i7 W' E# H
11.7 小结232
) n8 T. y) }4 x0 e8 i* `6 t11.8 实验232% w7 y6 n4 T( R8 d6 F# f8 W0 L
6 t5 U$ O- ^  s$ E1 X
第12章 隐蔽的恶意代码启动 2349 D8 f) k3 R% a( I
7 E. X- E! l4 {9 m
12.1 启动器(Launcher)234
/ }7 r; y; n1 y6 @2 J( g1 k12.2 进程注入234' Q, Q4 i; m6 w1 ?& r
12.2.1 DLL 注入2358 H2 x& T6 q  M# b5 `% ~
12.2.2 直接注入2374 N3 F6 t- d7 o3 Y! `6 q  s& |
12.3 进程替换238
  o0 w- i8 C, B% h12.4 钩子(Hook)注入240
5 n, ~! c$ r; S5 A* {# _9 H9 z7 ~12.4.1 本地和远程钩子(Hook)240
5 w# a9 M3 C/ w$ w: L8 h12.4.2 使用钩子的击键记录器241
% j% [' y7 t: w* [3 j' N12.4.3 使用SetWindowsHookEx 241
+ P8 Q! N" m  S+ s, t9 i12.4.4 目标线程241- C9 n' K  L" Z$ M( E5 ^
12.5 Detours 2428 ^/ m# i9 Z( h( o3 n3 u
12.6 APC 注入243. F4 P4 @2 L) T& s5 G# b
12.6.1 用户模式下APC 注入244
- H. p& M6 a( b- w; I8 G9 ^: ~$ H12.6.2 内核模式的APC 注入2455 E. t/ `1 P0 X6 [
12.7 小结246) j6 e2 H3 w: U; p  g- x1 ~/ l! @
12.8 实验246; {0 D. c% Z( V3 R) l# w
3 v/ j) H3 f+ o! z' @1 [: J; k  `
第13章 数据加密 248: H1 k/ u2 r8 I
! d6 ^! Z3 A9 a1 y  G3 H9 E
13.1 分析加密算法的目的248
2 h+ z" K8 A% A- j* x; j% z13.2 简单的加密算法248' p+ m/ [+ h+ c, x. v! ?
13.2.1 凯撒密码249
/ X. V( \/ A3 K% g/ t; S' ~13.2.2 XOR2490 T3 Q, k& c0 [' L7 x; F0 Z
13.2.3 其他一些简单的加密策略254. c$ ~9 ^; k: O0 B
13.2.4 Base642559 b* b. G( C# s
13.3 常见的加密算法2580 I; z: ?3 \. V, y) \5 O/ g+ U: B
13.3.1 识别字符串和导入259
# n) z; _! Y4 k+ w0 Y$ d) u! N13.3.2 查找加密常量259
, J& }0 h& C( [) p13.3.3 查找高熵值内容261
: |. |! \. i9 j7 Q6 b/ G13.4 自定义加密2629 e% K& d  a& q8 D; M/ C
13.4.1 识别自定义加密263! V: J; K2 ~- d- n. c* c  F
13.4.2 攻击者使用自定义加密的优势265
  L) F3 |' s- `. C8 @/ ^# z13.5 解密265; B, n1 J( F" t1 P# d. w
13.5.1 自解密265
" {. u  p  {8 C- c13.5.2 手动执行解密函数266
& e. }/ {' U: v; a7 `7 G13.5.3 使用通用的解密规范267
9 s2 n* M! R5 R# I# O0 r' R3 N13.6 小结270
$ Z' d0 k: y; {: z$ Z7 d; D1 a13.7 实验271
8 Z( x+ U4 y; O. y# l
/ L6 Q! c0 }' Z, N) K第14章 恶意代码的网络特征2731 |6 K' ^- A; B+ L

# }0 C2 X% o' n5 C14.1 网络应对措施273
! F! p  _" [# x14.1.1 在原始环境中观察恶意代码273: M1 G# [4 Q. S
14.1.2 恶意行为的痕迹274
* F  Z) o( L8 K+ E# ]- m14.1.3 OPSEC=操作安全性275
: t5 R% B2 w! B/ B14.2 安全地调查在线攻击者275
1 r  o# d2 z9 e+ a# [+ p' w3 ~! R14.2.1 间接性策略275. q+ m# S* D( L4 r
14.2.2 获取IP 地址和域名信息2764 D! D) X6 Q& t, G$ p
14.3 基于内容的网络应对措施2788 M. \) ]! d' o: `2 k3 z" g3 Y% k
14.3.1 使用Snort 进行入侵检测278
: B; G7 N) D) {- Q+ N14.3.2 深入观察2790 d! p- |! J6 p4 ]4 d
14.4 结合动态和静态分析技术282: X# Y$ v' M+ `& E3 T
14.4.1 过度分析的危险2835 B" h; b; w4 F1 u6 [# \+ d% W
14.4.2 在众目睽睽下隐藏283" b1 q, y" S- k5 j7 o
14.4.3 理解周边代码286
! e3 \% f; i7 y* s5 Z5 F: D) k9 K14.4.4 寻找网络操作代码287
% k) x" P0 w' C0 c3 G9 b14.4.5 了解网络内容的来源288
4 O+ f# r/ ]  C14.4.6 硬编码数据 vs. 临时数据289
$ U1 N/ ]3 p8 U+ L: Y  b14.4.7 确定和利用编码步骤289& S- N. F% l& |: x
14.4.8 创建特征291+ z# o6 X- d9 `2 V
14.4.9 分析解析例程292
4 P& h1 i7 u( o7 ~14.4.10 针对多个元素294* H% |# l, p; B
14.5 了解攻击者的意图295
; ^  g% k  N. J3 Z7 K14.6 小结296
8 f  _/ C9 t, y1 [* |14.7 实验2960 c' X. R# d. f; t" W* d4 O0 L

: V  A7 L( i5 E) n, ~+ {' f5 s% r3 [/ I
第 5 篇 逆向工程% b& q/ v+ G8 W$ r6 n3 u

& C  ^0 Z9 R( z) _第15章 对抗反汇编 300
! s1 o1 t6 l$ C
  k, o+ [! q) S+ b5 V2 ^15.1 何谓对抗反汇编技术300
$ k8 Z, ~5 w3 J15.2 挫败反汇编算法3019 j& l& E: b1 u$ x- j1 ~
15.2.1 线性反汇编302
8 ~" _: H# `( y- I: C, ~, O5 x15.2.2 面向代码流的反汇编303
1 S; o# n2 X% t/ J9 M7 ?9 A15.3 对抗反汇编技术306" g7 g8 K  Z* T' V1 L7 Q
15.3.1 相同目标的跳转指令306
  N7 m4 n  }9 Z+ w. G" L2 z15.3.2 固定条件的跳转指令307/ A3 a1 d# a0 L' B
15.3.3 无效的反汇编指令308
/ U: U2 E$ _7 I$ Q) F: [: O15.3.4 用IDA Pro 对指令进行NOP替换311
- @5 j! D* b$ d! [1 _  W( W15.4 混淆控制流图312$ R, F9 [1 g* u+ ~$ l" |
15.4.1 函数指针问题312/ P4 g* e+ e# p3 \4 n: k
15.4.2 在IDA Pro 中添加代码的交叉引用313$ t3 ^6 [. X3 k; f2 M6 I0 B( P& \
15.4.3 滥用返回指针313
: K% ?$ s$ L7 Y7 I/ ?, ~15.4.4 滥用结构化异常处理315$ P9 Y2 A4 D+ i& z* S" {6 |: J
15.5 挫败栈帧分析317
3 B* U- c2 R0 ?- ^: D2 M: O: H6 |15.6 小结3203 x0 e5 T9 Z# ?$ ]
15.7 实验3206 i- T% z1 W4 k6 {+ Z9 \

+ o" w% O+ e, O/ G/ P( K# _第16章 反调试技术322/ h8 _. W" p8 i  h, c1 p

4 h8 T7 X9 X( F& T# Y  E+ C. @16.1 探测Windows 调试器322
8 Z+ y* S. F/ z3 m* Q! H16.1.1 使用Windows API322
1 Z; ~1 ?1 {: s. ^0 p16.1.2 手动检测数据结构324
$ U, M2 C& }( Z  S. w16.1.3 系统痕迹检测3264 U  c& {7 R9 L% H; }" e) R. v
16.2 识别调试器的行为327
8 D3 i* u" H# V5 m0 x! \2 V16.2.1 INT 扫描327
: Q) S3 r1 N  b# T/ c16.2.2 执行代码校验和检查328- D4 s; {+ U+ G( o+ v& a$ E& n4 G
16.2.3 时钟检测328; U, C! T% M8 ~  e: D0 `: I& e
16.3 干扰调试器的功能330' I8 b  D$ T1 c
16.3.1 使用TLS回调330
9 Y) d. n# c- i16.3.2 使用异常332
- b5 f/ }$ [+ y% r16.3.3 插入中断333
9 A7 C5 m6 ^  q/ c! Q16.4 调试器漏洞334% ?4 v# i, a; }- Z  N8 T$ \% _
16.4.1 PE 头漏洞334
0 `. Y, m7 g7 D" y, C16.4.2 OutputDebugString漏洞336, V* R. O0 i6 O3 I
16.5 小结336
. I3 _: `& }9 L6 m" O* K( o16.6 实验336% n2 \' Q/ ]+ b

) |1 c% k4 m% N% C0 q第17章 反虚拟机技术 338# p! O" x' z0 d
! K! x# A) g% G, I
17.1 VMware 痕迹338; x" @" Q2 R) D; K- T6 A8 o
17.1.1 绕过VMware 痕迹的探测340
+ j9 P3 c, f; V: R0 @17.1.2 探测内存痕迹342; s) _' ]  [0 I2 |  A
17.2 查找漏洞指令342
$ `  n# B0 @0 }& r- h; t5 `' N- p$ |17.2.1 使用Red Pill 反虚拟机技术3431 T- W+ y! [, m7 F( h' Q
17.2.2 使用No Pill 技术344% y! H3 v# }4 w5 R& i: Q
17.2.3 查询I/O 通信端口344+ ?1 I7 U* w8 J4 Q
17.2.4 使用str 指令345- L. U8 S& y( V8 g
17.2.5 反虚拟机的x86 指令346
/ P6 {2 c: `2 l- `% e! [0 J! Z$ g17.2.6 在IDA Pro 中高亮显示反虚拟机代码3472 g2 d' {# H# U  |7 D
17.2.7 使用ScoopyNG347: Z9 }! v9 b' d/ o
17.3 调整设置348+ }- |3 n( i& D6 L
17.4 虚拟机逃逸349
1 k9 I- x5 ^4 V2 T* E17.5 小结349
( B1 |( S$ C: R& v3 X9 s. O17.6 实验349
. X3 O$ q' z; M" s+ a6 t) U5 N: P8 P
' g0 J% m! I- G8 `/ ^& [3 ~第18章 加壳与脱壳 352
* X; G& I! h4 r9 d$ d/ S
, G  e: l& u' M18.1 剖析加壳352
) ], J2 @7 B3 ^5 T8 w1 F18.1.1 脱壳存根3531 C/ k0 \, J) m$ V  G3 W
18.1.2 加载可执行文件353
  T' y3 ^& y0 j18.1.3 解析导入函数表3535 D. p% ^& M9 L' v2 x- x
18.1.4 尾部跳转354
. ^6 F" B, `% ~' @& a" _6 ]18.1.5 图示脱壳过程354
/ Z5 b. F6 O' S2 M' B18.2 识别加壳程序355
9 k0 R' o8 ^, ?/ R( z5 m" C6 t18.2.1 加壳程序的标识355
- i1 O6 e/ q$ @1 `1 c3 l4 H18.2.2 熵计算356+ m: }) V) C. W/ U( f' `+ M
18.3 脱壳选项356
7 Z2 ^' T. h$ i) J& n4 U% p2 }* Y18.4 自动脱壳3563 V/ _% g: s( [/ K9 [- T% e
18.5 手动脱壳357
% ^$ B! e7 r. _! H  I8 ?5 c18.5.1 使用导入重构器重构导入表358+ Y' W8 u  U/ h: \2 K8 f( C
18.5.2 查找OEP359( m- y  I6 g$ X; g1 p$ }
18.5.3 手动修复导入表363
* N7 B" S9 }6 R3 q( J7 ~18.6 常见壳的技巧与窍门364  ?- t. F, ~( X1 c3 |
18.6.1 UPX 3648 K! D0 I# ^- `& d
18.6.2 PECompact 365
# Z- S  Q  |3 T& [18.6.3 ASPack365
  Q2 g0 N7 O: A* A1 v, k% ~18.6.4 Petite 3654 b: h) q+ \* S  W' u
18.6.5 WinUpack 366" N* w: K% F0 x- g1 O
18.6.6 Themida3673 U* s$ V! Z) K" W
18.7 不完全脱壳情况下的分析3684 |7 {5 B& w$ I3 P, `
18.8 加壳DLL 368" ?8 f- h, z* @$ {8 d( x. P9 w% a
18.9 小结3692 k+ \! Q: [7 h+ |3 y7 e' n2 |6 N
18.10 实验369
: Q+ f+ H7 x, A1 s3 ^  Z4 b4 F, V4 m3 p: [
$ E! |* U) ], r* E3 t6 p; d
第 6 篇 高级专题3 I  w% V  u0 c
% f0 C* @2 e- P
第19章 shellcode 分析 372
$ _+ m6 Y0 c! u: w& W% I" X3 X3 M6 W, B6 M7 j( `9 n* B. B
19.1 加载shellcode 进行分析372
$ @: }/ |/ \# i2 M19.2 位置无关代码373
( Y* e, Y" [! S# {19.3 识别执行位置3738 H7 |( }; C5 y# `  t8 q7 a
19.3.1 使用call/pop 指令374
7 q4 v8 Z9 K2 S& r( H7 b# ]) S) ~$ ]19.3.2 使用fnstenv 指令376
! s% p, _' H- {( Z19.4 手动符号解析3771 N  r0 E$ |) r! e
19.4.1 在内存中找到kernel32.dll378
& W2 l) {7 X* t: L3 L19.4.2 解析PE 文件导出数据380
' H/ ]9 B  N/ ]5 B; O% _0 _! r19.4.3 使用散列过的导出符号名3825 Y4 _4 v+ O7 F& U
19.5 一个完整的Hello World 例子383& |; ^: T5 j; Y
19.6 shellcode 编码385! t' R0 L$ g' m; R4 p2 |
19.7 空指令雪橇387
! R+ V; n& b: e19.8 找到shellcode387
- ^6 ]2 L1 H( S2 S19.9 小结388
/ w, t  S9 u+ i1 D6 M1 t6 Z19.10 实验389
! B; \- H% n4 w+ S6 ]- m! ]
* x7 M5 r4 d- x' r3 x第20章 C++代码分析 3911 A( D1 U; U" `& [$ X& P; u3 a% A

: e/ t9 A( ]( r2 k! c20.1 面向对象的编程语言391. \% w  d# X6 s4 X/ h4 [
20.1.1 this 指针3921 s3 t4 F) i) F- M& }/ ~7 S
20.1.2 重载与修饰394# \  n6 D. I- F) M
20.1.3 继承(Inheritance)和函数重写(Overriding)395
' j4 L# y0 u. _- W( m8 K: x' }20.2 虚函数和非虚函数396
7 W& Z) l6 n  C  I0 ~20.2.1 虚函数表的使用398& [0 k5 O; K- ?3 t
20.2.2 识别虚函数表399
8 q6 t0 v- O; E6 @) R1 c* E! C20.3 创建和销毁对象400
, A* p  j8 R+ f* @20.4 小结401
, a4 I' A2 L! ~9 {" _20.5 实验401
, y9 B: F2 B" F$ c/ h4 F# u8 z, Z& \/ d3 u5 D
第21章 64 位恶意代码 403
8 p% z( ^( ]1 p) c, T# u1 U$ O9 y# P* `9 L% P: C+ @2 w3 C8 ?
21.1 为什么需要64 位恶意代码403# K7 x9 E: {0 }; [: S  U+ F
21.2 x64 架构上的差别404
# O, b: O! F: H21.2.1 x64 调用约定和栈使用上的差别406
$ {3 l0 M! x, s- A4 a1 u5 }) F# O1 q21.2.2 64 位异常处理408/ K: {2 c7 S' k! `# n
21.3 在Windows 64 位上的Windows 32 位408
' |. H/ B% Y) G2 \6 B21.4 恶意代码功能上的64位提示409& \1 L5 {3 S) m1 Q: i1 ^7 b
21.5 小结410
1 M# W. R# ?5 b& E' j8 F  {21.6 实验410
# i& F- d: h" l& H# R# b
7 ^  L  i, [* ]8 @% x$ S附录A 常见Windows 函数列表 412
- ^5 ^6 Z' g  s: v  r9 ]5 i) Z  q1 n5 J1 x: N6 I" F; v: ^: V1 T! u5 t
附录B 流行的恶意代码分析工具列表424' h, a1 u# S! a0 u0 U" a$ C
% h% B9 X# @! r
附录C 实验作业参考解答435. Y6 [& m; @; u  [
, D. B. n6 y7 X: z. }$ X# ]
附录D 致青春,基础软件开发的中国故事 691/ m; n0 a5 T* H+ V4 y

$ _1 f# R, n" L( q附录E Syser 操作入门 695( b; }; o' \% y3 i1 E$ v; Z

/ R/ G) u+ L9 i% M- G
; U' i& N" ]8 i7 l
想知道小甲鱼最近在做啥?请访问 -> 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$ M' N, \2 n# t) t1 Q
什么编程语音写的?

, p: v! s: t; X7 F% `! z4 h什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 13:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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