鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

' @- v, ?0 {/ V  V& e
# f1 S' {) N& L9 G0 e书名:《恶意代码分析实战》1 `+ l4 Y9 P1 j( R( K
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)3 Z. ^: Q! @( X5 A: m- C6 j* v
译者:诸葛建伟,姜辉,张光凯
9 [9 f5 S$ V  e: @! p: ~* ]) k出版社:电子工业出版社8 K, T4 z: W& D! z: Z
出版年:2014年4月1日(第1版)
3 _0 Q, G( P; }' N- i) Z/ t定价:128.00元* D* j0 R0 g# u: ?6 b4 [  b) y
装帧:平装
- i1 Z% h$ ?; u: n! X- s$ m/ b% s/ mISBN:9787121224683- h8 i  t5 Y9 Y0 n1 Q9 M

5 g& U- I* E, M, N购买链接:3 z  P: S% _  m" M! c

- e( E. N, Q$ ?+ r! p

! A/ ^, T2 N9 u) @1 W6 \, J亚马逊 -> 传送门
: J) ?/ C  T+ z( Q; `! z# |- d% E7 N2 c4 y
当当网 -> 传送门1 e8 P+ a( [! E8 Y- o
# \# ]3 _1 n- n
京东 -> 传送门
7 M& \! e0 ?8 }6 ]9 S2 Y
# D9 q1 M, l  ]天猫 -> 传送门( V5 ^1 Q% ^. W1 H  a

) A* |: B4 j$ t8 I, S( `4 |1 A
# C# `; I0 I4 L5 O内容简介:+ O; m" S- n- }1 @2 ?* D8 R9 f
1 h$ Z" K4 b9 Q  L

) U$ R- B+ h0 x
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
9 N  V4 O) ~: Y( `- J9 r) ]4 e: w9 c' t
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
' P: U- ^( B. K$ m: F3 W
8 |% G+ z* `" q! J4 f* |" o( x针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
- z9 {: o- n- T针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。" Z3 t3 I  Q/ u$ G+ G

- R  f- I. N0 o: U9 w+ e; M# Y目录:
5 ]6 H& \1 D# S( R, }% q, h
$ R1 P9 c" P  B. @
% _7 B. n  k: B7 z# o
第0章 恶意代码分析技术入门14 X4 D3 Q! h, w' V! X+ p, D9 [
1 R0 r! O4 G% l# J2 D% N* E; |
0.1 恶意代码分析目标1
& i' j# z6 _% S/ o0.2 恶意代码分析技术2) V* y+ Z# Z  Z, S+ m4 O8 V1 F
0.2.1 静态分析基础技术2
2 ]9 b# f5 W& ?. ^5 `5 C; F3 d0.2.2 动态分析基础技术2
. `* F: O0 v0 m1 T, @8 D# a0.2.3 静态分析高级技术2
, M% i, S4 A2 e. g0 [- c0.2.4 动态分析高级技术27 r9 K* |) B' y  X
0.3 恶意代码类型3+ q# U. h2 l# E1 R9 ~' J/ i& j- d: l
0.4 恶意代码分析通用规则42 ^. P6 f  J7 C6 w

+ t. L0 p  I3 X& P. T8 R- n7 |" i& J6 g, E: U- T
第 1 篇 静态分析
2 @7 J% n) ?% I* n
* w* h9 b$ z/ u9 a( X第1章 静态分析基础技术 6
7 k+ t8 Y, J( R% H5 ^3 E5 c+ q% ^9 |

7 D$ c' W* e' W. e" @4 p1.1 反病毒引擎扫描:实用的第一步65 k- U( x' H8 o; p) ~0 O) B8 f
1.2 哈希值:恶意代码的指纹7
6 e* H1 f# }. ~1 {1.3 查找字符串7+ G" Q0 S# g  I
1.4 加壳与混淆恶意代码9
# e' q: [6 \$ E; e6 X; U1 S  ~1.4.1 文件加壳10
  L6 d% D& e, p: s% z1.4.2 使用PEiD 检测加壳10
; ~/ ~! v5 p+ w7 j, ]1.5 PE 文件格式11" x  F; L( R, y* x: P# G$ S2 K
1.6 链接库与函数12
; P# i$ P* p2 a( C1.6.1 静态链接、运行时链接与动态链接12
. C8 o# O7 z" Z: Z/ Y1.6.2 使用Dependency Walker 工具探索动态链接函数13
0 t: h" f# m. J# L  t2 e# ~1.6.3 导入函数14
, u& e5 U( o# q# t* P! X. W1.6.4 导出函数15
8 s. U0 Q  N- ^2 d- m1.7 静态分析技术实践159 q+ e& X$ O2 @: O! V+ m4 q( R2 V
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件156 E2 V, L( S' U$ r+ \
1.7.2 PackedProgram.exe:穷途末路18) M& x, A" w* Z/ t4 a' I
1.8 PE 文件头与分节187 x) W/ n) Z  T7 H
1.8.1 使用PEview 来分析PE 文件19& L& O5 T4 z7 K- {7 v$ }! N/ a
1.8.2 使用Resource Hacker 工具来查看资源节220 [% \4 T  X( t% ?/ K7 D# H  _+ Y5 N
1.8.3 使用其他的PE 文件工具23
5 M/ e* T2 i) x1.8.4 PE 文件头概述23  g1 P) `+ g& K% T4 y' p* n3 B
1.9 小结24
/ w" e3 u6 t7 c3 ]8 D3 ^6 U0 j1.10 实验24
5 o) t1 ]# l% n: D, d4 S  M; F! G( `" [" L/ d( m% x
第2章 在虚拟机中分析恶意代码 27
" X; A+ n6 Y# f9 c. X
6 N( @/ ?( q+ `+ v/ t3 Q2.1 虚拟机的结构27
5 L% A. K1 w% F' i5 V2.2 创建恶意代码分析机28
4 C: s4 W, I: p2.2.1 配置VMware29
# C4 j1 v5 Y7 M* Z4 a% t# R2.2.2 断开网络30" ?0 ]8 h4 |* E" U, D! d
2.2.3 创建主机模式网络305 g# x# z) l: H
2.2.4 使用多个虚拟机30
( w" K( o- X) l8 B& ~* R& Q2.3 使用恶意代码分析机311 g8 P+ s3 @. |6 \3 m2 E& S
2.3.1 让恶意代码连接互联网31
  B5 p9 o: y5 T2 }5 T$ D& ~2.3.2 连接和断开外围设备32
; p) X0 S3 o- u  ^0 G" o1 `- f$ W2.3.3 拍摄快照32
/ P' T$ H, f7 q2 _5 q2.3.4 从虚拟机传输文件33
+ q$ N0 n! x7 P) n& j2.4 使用VMware 进行恶意代码分析的风险34
% J% {  W1 z# |# s+ Y, p: r% G2.5 记录/重放:重复计算机运行轨迹341 {* P, c5 n) l: w# K4 M/ I
2.6 小结35
, P* k" X& w: I  D& z( O8 [  x; x* H3 r  {' @7 L3 ?5 N
第3章 动态分析基础技术 36
* c4 e4 ~9 U8 e" l$ o& t5 X/ i. @

% G/ E/ U; E2 [) i; W3.1 沙箱:简便但粗糙的方法36( x  {$ l- P) J0 b# }# [
3.1.1 使用恶意代码沙箱36
3 b' v! F6 H$ G2 P& j1 t) D( ?3.1.2 沙箱的缺点371 M6 X% Z5 k# {6 P, J/ x5 @# b
3.2 运行恶意代码38
5 q% ?6 c, G: l$ @9 \8 ^3.3 进程监视器39
9 B/ L/ `4 i  G. X; Y( N, n  s) b* Y7 q! N2 Q3.3.1 进程监视器的显示40
  N- ^/ G, h' \) U1 @3.3.2 进程监视器中的过滤41
  u; ]6 B. W* `: |. X4 a3.4 使用进程浏览器(Process Explorer)来查看进程43
2 s- d" Z" j% q0 x, D7 m3.4.1 进程浏览器的显示436 e& U2 c2 R- p6 ^1 t+ I, K  G7 W6 v/ F
3.4.2 使用验证选项445 G5 G  Z4 y  o7 c& _
3.4.3 比较字符串45; Z, u1 ^1 W; U+ |
3.4.4 使用依赖遍历器(Dependency Walker)45
3 Q# U1 m, z, ^8 ^3.4.5 分析恶意文档46
9 O) h- r& @% q# J: M) t" X4 q3.5 使用Regshot 来比较注册表快照46
1 P: A- B% F7 H+ @3.6 模拟网络47
! |$ r' P" G0 F* X3.6.1 使用ApateDNS479 P6 u; H/ c8 r5 i7 Q0 W. O2 j
3.6.2 使用Netcat 进行监视48
' z# @4 G. [# d; Y; `3.7 使用Wireshark 进行数据包监听49
# z+ Z' b# I* G! k1 V. u% [3.8 使用INetSim51
2 R( R) z5 Y4 a% u8 d3.9 基础动态分析工具实践526 P% o1 B' ~5 j2 S3 g2 y! e: U$ j
3.10 小结55" G) L, s& v6 ?' H# c
3.11 实验56
- M3 L. }3 o$ Z% Q* ~) B: L  t6 n8 g  [/ n; f0 g( j

6 e( R6 b/ T/ L* g( A第 2 篇 静态分析高级技术篇. n# R; z$ F" D6 i. c
/ [7 d) z2 v" ]5 U' G5 {: V$ L
第4章 x86 反汇编速成班 60& z8 ^- I" S7 b" q* F

  ~5 j: ]  G8 J: s! B4.1 抽象层次60
+ s9 M7 C! h& ]$ b5 J4.2 逆向工程625 J/ o; q9 N, }
4.3 x86 体系结构62) R) Q) T) z% P: H
4.3.1 内存63
8 o" G( b7 c# p3 a' I4.3.2 指令64) y9 L  y6 S% `# Y( I
4.3.3 操作码和字节序64
& H8 F6 }& n  f/ `4.3.4 操作数65
! S# ~5 d7 x, h1 |9 e# [4.3.5 寄存器65
" J* ?9 H7 C( r1 }  ~4.3.6 简单指令676 `) p. ~7 \7 a  V
4.3.7 栈70/ F  @; P& D8 N& Q* G, X' j
4.3.8 条件指令73
8 t9 M2 M0 ]) g1 \" b4.3.9 分支指令73
7 ^( r! n3 H$ v$ W* `, V4.3.10 重复指令74' D4 G- d9 Y# O  b  }
4.3.11 C 语言主函数和偏移76
( Z+ e" D# u+ ^, A1 p8 Y4.3.12 更多信息:Intel x86 Architecture Manual775 I0 Q! Y' y" b. _6 M* K
4.4 小结78
7 ~% A3 k3 Z1 z; ^( Z7 }5 t0 ?! ^1 X6 K9 H1 M# p# A% w
第5章 IDA Pro 79; M1 H  h& U' a" ~) Q
3 j1 O* m9 w0 g
5.1 加载一个可执行文件79% `7 }: e0 Y- g. c, g! }
5.2 IDA Pro 接口81% z% @  S! s$ ?& H* l5 U9 X
5.2.1 反汇编窗口模式81
" I( }- c9 W1 i5 U: S9 @% z- O/ J5.2.2 对分析有用的窗口836 k3 o; N) j6 q  U
5.2.3 返回到默认视图83! z9 |6 U' p6 H. H' w9 T
5.2.4 导航IDA Pro 83
$ k7 C1 c8 I; E5 q5 \6 R$ i) V5.2.5 搜索85
/ _0 |: @9 ~; U* k5 C0 p5.3 使用交叉引用86* j5 b6 C9 E4 A! s% G9 o9 {
5.3.1 代码交叉引用87
  T8 b& J6 ~# V6 Y5 m5.3.2 数据交叉引用88
) g$ H; W  L5 j) o0 u  x4 c$ m5.4 分析函数88. v( }2 p' {$ p: q0 s1 R
5.5 使用图形选项89
! k0 Y# t! ^, j5.6 增强反汇编91) ~, s5 M  w8 P0 u! f5 y
5.6.1 重命名位置91
  Q  s; f" @* _/ x7 D! }# B5.6.2 注释92. g, v: l/ {. _/ _/ [
