QQ登录

只需一步,快速开始

搜索
查看: 3089|回复: 9

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

[复制链接]
最佳答案
154 
累计签到:2213 天
连续签到:21 天
发表于 2016-11-25 21:49:00 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
5 O8 x' J# ~) \, C" ?7 b% C

1 V8 t, Y2 _, y% R4 G( y: h书名:《恶意代码分析实战》6 f9 l6 a4 @2 k) G
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
" _& h% _$ I/ P* n& N: v译者:诸葛建伟,姜辉,张光凯 , x3 x  h9 r' v
出版社:电子工业出版社
! [5 l- a0 X! G7 x出版年:2014年4月1日(第1版)
2 V+ U2 a  x1 Q/ ~! j定价:128.00元
- a) I' s4 E  q7 S$ @' x% ^/ V& _装帧:平装0 f3 g- r/ Z( ?" p
ISBN:9787121224683
( L: j# [! x, j* w- r* j6 t/ X: |% \
购买链接:
, M/ ~  A. x) c, W
$ Q2 U& D9 P& s7 Q
* b7 l( c% l) y/ K6 e
亚马逊 -> 传送门
4 H9 _  o6 S3 q  Y" u  t
1 ~5 s" c) \; h" d7 [当当网 -> 传送门
% ~( E" x9 `9 o& \! W9 E- a/ W; o7 Z. P1 g, T/ U' b
京东 -> 传送门
( k' e9 c  o4 ~, v: s
+ ^/ `) X% C! i) N5 |6 x天猫 -> 传送门9 c7 B0 _1 A/ B* d3 X
' b) h- x9 {: A' D* y; Q" n! h

( t$ C( \+ }7 X4 P. M内容简介:+ `! s* x! k, _, w2 |1 v

# s3 q; j  l) X0 Z

, K: g7 }& A$ @) V2 A6 L5 p《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。
% v; @7 Q2 Q* G( c$ V' j" U/ s4 L+ x5 x, y) J# U" ^9 v  m- _# @
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。) B: v- B; K$ t$ X% F
4 U8 m4 J' s$ l' S: l- C
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
3 ^9 Z; t  G$ z/ P针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。
6 p, E. \8 h, B
) A/ |: g8 G/ m# X0 j目录:
6 r$ W* N# }3 s9 e* k' E: t1 x0 s. ^4 t0 g' ?2 Q: M# n


: r0 h' G/ H. i2 L+ P* W. i: k% q第0章 恶意代码分析技术入门10 `1 `6 k6 J% q# v4 w5 Q/ Y
9 d  Y, l5 @- [
0.1 恶意代码分析目标1
$ R. T7 l. |. [+ R2 f* x0.2 恶意代码分析技术2
2 v% E; l* V, A  ~8 m1 V0.2.1 静态分析基础技术2. H# @7 X( P5 n% C' c  r# T# j* |% B
0.2.2 动态分析基础技术2
2 e1 ?1 u* \- `0.2.3 静态分析高级技术2
/ f. S* w! W, P/ O7 V7 W0.2.4 动态分析高级技术2  {, F8 ^! \; S* K
0.3 恶意代码类型3# y3 `3 }6 ^2 ?6 `1 U- [
0.4 恶意代码分析通用规则4  l) w4 }+ b% Z# H6 p: n

0 _1 v% O& f+ c
7 Y& _* F7 a$ o3 Q第 1 篇 静态分析4 D+ }/ E  x7 g' D" b; U$ R

5 N, ^  z1 P  B: j) g第1章 静态分析基础技术 6
3 `" `2 K- a! ~9 j$ f( V

% ^- Q' ?# E. y' {1.1 反病毒引擎扫描:实用的第一步6
/ z8 \7 x' c8 M: r, p# P3 R# x) J( W1.2 哈希值:恶意代码的指纹78 P5 m7 S: w& }. Z
1.3 查找字符串7
' d9 ?8 x1 H4 g, Z  ^1.4 加壳与混淆恶意代码9' o& M) F9 p! \! R- W. \
1.4.1 文件加壳10- K# l0 Q9 v$ z2 k: X$ c% g
1.4.2 使用PEiD 检测加壳10' l; [/ T) A5 ?$ n' ?+ Q
1.5 PE 文件格式111 m! c& w& B2 L
1.6 链接库与函数12
  M# q% Q4 O, \2 C) V1 H1.6.1 静态链接、运行时链接与动态链接12: S2 i0 M1 {3 H# Y
1.6.2 使用Dependency Walker 工具探索动态链接函数13
7 a4 f' ~. M$ b9 P1.6.3 导入函数14
, M7 ~. n1 O) d) S1.6.4 导出函数157 W. N9 h# K# G: r. X' t7 e
1.7 静态分析技术实践15, i4 X4 V5 [7 Z, H0 \1 l
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15
3 ], r5 ]) v# D/ n  |2 \1.7.2 PackedProgram.exe:穷途末路18
' x! Z  X1 t: `! m& {$ y1.8 PE 文件头与分节18
' C" E# J6 I5 l4 g: I0 o1.8.1 使用PEview 来分析PE 文件19
: w' f8 u! u# ?! [9 D) c$ g0 F1.8.2 使用Resource Hacker 工具来查看资源节22+ }; l$ i5 M. `9 D% _- k% H3 P
1.8.3 使用其他的PE 文件工具23& A& q! X5 u% T' J6 F2 J  q9 A+ a
1.8.4 PE 文件头概述23% V+ u0 t# T6 x7 A. E
1.9 小结24
9 J& S5 p1 o+ z/ M; ?- c0 n1.10 实验24
# R7 V; d* J( x
  l- \0 t# C3 m9 ^% Y第2章 在虚拟机中分析恶意代码 27) @8 S; ~& Y! s; L% V