5.6.3 格式化操作数924 A! F2 F4 q$ _% ^) S- L
5.6.4 使用命名的常量93
0 O% K7 }1 Q* l7 f2 Y1 Y' L# |5.6.5 重新定义代码和数据94
& u4 Z$ F; Q1 w; e5.7 用插件扩展IDA95+ f& p; n6 B) Z- _' }  u* m
5.7.1 使用IDC 脚本96; a; ]+ b1 o6 I1 w. Q
5.7.2 使用IDAPython97  R  K: m; g" p$ B8 F3 G3 d) h
5.7.3 使用商业插件97
/ [7 m8 Y4 q  L& C! F* x5.8 小结98
$ a2 K( U" d' u* ?% d6 t8 k/ d" }  P5.9 实验98- W4 {, q3 k2 S( `2 {! U

3 z( |9 y: Z0 e4 y$ \  W4 x6 _( r第6章 识别汇编中的C代码结构 100
- P; W! S, u( n# @& f- h0 ~
6 `. t, N  A; n
6.1 全局与局部变量1013 w! {. b9 m5 x6 w, n
6.2 反汇编算术操作1026 d+ m" v4 m4 Q) H, C3 N: Q
6.3 识别if 语句104. \* K" q) Q: l8 q" A/ t
6.3.1 用IDA Pro 图形化分析函数105
9 p3 `0 ^6 ^" v) d/ _) ?6 P6.3.2 识别嵌套的if 语句106) I( u! B; P1 Y% e' i1 x
6.4 识别循环107' E' Y- \) c1 j+ n/ j; z5 g5 o8 a
6.4.1 找到for 循环1071 i9 [& z& T9 M( {* ^% e
6.4.2 找到while 循环109, {5 x' }0 F- q0 g
6.5 理解函数调用约定110
# I! R* F: ?" S) @# W' q) m6.5.1 cdecl110
; g( P8 [9 C2 _% e' K; u( N6.5.2 stdcall 111
6 h! g% @* t& |! X6.5.3 fastcall 111
) l# d/ X0 S' b7 _* d( ?7 x" m6.5.4 压栈与移动 111
6 j: L5 m: z2 z# @; U& ]. l. d6.6 分析switch 语句1122 u+ M, M) s0 [: t5 g
6.6.1 If 样式112
0 |& p, p" W) q1 N0 e8 w6.6.2 跳转表114% [" H3 r3 u& m. o0 i
6.7 反汇编数组118
( r, s& R4 O- S$ [6 W. U! I; w: I+ `6.8 识别结构体119
9 y: |& i8 u6 J, Y7 H, m$ h5 \) z) Q5 b6.9 分析链表遍历121
# w5 `5 r& k. }0 n6.10 小结123- l  W4 \' y* c% l5 j. D
6.11 实验123
: n% s5 U+ L0 c$ j6 D, W  ^  ^; J6 V! o7 s- h
第7章 分析恶意Windows程序 126
% }% c0 c, W- w4 J: o( C, R  E* G
+ ~# X% @  b4 E: V
7.1 Windows API126
, j6 K( M  [0 h: w3 W% \* D4 S7.1.1 类型和匈牙利表达法1269 B; t7 X0 d' @, N
7.1.2 句柄127
3 a  {7 W, i7 Y7.1.3 文件系统函数127
2 H4 y( d) Q! P7.1.4 特殊文件1280 N  U2 ]2 H# p5 c) X' K
7.2 Windows 注册表1298 k+ V% f. H  |: g9 q: ^- ^$ M
7.2.1 注册表根键130  q% `- ^7 A- l' \* [% @3 Y
7.2.2 Regedit131
- M) o* L7 F( W' M1 O+ S7.2.3 自启动程序131
  ]3 z8 b4 M* C' Y7.2.4 常用注册表函数131
3 {1 O* {  s  h0 w& K, G" v. J  d7.2.5 练习分析注册表操作代码1325 F0 O9 p6 `9 |6 l+ ]
7.2.6 使用.reg 文件的注册表脚本133
9 m; F) Q: a% A7.3 网络API133; y( ]) l, G2 y, R3 k9 j3 j1 N: M
7.3.1 伯克利兼容套接字1341 w+ |5 D9 }  x4 K  J! |, Q" e5 h
7.3.2 网络的服务器和客户端1341 h. M: A" x3 A. b9 j3 p
7.3.3 WinINet API 135
/ V' n8 z# _5 Y3 l0 k7.4 跟踪恶意代码的运行136
( [7 r9 _7 [; e- `6 n1 u7.4.1 DLL136) h& w/ [4 W- X- v
7.4.2 进程137
" u: r; E0 D* ~( U" K7.4.3 线程139
: w0 g3 ^* |& ]7.4.4 使用互斥量的进程间协作142( r' a- z* W' t, i4 X
7.4.5 服务1433 u4 R( T" y, s4 S& g) ?- r- c4 k$ u
7.4.6 组件对象模型145; M8 v: X& ]1 D, S! d0 @/ L" t: d
7.4.7 异常:当事情出错时147* u/ S% m- F5 a
7.5 内核与用户模式148: T* ^( {- Y$ U4 Y! ]8 Y" ^
7.6 原生API149
. K7 H8 s: U5 z$ u$ |6 |7.7 小结151
. Z6 @+ W, F% O& ^7.8 实验151
1 e- l! A) q: @/ m1 u& I4 {$ \9 g4 U( \

; j" L! s! u. `$ ^( J第 3 篇 动态分析高级技术篇
9 _/ P% V  C3 R9 B) Y- w# J/ s4 x) u
第8章 动态调试 154

0 @% x* ~" B4 F3 G- U
. K4 c/ _1 S" l+ p$ ]: }8 k2 J; k8.1 源代码级与汇编级的调试器154
# l5 z9 }  d8 d1 [8.2 内核模式与用户模式调试1557 N9 g/ e6 ]; J+ a
8.3 使用调试器155, c: t* x4 q, J. j/ {: G, C0 W
8.3.1 单步调试1558 g6 n* a8 x# [4 a# ]& b- A3 X) K
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
. ]7 l: s/ n# |" [1 H$ t) }8.3.3 用断点暂停执行157/ V) n6 [; t0 B2 j4 W
8.4 异常161
, }! n# S. y0 z9 S# u+ G) d) Y8.4.1 首次和二次异常处理162- O3 I5 j7 D1 b  L
8.4.2 常见异常162
. P6 q9 n9 C8 J: ~3 E. f8 {2 q8.5 使用调试器修改可执行文件1637 d2 p7 x2 k! y9 f$ z6 @, |
8.6 修改可执行程序的实践163
0 Y, T! K, H! d8.7 小结164: j8 m, S6 r, _% n

6 H8 X) Z- ?, j* j/ w6 y2 [第9 章 OllyDbg 165

- _) w9 `, T+ G  x8 x4 I
$ E! L8 `- Q  F, \8 Y" j. U9.1 加载恶意代码165
1 S" q, X$ w7 [9.1.1 打开一个可执行文件165
; R9 ~2 [6 K9 |$ c9.1.2 附加调试器到一个运行程序166+ F4 i6 C$ T0 S3 F1 z+ E& y
9.2 OllyDbg 的接口167
1 X+ z% Y3 {- }" ]9.3 内存映射1682 q- j' e6 R$ Z) Q* h
9.3.1 基地址重定位169
/ l3 \: ^; f5 T4 f2 v9.4 查看线程和堆栈1704 \  B8 m7 r, D7 Q# P& z
9.5 执行代码1712 D) g: r5 T$ }# ]* @# c
9.6 断点172
3 h( b  ?) K, Q, [( ~& Y" z( b9.6.1 软件断点173
6 W! c$ j# X' m9.6.2 条件断点174, C( C6 I9 r5 ~2 K
9.6.3 硬件断点175  f8 o2 v6 {+ o) B; _6 U
9.6.4 内存断点175
/ m2 g/ d! `8 B9.7 加载DLL176; L# a( O" J. h" G; @, D
9.8 跟踪1771 t) I/ {  Y  @8 Q# T
9.8.1 标准回溯跟踪177
$ j7 ^% Q% A% K4 y6 P9.8.2 堆栈调用跟踪178
) N8 x  d( P% r3 [9.8.3 运行跟踪1789 n! {( m! x* G# U: E) ~
9.8.4 跟踪Poison Ivy178% w- G+ ?. q; l$ ?2 ^
9.9 异常处理179
- ~0 P9 [: h  M! s( O0 O+ Y- ?& F1 S9.10 修补1800 s1 S, p8 f, C" G% l0 V
9.11 分析shellcode181
! M7 K: D# @1 ~' E+ m, B( }! |* f5 b9.12 协助功能182
8 N! ~; v, l$ R9.13 插件182  A  @; L/ \, O" ^& l' \0 V  m
9.13.1 OllyDump183
( h6 i; K' g* p! h! X. e* m  u9.13.2 调试器隐藏插件183; w# U# Q# x3 w7 C9 a& a
9.13.3 命令行184
- ~5 ~) _7 c* u) V9.13.4 书签185
* ?7 q) k9 [. O3 |# `9.14 脚本调试1859 K) n1 b) ]: h) }  R/ U7 c
9.15 小结186
% V6 ?- Z: c! ^8 }1 x9.16 实验1878 S4 u; Q: i$ w! `
+ c8 ?9 `& q% |
第10章 使用WinDbg 调试内核 189; @0 T% \! d" W

. q8 e6 C8 ]0 I2 X' v10.1 驱动与内核代码189
  T, s: O; o+ t/ }) T- V10.2 安装内核调试191
( Q; x( X. Q9 O3 Y# o& s10.3 使用WinDbg193
9 m, g+ V( f( H3 i5 b$ S3 W10.3.1 从内存中读取1948 ^* x1 e7 o# w7 S5 U' b0 M2 t
10.3.2 使用算术操作符194
9 G' D9 u  v% a  W3 i9 b8 G" d# N10.3.3 设置断点194; `- P) {* E& T$ @+ g7 q6 C
10.3.4 列举模块195- Q/ X4 ~% X7 u. d5 y4 Z
10.4 微软符号表195+ E) ?9 `+ C9 k9 W! S- W1 s
10.4.1 搜索符号1952 h* K: h1 @3 S8 Q+ u* t9 q
10.4.2 查看结构信息1967 K2 |; r- H0 D# B2 v
10.4.3 配置Windows 符号表198) f$ a/ H! W" O3 B( N) h& o
10.5 内核调试实践198" [( T: ^+ R& P6 j
10.5.1 用户空间的代码198
) P1 Q1 }( [% Y8 o10.5.2 内核模式的代码2000 H0 [1 n. V+ X6 k4 `" X
10.5.3 查找驱动对象203  B1 W2 N% d% H8 F) K
10.6 Rootkit204
( z$ s7 s9 Y; I6 M3 P. w' g10.6.1 Rootkit 分析实践205
' q4 b5 T1 U- e% L10.6.2 中断208
6 `( ^: x! ]: h: {: A# ]! n; k7 O! v10.7 加载驱动209+ a4 Q8 C% j8 k
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209- b  g1 P6 u( w( D5 B* f
10.9 小结210* g! M, B6 N$ V+ {+ o  m
10.10 实验210
8 D; a) g/ Y9 B- E% i
) s5 ?6 t5 O3 ^$ U, R6 n9 z2 i7 P' f% I+ X0 M2 K' v8 h
第 4 篇 恶意代码功能篇
- [  ~' C) @& [2 [$ a$ V
  q. |% G  n9 ]9 e* a; U- }5 @第11章 恶意代码行为 2147 ]6 c4 M& O! _4 t

  [$ m7 G$ @, i7 O0 T$ W5 h11.1 下载器和启动器214
- q' i) G& Q2 K! z$ C11.2 后门(backdoor)214
! R# T: D& A& S( V4 X11.2.1 反向shell215; b2 p5 C; T/ I4 [- X" {5 z' z# X
11.2.2 远程控制工具216
1 _& g5 v4 Q# a11.2.3 僵尸网络216: v- F8 ^8 J5 p( n6 B( Y$ f
11.2.4 远程控制工具与僵尸网络的比较217
4 c0 x  C! R$ P' X11.3 登录凭证窃密器217: b  m" ^4 _$ D
11.3.1 GINA 拦截217  y$ z" i2 R9 b  {  t) F& {5 |
11.3.2 口令哈希转储218$ H+ [) M% \$ A4 M
11.3.3 击键记录221
6 f6 V$ `, `9 X& B0 ~11.4 存活机制223* i( [$ S2 ?! l- X( E
11.4.1 Windows 注册表223. }: J5 d1 l9 m
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225: G4 C$ A( A2 p; o
11.4.3 DLL 加载顺序劫持227
  P4 k: i. R: M11.5 提权228
! |& w0 C$ v4 ?* z. G& }11.5.1 使用SeDebugPrivilege228# O- e4 `5 `3 v) Y+ }9 v: V
11.6 隐藏它的踪迹——用户态的Rootkit229
* X( F# @- }4 K) ]11.6.1 IAT Hook 230  c. i6 Z  [2 a2 U3 K; ?
11.6.2 Inline Hook 2310 L3 e4 o, o( A" g
11.7 小结232
. h3 w" t6 T# y  e* W11.8 实验232
& d. _2 x. {9 i% A3 D; z% g3 z1 q0 ]
第12章 隐蔽的恶意代码启动 2348 M3 M. F  `) w, n' X
' d2 a9 X0 {# s+ H( M$ n
12.1 启动器(Launcher)234
7 }9 j1 ?. D/ o0 [: q4 [7 d/ g12.2 进程注入234) s4 O! G- n- U% `/ f
12.2.1 DLL 注入2354 T: i7 b* Y. Z1 o5 E' W. ?/ U
12.2.2 直接注入2379 D9 \( |/ M( z$ N. n4 c# E8 N& t
12.3 进程替换238- D$ N& I/ o1 q+ I2 E, T% _; M
12.4 钩子(Hook)注入240- L) C% Q5 \% v8 X6 [2 n
12.4.1 本地和远程钩子(Hook)240
/ v: E' i7 z/ |) M5 W/ H" j/ A12.4.2 使用钩子的击键记录器241
; v. ]* ?) w3 h* x( W12.4.3 使用SetWindowsHookEx 241
: W; G9 T8 C' Y' m# v4 q$ |4 U12.4.4 目标线程2413 c% \7 P" ?% `: Q$ j0 t" G6 V
12.5 Detours 242
+ H8 z3 o3 n8 ^* B, t$ i# u12.6 APC 注入243
8 b4 }( I6 R! S8 {+ j) H6 j9 j$ k12.6.1 用户模式下APC 注入244
* i$ Y0 Y3 z) v" L, R12.6.2 内核模式的APC 注入245; W5 U, e' w, A9 R
12.7 小结2468 f) I* i6 {0 N3 h: V
12.8 实验246
/ l2 a- t" c+ L) K* I9 [
6 C+ i8 G0 @3 L8 w+ W# @2 \第13章 数据加密 248% C" ~* b+ \+ {: T& P( M

1 V3 X" C' k% e: M2 q0 [+ a13.1 分析加密算法的目的248. n3 m/ i6 f+ n0 T
13.2 简单的加密算法248. I  z3 @; U8 m! P+ F' l5 R+ {1 [2 s
13.2.1 凯撒密码249
* f" D8 r7 ~6 c; p* a. g" r13.2.2 XOR249
. J. _, `: {& p4 e8 o" w1 D13.2.3 其他一些简单的加密策略254# n9 w3 y, ]5 u% w6 \
13.2.4 Base64255$ @- z( J! J  q1 W5 L
13.3 常见的加密算法258
/ t' c: K" i- ]9 S- i9 m/ ?1 y# @13.3.1 识别字符串和导入2597 u2 I5 v5 N  [" i" K& w) k' Z7 l3 t
13.3.2 查找加密常量259
8 V5 o) k& W* U0 j  H13.3.3 查找高熵值内容2613 @' s/ [# U' i8 @; u
13.4 自定义加密2629 ~$ X( {7 w3 p) d
13.4.1 识别自定义加密2638 T& U( K) E2 g! L* X
13.4.2 攻击者使用自定义加密的优势265* T3 k4 P0 l) j0 O
13.5 解密265- b- R; @8 s# {+ U! U
13.5.1 自解密265) Q4 |% t5 v8 c" y6 q) O
13.5.2 手动执行解密函数266# b; u1 e4 P5 i) W
13.5.3 使用通用的解密规范267' [' X9 L- j3 q4 p# `0 b
13.6 小结270
: m5 t% }( K9 u- d% w# s13.7 实验271) v3 d& z& J0 |6 V$ |( R( f

1 _" l1 a( t8 Y1 s6 T第14章 恶意代码的网络特征273
; R" {& o, s1 i" i( H; n* h. O# S1 Z  @8 E* ^6 c6 j; X
14.1 网络应对措施273. e; e  L8 j% K" S
14.1.1 在原始环境中观察恶意代码2735 g: `/ p# i5 w. {
14.1.2 恶意行为的痕迹2748 C5 y3 n6 X4 C2 B6 G
14.1.3 OPSEC=操作安全性275. ?1 Z/ r- X3 s/ a/ O* z* a
14.2 安全地调查在线攻击者275) n1 k/ [7 A8 S
14.2.1 间接性策略275" J3 r; ?6 Z9 ?% K& N% u0 F
14.2.2 获取IP 地址和域名信息276
- l" H$ _0 [3 r1 ~14.3 基于内容的网络应对措施278
8 ]7 J0 w9 j. c6 Z, _14.3.1 使用Snort 进行入侵检测278
2 f. ~+ P. x& Y& a  P- b9 h3 b14.3.2 深入观察279
8 p, _& J# V& L14.4 结合动态和静态分析技术282
. Q. {8 }/ m/ ]" L4 [* n* m7 ]14.4.1 过度分析的危险2835 l7 K  Y$ P# {
14.4.2 在众目睽睽下隐藏283
* G4 ?8 o) J3 d; M5 _14.4.3 理解周边代码286" ]& k: t3 R' u0 u' E8 \' i& v
14.4.4 寻找网络操作代码287  E* l0 D- t. B3 h7 x8 h' R# b9 H
14.4.5 了解网络内容的来源288
" k: r7 f' [) s# n. W, d14.4.6 硬编码数据 vs. 临时数据289
! O6 A. o2 r6 v0 z2 P8 I& v3 q6 @14.4.7 确定和利用编码步骤289/ X7 O; k# t. T  {
14.4.8 创建特征291/ Y) V- z( W2 k4 V3 O3 Q! Y1 M# p
14.4.9 分析解析例程292& k4 T& E/ g* }9 F9 O9 f, E
14.4.10 针对多个元素294
: S6 b$ O8 g$ E/ ^/ N5 ]14.5 了解攻击者的意图295
& L: W, E- y% E) r0 s14.6 小结296
9 Q  P- J" j, A' S! w- Q9 ~: m4 P14.7 实验296. c2 p0 n9 v7 O8 k. o" t

3 m3 p0 v; y2 o! E
+ A* Z  `& w  n第 5 篇 逆向工程
2 H1 `6 p' M+ M  X( f7 N+ \* m% k, |# w1 j( N6 C0 A/ z. s
第15章 对抗反汇编 3000 `) h$ u) x7 y: k