2 {; b  ^% N4 F% \' f2.1 虚拟机的结构27
# m9 r% j( v/ G& ~* r% T2.2 创建恶意代码分析机28* Y# g0 F6 u2 L
2.2.1 配置VMware29
- n1 r8 t$ r# a$ P% d/ {: d" t! ~2.2.2 断开网络30
, q2 A, V* F7 p% G, s8 w2.2.3 创建主机模式网络30. ~; U6 d! l# H% X/ Y! u% @1 }+ V
2.2.4 使用多个虚拟机30! ?" n! Y. @. G1 r- M1 l
2.3 使用恶意代码分析机31
4 W* D$ ?2 u( ^& g7 W# |) x1 R2 ^2.3.1 让恶意代码连接互联网31
0 j: C, U. P8 ?0 W, H/ m2.3.2 连接和断开外围设备32+ k) s6 \7 y( G' b& Y
2.3.3 拍摄快照32& b( K2 ]1 e- ]" K
2.3.4 从虚拟机传输文件33' H# r" ~- c5 M8 B
2.4 使用VMware 进行恶意代码分析的风险34
3 A, F  f1 `) {" q2.5 记录/重放:重复计算机运行轨迹34. ^4 Q1 n$ o( X- C
2.6 小结354 @, L7 x- Z" D& D
6 X$ K  b$ n* b0 o1 ?
第3章 动态分析基础技术 36
8 v; |. W9 X! ^

2 b, Y; A9 n/ z! y: @3.1 沙箱:简便但粗糙的方法36
  {0 @7 n) @8 Q3.1.1 使用恶意代码沙箱36
. f3 ^! c# ~6 }4 e$ h  q3.1.2 沙箱的缺点37  f/ B8 G# s+ x6 i( e
3.2 运行恶意代码38" j4 M( e$ x6 X. _3 Y
3.3 进程监视器39
9 q- I3 J) J" I* ?2 P3.3.1 进程监视器的显示40
9 d% ?" ]; P' y$ g6 W  ?3.3.2 进程监视器中的过滤41$ y& }1 k, `+ J9 k8 k
3.4 使用进程浏览器(Process Explorer)来查看进程43$ o. b1 S2 l6 m! O7 u. Q
3.4.1 进程浏览器的显示43
3 [* }0 q* ^+ H3.4.2 使用验证选项44
) R. w# S5 D) s, ]/ F, v* {9 I  O3.4.3 比较字符串45
% ]4 o- S/ S0 o3.4.4 使用依赖遍历器(Dependency Walker)45, Y: o$ {* [6 c
3.4.5 分析恶意文档467 ~4 @& M! P& s# n) H  K
3.5 使用Regshot 来比较注册表快照46' S) c, O' `% s) Q" c: p
3.6 模拟网络47: `2 X1 f  r; t8 ]& s8 i0 a
3.6.1 使用ApateDNS47
- P+ p* Z( F! I: j& [* s1 C: @3.6.2 使用Netcat 进行监视48
* c% o6 W3 ~. d0 l+ w3.7 使用Wireshark 进行数据包监听49+ ]  |) l( J) Q
3.8 使用INetSim51! Z: m! D; k: C
3.9 基础动态分析工具实践522 f3 ~: T8 |0 \- H* k! C+ {2 {
3.10 小结55. o) r8 P  s) _# u: \' K& q  ~$ k) X
3.11 实验56
( R0 w+ s8 x7 @( [8 K3 W
( i( H0 w# Z' U
; K& u6 }' M3 b, S3 [第 2 篇 静态分析高级技术篇
) u# c2 N$ v' s! a
7 Z# D3 X% C" Y9 E7 r; a第4章 x86 反汇编速成班 60' B) M& h8 k6 B/ J: W- f% j7 `4 L
0 M# W0 G9 O8 K
4.1 抽象层次60) g% X0 |& s+ F+ z, R
4.2 逆向工程62
, n  B" }6 X1 {% s% D+ ^4.3 x86 体系结构62
; K9 u3 u4 g3 p7 P2 `, w1 W4.3.1 内存63# Y  b. d2 a- P7 j& o* b  K
4.3.2 指令64
$ g( R& y2 U* t1 y5 S$ E3 ~  W4.3.3 操作码和字节序64. y- e& z8 f2 ]. F
4.3.4 操作数65
! }. @, u4 Q( j! r4 o$ a' |3 ?0 d4.3.5 寄存器652 Y! f+ R" t' A$ h
4.3.6 简单指令67: _1 f" e9 k5 N' Y
4.3.7 栈70- E. f7 H4 R! E
4.3.8 条件指令730 u  ], R5 ]  D9 u
4.3.9 分支指令738 e: M) C, n% `2 V- k( E6 _
4.3.10 重复指令74
' ^0 m6 A2 K& T4.3.11 C 语言主函数和偏移76* a/ @, l9 y, n$ L
4.3.12 更多信息:Intel x86 Architecture Manual770 \8 R) E5 v$ n3 N
4.4 小结78. i& E' g3 _( m8 S
. j( w' N+ o7 z6 J% G
第5章 IDA Pro 799 j1 Q  _; o0 U; y
# G" O# Q& D9 F# ]+ q$ ]. G/ x+ [
5.1 加载一个可执行文件79
: Y  X4 R: G4 h+ d9 P. T5.2 IDA Pro 接口81
4 K6 z+ Q1 B9 @5.2.1 反汇编窗口模式81) d5 ?8 P6 M3 D: w/ O9 F4 Y
5.2.2 对分析有用的窗口83
  i) R% S0 M' z& Y3 P5.2.3 返回到默认视图83
) g- v3 Y  v/ A% b. l5.2.4 导航IDA Pro 83
' d" }0 v+ s2 O2 J0 l+ p5.2.5 搜索85
; g9 l1 |: o8 O9 U7 p1 h( ~) A5.3 使用交叉引用86
) F- c% q9 C8 m% Q) Y5 c. ]+ j5.3.1 代码交叉引用87
: a' x* b  V# s% ?5.3.2 数据交叉引用88$ \9 R% K- w2 O
5.4 分析函数88/ {" p  C/ s+ T; B
5.5 使用图形选项89
# r% r1 E4 x3 b, U6 S% R# |5.6 增强反汇编91
- |) u2 h. P3 I8 K- A5.6.1 重命名位置91( A8 a1 v. s1 X$ U$ `
5.6.2 注释92
/ p# l' z7 h& I) H5.6.3 格式化操作数92# E: z7 D# x! s% j/ W$ t5 }5 X  v
5.6.4 使用命名的常量93
9 E* ?( T1 i0 R5.6.5 重新定义代码和数据94' Z  Y& J& f  v# }+ ]
5.7 用插件扩展IDA957 w( H0 l* m' l" {4 t3 S
5.7.1 使用IDC 脚本96. D, r$ `3 s( G, i" a4 F
5.7.2 使用IDAPython97
; q, R- b9 C8 x% F. G; T; W5.7.3 使用商业插件97# v( ?  G6 |# ]/ @8 i
5.8 小结98# f; D3 T& [4 F# K8 I, R
5.9 实验98
3 z- k8 Z9 S* C8 |) D7 F4 z" t, a2 [$ ~3 Q
第6章 识别汇编中的C代码结构 100
7 c  }3 y2 t* y( R7 c

0 t/ q* m5 O; j, r6.1 全局与局部变量101
6 Z1 r: V: I0 _  W4 C  B4 [6 ]6.2 反汇编算术操作1027 I: U( M2 [& \
6.3 识别if 语句104
( R" r% q& y8 ~8 C+ ~7 B( V6.3.1 用IDA Pro 图形化分析函数105
* B! T4 \" l" }( g5 h( Z3 r; W6.3.2 识别嵌套的if 语句106. o4 d9 _, s1 Q7 g- j; O+ D4 J8 c
6.4 识别循环1072 H6 W- s" |- c& a# S
6.4.1 找到for 循环107
1 m/ I! B! e/ }+ R- N! Y0 [6.4.2 找到while 循环109  x2 p3 U' S% f' E
6.5 理解函数调用约定110: d! n: @, L  t8 x& {* T- D
6.5.1 cdecl1102 H7 @! d' c5 a; M2 p
6.5.2 stdcall 111
" l5 i  e4 P7 U4 {) b( ^# Q( P6.5.3 fastcall 1113 a1 W- P( E# h
6.5.4 压栈与移动 111& r' _; h0 }- ^1 l* |0 |
6.6 分析switch 语句112
3 f. b2 _: j% T6.6.1 If 样式112
% s% B4 F1 @- j. @& c6.6.2 跳转表114
" }# {3 u! L3 j7 ^$ _, x7 x( i6.7 反汇编数组118( \  w- a5 F9 m
6.8 识别结构体1192 [, Y7 h" u* s! K& R
6.9 分析链表遍历121! _6 F8 n  U& {+ O, H2 _% a6 M
6.10 小结1231 k7 t" @6 |+ D1 X
6.11 实验123. i  |  s+ y: y, E1 A
) Z& z1 R! `9 c, M- {, v7 a
第7章 分析恶意Windows程序 126
. n* \$ P. p) S

) p9 H' k3 k2 y- H7.1 Windows API126; u+ j* ^# x4 ~
7.1.1 类型和匈牙利表达法126, l* s; r+ \! C; c
7.1.2 句柄127. m8 z/ h5 h1 u+ X, s
7.1.3 文件系统函数127
  ?5 U6 P" q/ t6 m6 f7.1.4 特殊文件1284 g. P8 B2 n7 d+ o) B  O
7.2 Windows 注册表129
8 s4 l7 l/ `+ G! r. s7.2.1 注册表根键1308 l6 k. h' |' T& S; Z. m+ _
7.2.2 Regedit131; h, e1 [1 r- t
7.2.3 自启动程序131( ?1 m) `1 g: V
7.2.4 常用注册表函数131
# i: k3 j7 ~* k4 m, i7.2.5 练习分析注册表操作代码132" q& S, ~5 G# T" Q( ?
7.2.6 使用.reg 文件的注册表脚本133+ I# W- {3 w5 F
7.3 网络API133
4 L3 P, g$ |3 Q/ F" F7.3.1 伯克利兼容套接字134
* t$ I( X& Z0 j% _7.3.2 网络的服务器和客户端134
3 z+ T8 q7 R+ a( N4 y7.3.3 WinINet API 135
" u1 \; u2 @/ H7.4 跟踪恶意代码的运行136" _8 F  `: g' ^
7.4.1 DLL136
3 B- Q( Z) t4 i' H6 S3 _7.4.2 进程137& D$ `3 W& L; y
7.4.3 线程139+ ]7 J6 z2 p5 Q+ c0 F# ^) f2 D
7.4.4 使用互斥量的进程间协作142
( O+ O  n& M2 R3 \6 ?7.4.5 服务143- l% G4 f  b- s8 D. Z4 _
7.4.6 组件对象模型1458 O8 ~* P- b  q; o7 L7 J1 N
7.4.7 异常:当事情出错时147
/ m2 i. w9 r% B1 K/ ^7.5 内核与用户模式148
: u* i0 R8 l1 \% c7.6 原生API149( b; @/ Y0 T* L! V8 ^
7.7 小结151
/ O, x% F& d3 I% O9 J  Z9 y" ]+ ~7.8 实验151
3 g. J# S6 p# o+ P0 q& f
5 c4 ~' l" t9 `0 M( F1 L5 w
, A% v3 H5 s# V, N第 3 篇 动态分析高级技术篇" C. J, G; F" Q/ @; X
' G% ]- E! J2 V: B
第8章 动态调试 154

! d% O3 P+ ?# M: W( u! h* r7 l- G& o4 U9 Y, m
8.1 源代码级与汇编级的调试器1549 h; V3 `" }  K
8.2 内核模式与用户模式调试155
/ y  O: P  Z* D! O8.3 使用调试器155
" y) ]5 S  U0 z! z8.3.1 单步调试155
* p8 e" C9 W. p* Z6 @1 n8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156- t; K1 E: f: {2 a+ E' n/ o
8.3.3 用断点暂停执行157, v- [2 T" H2 A: V9 v
8.4 异常161" o7 |; v" Q5 a- y
8.4.1 首次和二次异常处理162( L$ ~4 D  A5 q: U) |+ J3 Y$ ~7 m
8.4.2 常见异常162
$ G3 P3 w& x# }8.5 使用调试器修改可执行文件163# v1 {- e% M& z5 i" i+ H/ ]! q9 s
8.6 修改可执行程序的实践163) c" d" C; c" b+ H6 a
8.7 小结164
* I' s% j4 |' W; z+ d4 \* U5 q1 J$ t: u  j( \( @
第9 章 OllyDbg 165

8 n' r* s# I& ~# Y9 N) c; c3 X
' i4 Z9 t0 P9 \, A6 [9.1 加载恶意代码165
& ~  B" c5 G5 Z9.1.1 打开一个可执行文件165
& Z0 `& C+ y3 l) U5 O' Y9.1.2 附加调试器到一个运行程序1666 f+ k8 F: w8 P# n+ [, d
9.2 OllyDbg 的接口167! d' i) A* f- A5 s/ [8 u, t
9.3 内存映射168
, r+ }0 `" c# J1 Y) a9.3.1 基地址重定位169
+ c2 Z/ M! E8 b/ s5 Z9.4 查看线程和堆栈170
; g5 {. W7 l6 b. X9.5 执行代码171
1 M1 f( N+ w8 t9.6 断点172( u$ i$ v, n5 V6 j7 K0 f0 E
9.6.1 软件断点173
0 D8 M0 q7 z! [& _/ o4 G+ O9.6.2 条件断点174! d8 P, N7 w+ u3 ~
9.6.3 硬件断点175
/ y; F# |; j0 P. X! E% M  [3 I% N9.6.4 内存断点175
/ n/ A/ {2 I) p$ h, i+ ~9.7 加载DLL176, T0 Y& ]$ `4 `6 j4 z/ M
9.8 跟踪177, q  H) j) a: d
9.8.1 标准回溯跟踪177
, T* l3 l5 |5 T' y8 h# }0 O- {9.8.2 堆栈调用跟踪1788 Y# O3 R" e: m6 Z1 ~' y/ H* H
9.8.3 运行跟踪178
+ m, l0 R9 o  r/ d' X& _! i9.8.4 跟踪Poison Ivy178
* H& g6 B. C4 O+ N1 q! l9.9 异常处理1794 T/ c7 |' H( Q, X, H
9.10 修补180
, C/ P! v" C3 g; w) v: z9.11 分析shellcode181
6 Z* h: I& D/ H% Q! z9.12 协助功能182" g: ?! c1 Q& `4 Z
9.13 插件1828 ~1 G, l; g4 n: q
9.13.1 OllyDump183
! H* v$ j0 B- M# r" h( n9.13.2 调试器隐藏插件183
6 W# i8 w' _0 L" a% m% G2 @9.13.3 命令行184
; U  c- F7 z) n! z' I; P5 X7 j9.13.4 书签185
! O9 H. Y7 S5 d! U9 Y9 j9.14 脚本调试1856 I2 m$ T7 G" T9 S7 n
9.15 小结1866 ?2 G- y0 e8 N& p  b0 i% G: P: A
9.16 实验187* L# {$ j1 r8 d( R5 Q8 q7 t

3 Z$ U4 l- G: R' N第10章 使用WinDbg 调试内核 189
# |' p9 P% @; a' `5 K* r# f4 V4 \3 l
& h5 U2 {, ]/ z: U0 Q10.1 驱动与内核代码189
7 i; }- _! K$ I+ ]  N! {* `10.2 安装内核调试191
* ^- e4 ?+ E4 T2 F5 |% C" `2 L10.3 使用WinDbg1931 N+ J  ^: J5 t4 E
10.3.1 从内存中读取194
" E; d1 V+ ]* w( l& I0 ]# D- f  k10.3.2 使用算术操作符194
0 ^1 L! \5 i: d10.3.3 设置断点194
+ O% l! z/ R2 _1 u! y# G7 j10.3.4 列举模块195
0 a0 u3 B! D# S% W0 Y* e; o10.4 微软符号表195
, o* d1 h8 j: ]$ [10.4.1 搜索符号195" z- R. H$ V1 F* v4 Z
10.4.2 查看结构信息196
) _' u& P0 ], i& B" G. A. `10.4.3 配置Windows 符号表198
9 \( g" q  j% Q; P10.5 内核调试实践198
5 I2 U" j0 W. J$ L10.5.1 用户空间的代码198
' A3 \$ F! D4 h! W10.5.2 内核模式的代码200
$ }2 N: E( S  [  i10.5.3 查找驱动对象203
# x( n0 S/ y; T1 G* n. S  D8 W- M10.6 Rootkit204( l! P* J7 ?) T* n8 s) a3 v7 \* y
10.6.1 Rootkit 分析实践205
) n; T! M8 x' m, \" z  U. ~10.6.2 中断208- |; @7 H5 W& _" e8 B- |1 Q
10.7 加载驱动209% J3 f$ ]% K( ]$ `% z
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209' Q  T# l, }. q3 U2 m) A% t2 o
10.9 小结210
% e0 n5 e2 T2 N9 v7 j$ Q10.10 实验210
; e- y( A' T4 q; T9 O3 x3 d3 ?
; `0 {9 {( h3 c- f' i  X2 M7 `9 ]5 n& A/ b
第 4 篇 恶意代码功能篇! f  J, F/ }+ K) R  J0 |

* a+ I/ s7 @2 r& V第11章 恶意代码行为 214
. w- P& m& y5 C3 Q- M: r" g9 ~. S+ K0 t3 P* y, K
11.1 下载器和启动器214: K! h* U! j- t' r6 v9 ?
11.2 后门(backdoor)214
1 M- T; ]" S1 u$ i+ I11.2.1 反向shell215, E# Y5 m# \! [& K' U
11.2.2 远程控制工具216
& s% g( [$ h1 }/ V5 a- c: ^1 U+ g9 S11.2.3 僵尸网络216
" r# Z  a4 c4 l- P/ @11.2.4 远程控制工具与僵尸网络的比较217
& c4 @( C) r% o4 C# }( F" B11.3 登录凭证窃密器217
0 R, m2 e" T( U5 {11.3.1 GINA 拦截2178 U( T& R( ~& o' t
11.3.2 口令哈希转储218
  j) o& w% z# d3 r11.3.3 击键记录221  J8 `3 Q+ Q* `4 m6 w. z. `+ z
11.4 存活机制223
4 I9 ?; V! j4 L; M' E" R2 S! R11.4.1 Windows 注册表223
2 l) m3 E- K  S11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
9 C7 B! v* h! f. q6 A& u11.4.3 DLL 加载顺序劫持227
- o4 Q5 |8 M8 T/ _11.5 提权228! P9 u- j* {  R; |: W7 p* Z
11.5.1 使用SeDebugPrivilege228
8 {1 a# f9 i! [11.6 隐藏它的踪迹——用户态的Rootkit229
) M4 p& w, ^3 s  T11.6.1 IAT Hook 230, E# V8 n2 N1 q% n
11.6.2 Inline Hook 231
0 h% a* x2 K' s6 v11.7 小结2327 t6 h* s' X+ a$ N  B
11.8 实验232
' z6 Z" y- \! s4 g0 O* e0 p7 i* n# @$ S' j( t
第12章 隐蔽的恶意代码启动 234
" V, m3 e( O8 g# ^! ~1 d7 I  M9 o) _* }* K4 o: f; \; R' A
12.1 启动器(Launcher)234
' H" p9 F& C4 D9 {+ F! d1 P' z12.2 进程注入234
: ]' a! b# r* a! d1 s# @12.2.1 DLL 注入235
$ y" x" d, ~' u- D4 {5 N. m/ g9 ^12.2.2 直接注入237
% b: q% }1 t3 }2 o, J4 J12.3 进程替换238- F$ z0 w' T( w
12.4 钩子(Hook)注入240$ P7 [, b; Z. i3 X' v
12.4.1 本地和远程钩子(Hook)240
4 i' Z! W! |2 k$ D# `12.4.2 使用钩子的击键记录器241
# ^; T) x5 T; X0 X12.4.3 使用SetWindowsHookEx 241( g4 F, ?. V8 Z/ M9 u; K4 V6 v
12.4.4 目标线程241! Z  Q- n+ X  ?# B. o- ~  Q" E
12.5 Detours 242. j6 v2 \. n2 T6 Y( t1 J
12.6 APC 注入243' r% r' H3 C3 p$ {& z1 }
12.6.1 用户模式下APC 注入244  d0 P, U3 P4 z3 O5 j- }' k
12.6.2 内核模式的APC 注入245
# O6 F/ V* O8 N. v) Y12.7 小结246
4 U4 g% |" m9 T/ W12.8 实验246
1 @1 J2 X& q8 \& {9 ]
7 h5 w! B) G* _7 Q第13章 数据加密 2481 s5 x$ @& u7 ~; H5 x

2 N7 [, u! R/ r6 c- E' v1 W2 G2 n13.1 分析加密算法的目的248$ P6 S- z1 J  O
13.2 简单的加密算法248) \$ c% _$ _( d8 |, \1 K. Y# r
13.2.1 凯撒密码249# @+ q% _5 u% L* Q8 @& R0 c0 n
13.2.2 XOR249# o5 B; B/ ?3 t& b8 B# r( p: J
13.2.3 其他一些简单的加密策略254
7 E7 Y$ X5 `- M, Z8 |13.2.4 Base64255
! F1 E" i3 D; t1 Y/ e13.3 常见的加密算法258' J! \# i$ X  E: |0 ^( Z
13.3.1 识别字符串和导入2595 C/ ~" b5 G6 o/ V8 G4 {8 F7 S+ S
13.3.2 查找加密常量259
& V. W+ u$ s7 G13.3.3 查找高熵值内容261
6 B0 f; U8 t2 }  o3 Z* i13.4 自定义加密262
* J+ }& F2 Y5 x) T13.4.1 识别自定义加密263
4 H- o' `0 ^* o" j13.4.2 攻击者使用自定义加密的优势265
. @  }* O" q- o6 [' n13.5 解密265
5 a; g/ |. H/ o% |3 r) a, q5 e13.5.1 自解密265
! f1 j* Y; `/ @! y. R' B% `13.5.2 手动执行解密函数266
' @6 y0 w$ E) e6 N. ?9 n: B13.5.3 使用通用的解密规范267
# ]+ a2 L5 \5 ~7 j6 `7 ^7 o  O13.6 小结270% _  ?& G2 o8 e& ]
13.7 实验271) J7 I2 J! ^, m5 u: l( E6 h

, @. x/ d' Z& F/ V+ O& x第14章 恶意代码的网络特征273
$ j  J; F  W  V3 p! o0 H& @0 Y) M+ A9 \% d2 Q# ?( m+ o  q
14.1 网络应对措施2731 W! K6 J! w* T( l
14.1.1 在原始环境中观察恶意代码273% y2 I% K( Y$ n$ R5 o: l( z
14.1.2 恶意行为的痕迹274
% o! k% h6 G4 s% |/ z# a! J14.1.3 OPSEC=操作安全性275
4 h% g4 U( @: C/ ^3 `0 z8 @- Y14.2 安全地调查在线攻击者275
6 A9 f6 D6 O, J& v( Q8 [/ ]14.2.1 间接性策略275
, |; v/ e1 W9 j2 I. ?: ]9 S) _. x14.2.2 获取IP 地址和域名信息276  B( U6 D: R3 p: Q6 `# a5 g! }
14.3 基于内容的网络应对措施278
; d0 _( Y# M* {0 H- V5 _4 ?14.3.1 使用Snort 进行入侵检测2780 C' g' o2 e& k8 U
14.3.2 深入观察279" c' p/ q) M  w) M' r% t) l
14.4 结合动态和静态分析技术282
+ l: `! H7 N: _0 J) y14.4.1 过度分析的危险283
& m5 E7 D( H1 ~( Z" f5 W7 c' o5 o14.4.2 在众目睽睽下隐藏283) r! F* \9 j4 a
14.4.3 理解周边代码286
# v9 ~1 L. a& a14.4.4 寻找网络操作代码2874 i! ~8 q' S+ n( ]; X
14.4.5 了解网络内容的来源288
" h% x& X* j7 [6 Q1 N14.4.6 硬编码数据 vs. 临时数据289
4 n7 l+ k8 t7 n; l/ G* C" o14.4.7 确定和利用编码步骤289
) p6 `% r1 A; L% I0 c14.4.8 创建特征291$ U7 E1 S+ C4 A/ w, b
14.4.9 分析解析例程292  \3 ^% j( ^5 V8 z9 E# @
14.4.10 针对多个元素294. M% K5 c9 B5 F3 I8 g
14.5 了解攻击者的意图295
3 @6 G6 f4 I% Y9 _& \4 f% r14.6 小结296
2 I: o+ o7 O1 g14.7 实验296# R" s. E$ _' J0 b3 w% B
% ^4 g. k" m% E$ D

) b; M7 W. i; ~$ d3 G第 5 篇 逆向工程
' B+ b! Z$ S% K! U. `- W1 I8 J% O  m8 @9 B+ U: ]0 |! y
第15章 对抗反汇编 300
, ?& q7 A& ^+ w) g' ?& h5 X+ s( Q3 ~" w& z  ?6 ~9 R
15.1 何谓对抗反汇编技术300$ r- D& O* B6 r4 t8 X' \
15.2 挫败反汇编算法301+ f4 I6 Q. p1 l/ p+ m. [
15.2.1 线性反汇编302; W. ]; ^( ?( @  o# j
15.2.2 面向代码流的反汇编303
+ X% s3 n  ?, i8 d: U& Q) Z15.3 对抗反汇编技术306
; R6 U. R4 j% l9 a15.3.1 相同目标的跳转指令306
, v# C1 _6 W2 x: l2 e# j  L15.3.2 固定条件的跳转指令307+ u! T0 C$ m0 Y6 m& r/ w9 g0 g
15.3.3 无效的反汇编指令308
3 t* n' N' c$ W( E  y3 V15.3.4 用IDA Pro 对指令进行NOP替换3112 V9 A; k5 _4 J' K* v& F
15.4 混淆控制流图312- b2 E1 ~- P  N: F5 f% b. ?' R
15.4.1 函数指针问题312
3 I) P3 |6 {8 @15.4.2 在IDA Pro 中添加代码的交叉引用313
9 N9 S. w8 n7 }3 L" z! ?  v15.4.3 滥用返回指针313( P) m8 M) L; T  E: ~: [# k' ^
15.4.4 滥用结构化异常处理315* K: p8 ?% B: q2 J% I: b
15.5 挫败栈帧分析317
2 Q' ^9 c3 L. d% ~. M6 V15.6 小结320
3 _  E9 i2 w( P15.7 实验320! |9 ?5 H2 ?" W$ W( P
8 D8 p& ]1 Y% C7 P2 V
第16章 反调试技术322  L& u7 v- d( z" H6 n3 ]
( U- G$ K7 R$ Q! z  g+ B8 K8 ^
16.1 探测Windows 调试器322
' P' _. h. f2 X: {( k" h16.1.1 使用Windows API322
( k' _) @$ T& _5 [16.1.2 手动检测数据结构324
& j; ?+ N9 t- O  J. q- n16.1.3 系统痕迹检测326( W' e# t8 d9 Y, z
16.2 识别调试器的行为327- F  f8 P" n1 e8 L
16.2.1 INT 扫描327
4 }$ \6 R$ Y  K9 a! q) A16.2.2 执行代码校验和检查328
6 }8 j2 ^  `4 g" E3 v16.2.3 时钟检测328
6 z& M( f! @8 V16.3 干扰调试器的功能330* v0 {( w- P9 P  f. y8 ^7 Q! i
16.3.1 使用TLS回调330
/ o; @3 \* g. M/ g' V$ D16.3.2 使用异常332
7 s( Z9 n! k0 }' u; {16.3.3 插入中断333
, Q' e; E" `& K8 i16.4 调试器漏洞334
( Y* J5 A$ ]0 C1 ]" ?4 i16.4.1 PE 头漏洞334
( i* L% {; x5 u1 T- v16.4.2 OutputDebugString漏洞3366 W/ E3 q, L& \
16.5 小结336: k: V9 u, y$ D
16.6 实验336; U1 t) I" x; T3 R( Y* n% P( L

4 v# b" @' O" |" s第17章 反虚拟机技术 338
, M2 E: y. g+ f0 {% ?% a2 Z
- t9 z( x! @$ Z! g8 f+ c17.1 VMware 痕迹338
. k  r3 L8 X6 n6 a5 c3 J17.1.1 绕过VMware 痕迹的探测340+ K7 ~- ?- y$ q: v. ^) _
17.1.2 探测内存痕迹342
5 y/ E$ H3 F8 E, I+ ]17.2 查找漏洞指令342
- P* @7 ?6 n/ C6 i17.2.1 使用Red Pill 反虚拟机技术343# c5 B, g( a7 H
17.2.2 使用No Pill 技术3448 F9 Y! @" @6 K6 u
17.2.3 查询I/O 通信端口344
& }* G( i& X+ g+ n+ L17.2.4 使用str 指令345
3 i/ t( z  G' b, Y) H$ ^17.2.5 反虚拟机的x86 指令346! ]3 x* a7 e* h% A. e
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
& t! {/ i3 _' \2 Y( ?1 |17.2.7 使用ScoopyNG3474 H* U1 i* S5 k6 T# I
17.3 调整设置348
5 M& d. b; Y6 _2 b3 [! x; F0 y. \17.4 虚拟机逃逸349: m! D- b5 f/ V# I# p
17.5 小结349( u. j9 S! k) k3 y
17.6 实验3498 r9 }, k# m4 r

) b% x) |9 ~8 g- q第18章 加壳与脱壳 352
. w9 _6 R, f" n7 U* p' _; B3 _
18.1 剖析加壳352) G) z# Y* T; G* L' I
18.1.1 脱壳存根3532 f5 L9 ?' y$ D6 M9 B) H
18.1.2 加载可执行文件3536 K' r1 w! ~1 J! y- q& `2 y+ b  T+ k9 ?
18.1.3 解析导入函数表353
7 o. K8 A) C2 `/ Y2 E# i18.1.4 尾部跳转354
5 x  b1 V3 m% H1 V* N+ q18.1.5 图示脱壳过程354
4 d0 `/ G% n  l$ _, u+ r3 J, {18.2 识别加壳程序355
* T6 R: A" w2 F+ @: c, L$ f: B: u18.2.1 加壳程序的标识355
1 O) o  v  x6 y/ r1 q18.2.2 熵计算356
* U8 T; P. R# @+ G18.3 脱壳选项356. S! r! J" w/ L; j8 T$ ^9 L
18.4 自动脱壳356
/ Z. h; b/ A3 A  R3 y18.5 手动脱壳357
5 ?! D+ `. o" o. ~* _- K18.5.1 使用导入重构器重构导入表358
' q0 p2 Y! E  c! N9 ?18.5.2 查找OEP359
/ V6 M  w( {/ R- O18.5.3 手动修复导入表363
5 T% h4 ^( ]2 U: t- p# R18.6 常见壳的技巧与窍门364* t1 g0 t% K( \* J. m3 F
18.6.1 UPX 364
3 `. N2 ^4 R+ A" |9 h" N3 I18.6.2 PECompact 365: H' }$ _% p' Q2 q
18.6.3 ASPack3653 n. a  U; D- F3 G/ l
18.6.4 Petite 365
  m# I4 S0 z# m: a! a# U4 s& L18.6.5 WinUpack 366
1 w7 n# h6 h) K18.6.6 Themida367
2 N( n. G+ {3 Z' {. e. W/ y18.7 不完全脱壳情况下的分析368% D. R* \: r, m' a/ R
18.8 加壳DLL 368
- O- G/ Q# a; N$ K18.9 小结369& r. \7 }1 B$ H  Z7 M- S, w
18.10 实验369$ F$ ~7 Z  T  F4 C, p
6 F. [8 I9 e5 p4 Y5 a9 t

( I2 u+ ]5 o& Q# m第 6 篇 高级专题: v9 J4 p* i1 e) P1 y+ k1 n0 `
/ R) C( ?. U" e+ e1 ]
第19章 shellcode 分析 3722 u& ?" ?  I5 @" |2 S  P  P. b5 L' g
3 J0 \5 X2 q3 W8 h' E
19.1 加载shellcode 进行分析372) b3 |+ T% ^" F" g$ c
19.2 位置无关代码373( x7 [& T' i) }
19.3 识别执行位置373
; x) Y4 ?. w- {( g. A; A1 y4 U5 n, B19.3.1 使用call/pop 指令374
  D% x" F7 f, ?% X" [- m! R' S19.3.2 使用fnstenv 指令376# w: c: e, o' n! r
19.4 手动符号解析377
- e! c( J3 n8 z19.4.1 在内存中找到kernel32.dll378/ J7 E" I/ e' ^
19.4.2 解析PE 文件导出数据380
- P- H: s8 M0 @0 _  P( x9 T0 d. z1 j19.4.3 使用散列过的导出符号名3828 t0 g0 ~8 Z+ i5 i( d
19.5 一个完整的Hello World 例子383  W* J' h8 {0 T- D, V
19.6 shellcode 编码385
- H! f3 I" L+ w# x# V0 }# A% Y19.7 空指令雪橇3877 @& F, o! x0 e, s$ V
19.8 找到shellcode387: w+ D. w! L+ x" V' a% y# I
19.9 小结388: h7 P) y9 ~$ t7 ^" Y/ B
19.10 实验389
$ k! O- |# X- p6 O" g0 h8 Q' P5 C8 e, [; S; z3 ]# U
第20章 C++代码分析 391
8 `. o, |6 X- R+ v) |
. X) A' O7 q. K+ k20.1 面向对象的编程语言391
! @/ _+ s& B& {  C2 o20.1.1 this 指针392
, ?1 w: U4 z, q* Z) Q/ n8 h/ I+ \20.1.2 重载与修饰394
3 X- K( i  q  A3 w0 U20.1.3 继承(Inheritance)和函数重写(Overriding)395
3 x) F; |. ]! e1 \20.2 虚函数和非虚函数396
! F# O* q+ b$ ^- u% `20.2.1 虚函数表的使用398% O  O+ ?3 v2 _, K- A
20.2.2 识别虚函数表399
0 J# m" h2 l* p/ j+ W% L3 [8 C; k20.3 创建和销毁对象400- h% a" y  K+ f% P1 u$ d0 l; E
20.4 小结401
+ P, z* z# t5 b% R; w" \20.5 实验401. O! B$ I# t; p* \+ Z( j8 C

8 h8 ^: B1 v- Y  Z第21章 64 位恶意代码 403, g% h8 n3 ]6 n  O1 j% s/ Q
+ Z4 A/ f  {3 ?+ l/ n
21.1 为什么需要64 位恶意代码403  \9 j( e# ~4 v8 @* i
21.2 x64 架构上的差别404
; y  |& S' w  ~5 q+ D21.2.1 x64 调用约定和栈使用上的差别406. o" x; |' N+ x
21.2.2 64 位异常处理408
& G6 x( S) s6 e3 Q21.3 在Windows 64 位上的Windows 32 位408
8 `% \  |1 h! D  e& q' F21.4 恶意代码功能上的64位提示409
6 x  |9 P) K& l3 }2 l! @5 `/ a21.5 小结410
* v9 B0 ]/ L) I$ m5 U- w21.6 实验410& e" _4 o2 z1 d, ^5 ]
! a( |3 ?( |/ ~' @- Z4 o
附录A 常见Windows 函数列表 412$ {5 V! O0 c: j; ~6 H

) S2 n9 w6 ~8 w1 _+ ~0 M附录B 流行的恶意代码分析工具列表424
2 j( Q+ ]7 P% |, y) W
& ~1 a" }8 v& B( A3 M% D1 ~5 N+ L# B6 [附录C 实验作业参考解答435
  h! e4 y, Y' g2 x+ v/ `" {: d; o: c- P# P7 }$ v
附录D 致青春,基础软件开发的中国故事 691. g% o* |  m" F4 M* M

. v: R3 |% ^, l: q8 o附录E Syser 操作入门 695. O4 g* x; u8 i9 p

% d8 N1 e/ x5 U. _, ~& i
! f$ k7 a& [+ {8 H* p) E
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:537 天
连续签到:1 天
发表于 2016-11-26 00:13:53 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:368 天
连续签到:1 天
发表于 2016-11-26 08:26:25 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:86 天
连续签到:1 天
发表于 2016-11-26 09:51:22 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:81 天
连续签到:1 天
发表于 2017-3-7 17:41:36 | 显示全部楼层
鱼蛋代码 发表于 2016-11-26 09:51
7 z; b. X8 q$ p% X什么编程语音写的?
6 k  S" @% u+ d+ Q( _
什么时候出病毒查杀实战
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:10 天
连续签到:1 天
发表于 2017-6-17 18:04:42 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:11 天
连续签到:3 天
发表于 2017-6-26 21:17:30 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:1 天
连续签到:1 天
发表于 2017-7-18 10:19:29 | 显示全部楼层
感觉很高大上,但语言学的一般般还有待提升勒
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:2 天
连续签到:1 天
发表于 2017-8-6 19:25:19 | 显示全部楼层
好想学呀,可惜看书看不懂呀~!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:25 天
连续签到:1 天
发表于 5 天前 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-23 23:29 Powered by Discuz! X2.5 Theme by dreambred

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