0 n( _' x+ `1 F; X1 C15.1 何谓对抗反汇编技术300- \; l9 m. h% ]/ {9 @" y8 @
15.2 挫败反汇编算法301
2 h+ j6 t4 l0 Q3 f9 F15.2.1 线性反汇编302! m2 g+ r0 ], Q
15.2.2 面向代码流的反汇编303
# ]& M  H6 i$ S* L. ?8 C5 l15.3 对抗反汇编技术306% R- o3 Y# B* M9 N! p3 {- r+ f$ H, b& C
15.3.1 相同目标的跳转指令306
2 x0 h  j/ q- r15.3.2 固定条件的跳转指令3070 q& Q% I! A6 \4 @- i' M
15.3.3 无效的反汇编指令308' v* t2 q2 c# j7 w8 T
15.3.4 用IDA Pro 对指令进行NOP替换311
6 D) Z1 a# l3 ]' ~9 P. }* ]6 F15.4 混淆控制流图3127 T8 B% a) \8 u% ^) q
15.4.1 函数指针问题312# r. l! x7 L. g/ K8 ?
15.4.2 在IDA Pro 中添加代码的交叉引用313: y& N& G4 |# Z8 ?5 [& A
15.4.3 滥用返回指针3132 F& C! w4 Q. s7 c$ r
15.4.4 滥用结构化异常处理315# Y$ S) z7 o' a# q/ `' D* ?! d: @
15.5 挫败栈帧分析317
3 T- O# z0 M) J) |15.6 小结320! Y0 D1 \+ i6 H7 y) p; E. Y
15.7 实验320
+ l$ f$ U  z  N' \* j4 j" ?6 ?, _# |4 f9 [$ \+ r8 O6 j4 n" f, A2 L
第16章 反调试技术322+ f( T% K( ]- J" K5 M
' M. g2 @, X" d: f+ \; [1 y
16.1 探测Windows 调试器322
! ~2 ?* l7 N3 k7 D/ s/ N16.1.1 使用Windows API322. ?" e+ ^8 K6 E9 t3 k. T
16.1.2 手动检测数据结构3244 Z5 t& V/ y; R3 C; ~
16.1.3 系统痕迹检测326
9 Z& ^% W6 f6 H2 {' o16.2 识别调试器的行为327, U/ k) d* o" ]4 I3 L3 O, h2 W
16.2.1 INT 扫描3271 ?* J" s; H9 Q( O. F0 Z
16.2.2 执行代码校验和检查328
( u' q- o% Q) Y- j. C  d16.2.3 时钟检测328
, A$ r( U: R2 R2 ^4 D16.3 干扰调试器的功能330
8 M/ a0 Y* X0 ?' [' G4 f" J+ K16.3.1 使用TLS回调330
( B4 Q# v$ K# f( p" w0 ]16.3.2 使用异常332- K  s1 J1 M2 L
16.3.3 插入中断333, O, r0 T4 M( K- n/ N
16.4 调试器漏洞334
) ^. _* u2 w; ]% H4 n; ]2 y16.4.1 PE 头漏洞334" M7 L) T8 A: O$ y9 P
16.4.2 OutputDebugString漏洞336
0 f+ r" V0 a; o16.5 小结3364 N! \  @1 t# r. g1 Q
16.6 实验336
; d; e% d8 H; A/ O2 L( z* r- n7 ?+ c6 H
第17章 反虚拟机技术 338: o9 w2 e8 l; l. N, S3 S  w
9 {1 h& ?& z( J% m0 ]- f
17.1 VMware 痕迹338
% l0 N& O5 N5 S; o- S( G17.1.1 绕过VMware 痕迹的探测340
+ h# N& ]1 o) g$ i* h17.1.2 探测内存痕迹342$ @3 q8 C% @0 |! s& L4 P* \
17.2 查找漏洞指令342" _, f. U5 \- H7 i
17.2.1 使用Red Pill 反虚拟机技术343
  g) z& n% D" g17.2.2 使用No Pill 技术344! I5 j- e6 n; X; r
17.2.3 查询I/O 通信端口344
: r" \: W8 G& S) R7 Q$ F! M1 K17.2.4 使用str 指令345
/ C7 a: Y: c* F: M' x+ K17.2.5 反虚拟机的x86 指令346
: R/ A4 ^3 u! A- v& ?17.2.6 在IDA Pro 中高亮显示反虚拟机代码347: g! H2 p& l; h2 e% P  A
17.2.7 使用ScoopyNG347) \, m  |8 ~1 z8 {2 P$ u
17.3 调整设置348- s+ l( h  y# l0 L8 `! B: h4 ~
17.4 虚拟机逃逸349) s. b& k0 \) ^) Q+ k
17.5 小结349, B2 |5 q: u% m9 z7 {
17.6 实验349
7 I3 u1 p! G. N; B7 l4 N$ I/ C4 v1 V* Q. t3 V1 V
第18章 加壳与脱壳 352# U3 g2 q7 D' q
1 ^) u" C) o4 y/ c0 D0 s8 [
18.1 剖析加壳352
+ k+ t" G+ N( ^8 b! v% N5 w5 j" D18.1.1 脱壳存根353- g4 }- l% L& ]  T# Q# V
18.1.2 加载可执行文件353
, g" I5 B1 m" z/ A3 k18.1.3 解析导入函数表3538 W, u! _2 z2 L: m! _
18.1.4 尾部跳转3549 N% M, a9 `% g8 F7 A
18.1.5 图示脱壳过程354
* V5 B0 `4 }& w& E; {5 `- `% g18.2 识别加壳程序3550 H% _6 H  S* P# o2 e# h& d
18.2.1 加壳程序的标识355" k4 k+ ]* G+ P1 N0 A! K
18.2.2 熵计算356+ |" d( t1 K+ b6 }* @3 \" [, ^
18.3 脱壳选项356
$ h8 ^' b1 C4 g+ n' `% B% M6 h0 H+ C8 e3 I18.4 自动脱壳3561 K6 r. v) B% s" l
18.5 手动脱壳357
1 T- S! e$ C. e& n! I  z! `3 `& p18.5.1 使用导入重构器重构导入表358
, j7 X+ k" |& I7 `! y  ~8 T7 A' i+ E18.5.2 查找OEP359" @( p+ o$ n! S+ c" a
18.5.3 手动修复导入表363
/ A! U# Q+ T! E: h18.6 常见壳的技巧与窍门364+ X, w' d$ g9 G, t: o: J4 p
18.6.1 UPX 364
) g4 H& A* f  \18.6.2 PECompact 365
: I# f& o7 h# ^5 W) O) Y+ U0 [18.6.3 ASPack365
1 \/ _, X4 R1 b! u18.6.4 Petite 3650 e, Y% s& j) F' q* W! D, u
18.6.5 WinUpack 3660 J6 d4 E& i9 ]% u9 g+ \" v
18.6.6 Themida367, Q. \; I0 w! @, N, h. ?- l
18.7 不完全脱壳情况下的分析368
' y0 e6 u; I: \& L0 ?18.8 加壳DLL 368
) i- ~) [; N) L% r* ?18.9 小结369
/ A( t9 l  `/ w3 O7 _/ `6 ?$ {18.10 实验3695 _- P- g% B7 c  M- }, ]  d
1 i7 B  I9 m! ^4 D0 N$ d
: j7 c' y6 n% P  `
第 6 篇 高级专题& z7 i6 @! R; i! k* t% n) Y" }, y5 M
+ |8 O  D% D- V- P: X9 M/ ~
第19章 shellcode 分析 372/ a  O% w0 j' d: v9 T. |/ x

( G9 h; g4 p! u+ f19.1 加载shellcode 进行分析3726 ~! v% Q: t4 [! N
19.2 位置无关代码373+ M1 Z4 v, V/ U/ B$ {( X8 `$ j
19.3 识别执行位置373
! U+ k3 }0 Y, k3 H* @- e; C19.3.1 使用call/pop 指令3747 i8 U3 O4 d# {
19.3.2 使用fnstenv 指令3760 ^/ \3 c. W3 k& v# I+ U$ b
19.4 手动符号解析377
9 `/ h) {# ?% I19.4.1 在内存中找到kernel32.dll378
1 X1 @! q0 V: t% r19.4.2 解析PE 文件导出数据380
& q0 ^  }* r: Y1 C9 `7 r0 W% ?19.4.3 使用散列过的导出符号名3822 n% g  i& H2 _& V$ |$ f1 r
19.5 一个完整的Hello World 例子383
- b0 Z1 T' g* [+ q9 i  \! K3 y$ o19.6 shellcode 编码3850 d2 E" K: n& b; t3 ^! v. u
19.7 空指令雪橇387
+ J# y- D2 y6 J/ f4 ]* }7 m7 f/ o3 g19.8 找到shellcode387
$ J, r3 N$ y% |; u- G- j( P4 b19.9 小结388
9 t" u3 R( g: p' g5 |19.10 实验389
& u& i5 S/ Y* @3 h+ h3 L
4 j  N1 I: n9 C" ?0 b) J, N第20章 C++代码分析 391
5 k8 n/ k4 e5 g# \" l- w6 J% O. j% _! E. r0 C1 R# X- s
20.1 面向对象的编程语言391, @# U# a2 J; q8 G
20.1.1 this 指针392
- P4 |1 q8 }' |: _3 I8 ^20.1.2 重载与修饰394
& ]4 H* P' ^8 u; r  e- x6 o20.1.3 继承(Inheritance)和函数重写(Overriding)3957 i+ T5 f  u; v( S4 F* }
20.2 虚函数和非虚函数396# n. j* N" l% F  Y4 |& Q
20.2.1 虚函数表的使用398
( f! e8 C! `: u" V6 Z20.2.2 识别虚函数表399% k' ~- A, F+ m; D9 J. w
20.3 创建和销毁对象400/ s; v, ^' P6 J$ L7 B- |6 O
20.4 小结4013 u4 Z4 @$ L% r0 T1 w: O
20.5 实验401
9 \5 D. b. r$ S) u) c
% a7 X, P0 g4 z第21章 64 位恶意代码 403
2 }: u3 }- O2 o) ^
4 r  A' I9 ?8 M4 t3 Z# v  M21.1 为什么需要64 位恶意代码403% g0 J* ]4 M8 M. C
21.2 x64 架构上的差别404
8 j2 [0 w6 p) m8 u21.2.1 x64 调用约定和栈使用上的差别406- b6 b1 Q$ D% W9 i
21.2.2 64 位异常处理4083 P2 {7 o# Z& y% _8 z+ M$ l
21.3 在Windows 64 位上的Windows 32 位408; i- }. W- C0 f1 E' |! k
21.4 恶意代码功能上的64位提示409% u3 j! [0 ^% z& |' u
21.5 小结410: K* j, J7 X0 q4 x: a7 Q* A, q
21.6 实验410
/ d; |- `# N; {* A! j* g
& F1 y" Q& c1 {3 s$ Q附录A 常见Windows 函数列表 412
! I/ e# l+ I7 L
/ B  X4 N- M3 Z附录B 流行的恶意代码分析工具列表424% y" J' D) O1 u1 H9 H1 P! N4 k

) y" Y+ B. x0 b2 H0 W- J附录C 实验作业参考解答4359 F/ V5 j+ E* [* u9 m/ R8 v5 ~( O4 ^

$ B9 V' z( L7 |# T# E附录D 致青春,基础软件开发的中国故事 691$ k' B2 `+ b2 M5 T) i! B. a

4 L& J% b% j8 ^, O9 s5 a附录E Syser 操作入门 695  h- h' c7 o+ W1 \8 k, U& W/ g* O

  f9 E& o# t6 W4 a* P& T$ N- _5 @5 ^# E
想知道小甲鱼最近在做啥?请访问 -> 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& C* Q& l' w" |% q* X
什么编程语音写的?

$ c8 F  m  M8 q6 }3 a什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-17 18:04:42 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-26 21:17:30 | 显示全部楼层
看看路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-18 17:34:37 | 显示全部楼层
感觉很厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-31 11:38:15 | 显示全部楼层
感觉好厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-12 20:45:30 | 显示全部楼层
good book
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 20:18:16 | 显示全部楼层
好书,详细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 17:28:05 | 显示全部楼层
看着就挺难的,应该先熟悉工具
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 20:41:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-2 12:01:35 | 显示全部楼层
要做一个很牛逼的程序员,网络安全方面有所建树,完了给国家做贡献
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 21:57:05 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-10 16:51:09 | 显示全部楼层
新人报道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-24 10:45:23 | 显示全部楼层
好牛逼的书啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-28 09:37:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-7 17:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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