鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

" }3 h1 S% {) d* S: u& w1 p9 v9 ?) C. }. X: g$ t5 C0 r
书名:《恶意代码分析实战》  ?2 j4 T8 b) e
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
0 B6 V3 P/ l0 O* ]5 `译者:诸葛建伟,姜辉,张光凯 # N, J: h' @+ V+ L& i& c3 a( P
出版社:电子工业出版社
' T8 e% J6 j# o& |& n出版年:2014年4月1日(第1版)0 z4 I' |1 }; s' t0 _, u
定价:128.00元5 P5 i6 z( _8 a* s: D) M6 u. v; F
装帧:平装
/ w6 F" F1 i0 f4 R' `% R0 hISBN:9787121224683% f' y+ v1 e! s0 T3 v

) L$ P* X5 [( g! H购买链接:0 }! j) g4 z% s; d* e

9 @9 f$ p$ y. q
+ h! R  [- C5 u8 I/ [: I; i+ Y! O
亚马逊 -> 传送门
" p/ m4 X6 b+ O: V( Q  B  o) U( v. b# @0 B6 C( t8 k
当当网 -> 传送门
5 E' {/ D$ E1 h' w" E% G7 x- k* l/ f) Z& [7 R0 y
京东 -> 传送门9 A% F# S. i8 i: k# e- U$ I0 Y8 L

1 n& H" g5 n7 O- `9 R2 [2 c; j天猫 -> 传送门* h. y( X: g% E# x
. w6 K- R, N4 T4 {: O, {
! @$ c/ A  f- N* {  ]5 z7 Z/ }# p
内容简介:
# [& y6 \9 |: O- B% K6 n
6 R% w( f& @- o/ }' x2 e

( e/ b" b! G0 S$ w* h《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。; f: w; }1 ?& Y

- u* Q7 J2 V, N3 A《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。* @- j4 Z. p  H
. w5 i9 }9 a( P# c) [: o! R6 V) ~
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
& @$ _! X; e% n) S5 d针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。, b/ }8 t8 w( }" N# j
- V1 _  e- I5 P" P/ |1 t. O: ^( e4 P
目录:+ Y& V( ]' T; c2 {: f& i
% M) L& u  f- u6 u' g& B

/ K! o! L6 a- I- n. q# e- m( x% h
第0章 恶意代码分析技术入门1
  o- u' M6 z, H$ K, o' e8 u& }4 b
0.1 恶意代码分析目标1- W8 o/ \8 N  Z" Y6 |5 }
0.2 恶意代码分析技术2
: O; x. J" H4 v0.2.1 静态分析基础技术2- _- G) z* C8 I$ k# E
0.2.2 动态分析基础技术2. W$ g0 i0 @* T7 B/ }
0.2.3 静态分析高级技术2
8 ~2 g& @$ q" O. b# t9 A0.2.4 动态分析高级技术2; j' Q) U7 L3 K- E$ ?5 M- E
0.3 恶意代码类型36 e9 e( ?) S4 l( P+ c
0.4 恶意代码分析通用规则4
: h1 C, l& z# a1 o; i" W
& G: K' x- C1 V; d" J, |+ p, K4 `
第 1 篇 静态分析" ?0 L' l3 W! U& G! L: M
3 o5 b. ]& Z; M: V; j8 N
第1章 静态分析基础技术 6- }; ]& v9 N# R# E+ P" p& K; U
' J; l2 B9 D8 J7 M9 r, V
1.1 反病毒引擎扫描:实用的第一步6
+ }/ ?( C7 n$ t! z" T1.2 哈希值:恶意代码的指纹7
: z. i) F/ u( g; F1.3 查找字符串7
0 B% g! {: C; k8 B/ i5 O5 x& c& k& t1.4 加壳与混淆恶意代码9% e& Y1 M& ?8 R2 U2 m
1.4.1 文件加壳10
5 W1 t& N/ [2 Z7 j" O0 ~0 Q- A% G1.4.2 使用PEiD 检测加壳10
: R9 a1 u+ b( I5 ~6 L1.5 PE 文件格式11
% K6 B. h5 a1 G1.6 链接库与函数12
' @* R6 [+ L+ F$ L1.6.1 静态链接、运行时链接与动态链接121 I5 [1 K7 v5 \3 o
1.6.2 使用Dependency Walker 工具探索动态链接函数13
/ z+ G7 Y  n% }7 F' Y2 S1 x6 _6 B1.6.3 导入函数14
1 F) T. r! ~$ b! J  s$ F# y1 K1.6.4 导出函数15; {0 b. F* d5 o3 {6 q  E' ~
1.7 静态分析技术实践15
  A9 P# B  i7 |' [# g& @1 U1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15: H3 E( F" ?( I; ~. I
1.7.2 PackedProgram.exe:穷途末路18& I  y' w$ P6 @& ]- p/ w. L
1.8 PE 文件头与分节18
( Q2 {' C: O& t3 d: i1.8.1 使用PEview 来分析PE 文件195 y/ o: _5 ?: h4 j& Y; Y
1.8.2 使用Resource Hacker 工具来查看资源节22" ^/ t* z! M3 F. n5 c, i& k
1.8.3 使用其他的PE 文件工具234 v+ X& z7 j' s# w
1.8.4 PE 文件头概述235 D4 y& i7 u$ x: S3 e2 V+ X
1.9 小结24
8 U% }4 B# Z+ `& q$ B1 [5 N: \1.10 实验24
7 h& G6 I$ k( I' C4 D" l/ c" Q1 ^+ d
第2章 在虚拟机中分析恶意代码 270 l& l. H  I. a$ Y: R) Y; Z

5 G. I) d+ G5 P2 k1 g; C2.1 虚拟机的结构27" ]$ A% O/ `/ }8 X
2.2 创建恶意代码分析机28' |# f; y" R4 @' [+ c  Y& W+ q
2.2.1 配置VMware29
& P: M- I8 j) D1 F: N2.2.2 断开网络30
( D$ B, b, D# u( S$ g2.2.3 创建主机模式网络30
  j/ S6 ]/ o+ {" F9 p2.2.4 使用多个虚拟机30$ \$ Z7 M/ H/ p: j3 W; B
2.3 使用恶意代码分析机31
2 m! C% C7 R1 L) U" H. l2.3.1 让恶意代码连接互联网31' E5 Y2 ^$ |3 h  m7 ?  e, V
2.3.2 连接和断开外围设备32- R/ Q3 K0 Z4 D5 c; R
2.3.3 拍摄快照32! q* D& m8 q+ C
2.3.4 从虚拟机传输文件33$ `, \; X2 r* S2 _& |# o
2.4 使用VMware 进行恶意代码分析的风险34
/ @7 d8 k" r/ W5 V( R# K2.5 记录/重放:重复计算机运行轨迹34
6 V# K  N7 \. \% p$ {2.6 小结355 b. n$ O5 y1 b5 }4 W7 Y

" w* J7 ?  h2 z" A; P  N第3章 动态分析基础技术 36

1 J% B/ n4 i7 l$ Y7 N5 P3 m' m9 r- R# c4 m1 p
3.1 沙箱:简便但粗糙的方法36: {$ z, H9 b6 w9 ~- H  E
3.1.1 使用恶意代码沙箱36# P$ L# z4 D) {, T! n; R
3.1.2 沙箱的缺点37' N7 O" H* t* j" p0 B) ~- D# L
3.2 运行恶意代码38' a* H: G% N  @
3.3 进程监视器39
% x- l* S' W. C7 D& q3.3.1 进程监视器的显示409 o% T; _2 d: m  A( q% X
3.3.2 进程监视器中的过滤41
$ s% l3 A6 x) E& }; [8 J. C3.4 使用进程浏览器(Process Explorer)来查看进程43
* k& N0 J& O; x& X5 u: I7 z3.4.1 进程浏览器的显示43
, k. h2 V+ [/ }2 W4 v3.4.2 使用验证选项44
4 n# t" j0 \" d% J3 b3.4.3 比较字符串45; Z5 W$ N+ m' s7 T/ p5 z
3.4.4 使用依赖遍历器(Dependency Walker)45
1 S* }* q. ^7 W6 b% B) X7 B4 e- Q3.4.5 分析恶意文档46/ n2 Z6 y' m3 F0 [7 g
3.5 使用Regshot 来比较注册表快照46# D8 e6 d: @0 n6 ~; k" V
3.6 模拟网络47/ M( }( u+ a; S- k' v) H  s% F
3.6.1 使用ApateDNS47( G! D" H- k; G7 S6 G  X
3.6.2 使用Netcat 进行监视48# \# s( Q+ i! C/ |
3.7 使用Wireshark 进行数据包监听49
# Z8 d5 l' b/ {( o6 v( q( Q" E3.8 使用INetSim51
0 C7 R! H2 B5 q( p5 U8 @+ @3.9 基础动态分析工具实践52' A: W/ X' _9 g: C. v) I
3.10 小结559 ^8 E6 s& p% t8 C
3.11 实验56; f: w* P  H/ Z

/ g7 A# Y) F( {4 k+ O
9 O* P! E- ^2 L/ `第 2 篇 静态分析高级技术篇
% n6 Q: d) ~$ i: K8 F8 R8 w; s  W+ W1 k6 U
第4章 x86 反汇编速成班 60$ e& f% z& X* K, q9 c9 M8 @  r8 o
* F; A' E, w9 v3 z/ P1 T8 I5 C
4.1 抽象层次60
9 t/ Z) @3 ~& W6 ]+ K7 A' f  e; k4.2 逆向工程62
7 U2 Q- }' n' U9 B2 F" j3 ^* T3 G0 [4.3 x86 体系结构62
) `6 a1 Q; j5 |: A3 G9 @4.3.1 内存63' {2 t$ P, }, a, E# A
4.3.2 指令647 y0 b- j* G. ^6 @4 k0 U
4.3.3 操作码和字节序64
# F; e! r4 X& @  d" t& x/ b4.3.4 操作数65
' c1 V! X* q+ v( T; i2 u8 I9 u4.3.5 寄存器65$ s* p4 j8 e% P6 \+ i! V* e! x
4.3.6 简单指令67
3 B7 e! ?3 ^: H' m- s9 ?( D4.3.7 栈70
; A; Q6 e  X. M% b; o2 `4.3.8 条件指令731 s' K, {" ~& J7 Q, [1 T
4.3.9 分支指令73
$ A5 b% R- x( X5 e0 ~4.3.10 重复指令74
5 a  d5 }7 C) A3 F$ e4.3.11 C 语言主函数和偏移76& P, v) }3 A* Y8 T
4.3.12 更多信息:Intel x86 Architecture Manual77: K, W; n8 O3 |0 h. ?0 w
4.4 小结78
' c. V! W: e! @/ |' G8 J! A' |5 Z% g' q, j+ B0 o7 {
第5章 IDA Pro 79
8 Z1 E! O, d3 ?
) |6 a' _! C; O9 K- S$ D& I5.1 加载一个可执行文件79& R: j' o; [1 x6 ~  Z
5.2 IDA Pro 接口81: M1 F7 J* x8 t# H
5.2.1 反汇编窗口模式81& a: z$ @: e1 l0 m1 q& R/ x
5.2.2 对分析有用的窗口83: I* [, y$ {& ]: M0 u
5.2.3 返回到默认视图83
& o) d3 \! U1 ]3 L7 g5.2.4 导航IDA Pro 838 r" ~. n0 e) e8 [
5.2.5 搜索85
( |3 Z1 U  \1 M8 [5.3 使用交叉引用86: I5 z2 U$ z5 c
5.3.1 代码交叉引用87
( E& e2 |3 h/ D" u5.3.2 数据交叉引用886 x9 p) ^) L( O: }3 ~
5.4 分析函数88
1 [" e1 w. y1 u) G+ M% B; L5.5 使用图形选项89$ O8 F' h' c( a. ?, \4 t
5.6 增强反汇编91% u- @2 y; [7 k
5.6.1 重命名位置91
" V" \! {( N; A( r1 S1 G3 b0 t: H- K5.6.2 注释92! B. R# |( n2 j0 |3 F3 v
5.6.3 格式化操作数92
+ \+ J. ]8 e! X8 o8 a5.6.4 使用命名的常量93  s7 O4 f. X1 S4 y2 S
5.6.5 重新定义代码和数据94
2 n" U# h* S9 ?  y9 q* C" R: `5.7 用插件扩展IDA95/ n8 G' V; n! v' |0 u$ c4 K
5.7.1 使用IDC 脚本96
, X# C9 j; R; ~5.7.2 使用IDAPython97: S6 `. A: D  q; I8 N
5.7.3 使用商业插件97
0 {* W7 i7 W+ [, T3 x5.8 小结98
1 g1 A' C0 T! T: a- F9 E8 R  t9 ?5.9 实验98
; G, O! r( Q  `/ L4 g
7 J0 v4 A. |% L, @& D5 |  a% C第6章 识别汇编中的C代码结构 100

5 R* g# b* M# w9 I- I( t8 g9 C( z$ J* X
6.1 全局与局部变量101
3 _! ]  P$ L( o) A, O9 L% v6.2 反汇编算术操作102' j  S8 d& S# X. E% _& a
6.3 识别if 语句104
1 Q6 ^) u* Y5 p6 @6.3.1 用IDA Pro 图形化分析函数105
- O; @" v5 D# K9 d6.3.2 识别嵌套的if 语句106) y$ i9 p" u7 r* }  U
6.4 识别循环107
" r. i- G, H( ?6.4.1 找到for 循环107
$ N. X; m. ~& g1 T, Z0 G5 h) Y* T6.4.2 找到while 循环109! F$ f; c# i  A: t2 g  k+ x' ^
6.5 理解函数调用约定110! F/ ~, o( b7 G3 t) h
6.5.1 cdecl110
8 e3 ~" S, `9 Y1 g5 z0 n6.5.2 stdcall 111; K) F. J0 n+ R- T8 V
6.5.3 fastcall 111
; q: H0 _4 w; m, J6 U6.5.4 压栈与移动 111
5 ^( Q/ K0 _( L: w1 m  t/ }6.6 分析switch 语句112
7 o1 }: Q" K% g3 _9 z/ t6.6.1 If 样式112
1 O# {* J1 ~+ R1 f6.6.2 跳转表114
- O8 X; X+ Y2 ]! }6.7 反汇编数组118/ l& V' W6 T+ [! E
6.8 识别结构体119
9 p* U: v1 v9 r& U6.9 分析链表遍历121
/ F; V6 r: v; G" z8 N" A& R# Z6.10 小结123- N1 a  F8 b6 N8 O
6.11 实验123
( k1 M3 t( |+ M0 E8 d! g
# i' o- E6 F- o2 P: b& f5 @( [第7章 分析恶意Windows程序 126

# P' @1 J% A2 B$ l) s
8 j. i, x5 f) Y7.1 Windows API126; n8 e$ \9 q+ v) A9 H  H% d
7.1.1 类型和匈牙利表达法126: K; i% U3 X2 u; E
7.1.2 句柄127; H) f* c- u+ O- S+ w7 Q  C
7.1.3 文件系统函数127
$ @, ^7 j6 }+ B) r% b8 k7.1.4 特殊文件1283 `6 s  U2 g7 g
7.2 Windows 注册表1292 U* N9 U3 F5 I% N
7.2.1 注册表根键130
" C& K3 I  ]) n! ?7.2.2 Regedit131
& r% x- q- r, Q- W7.2.3 自启动程序131( M+ h( L3 A0 K1 x" `+ W
7.2.4 常用注册表函数131$ D, h, h) J& _* R
7.2.5 练习分析注册表操作代码132
; W1 s% a. H2 O7 @7.2.6 使用.reg 文件的注册表脚本133
2 Z8 `5 n3 Z$ D9 H$ E7.3 网络API133/ ~4 ?8 e: ^( p1 X
7.3.1 伯克利兼容套接字1345 ?' D8 L# y8 s
7.3.2 网络的服务器和客户端134
( ~- z0 X/ ?% C9 Y2 K* J7 \7 V7.3.3 WinINet API 135
6 M/ g9 z; E7 a" q  j, b7.4 跟踪恶意代码的运行136
3 K, g' m$ d* Z; h! e6 O. ^2 @- H7.4.1 DLL136
9 D/ E& U0 W( M1 H* D8 p% z- |/ F7.4.2 进程137, o8 R) ^& m; {. N
7.4.3 线程139
/ G* E' }6 m+ S# M3 F7.4.4 使用互斥量的进程间协作142
& g8 L& e5 S; e! F1 }$ j7.4.5 服务143
, a+ n; E! h2 P' |7.4.6 组件对象模型145
- C( z8 _- w$ W; N7.4.7 异常:当事情出错时147
1 G. Z4 W2 n' ?+ H+ ?( A5 W7.5 内核与用户模式1488 L" u5 Z& c, r3 n+ [0 p6 `
7.6 原生API149
# M: ?5 ~5 r, \7.7 小结151
  n2 N: z4 \8 X! I- E" Z' S7 q7.8 实验151
0 J. @4 S7 a. ?8 ~! J8 ~& j" |2 p3 Y- E" \! b0 Y

. F! H% R- v5 `' e6 @% r第 3 篇 动态分析高级技术篇
' G* S' d+ Z+ @0 u" y
, \0 f" N6 h; \' e  I第8章 动态调试 154

5 Y/ D- s' U+ n9 t
( O) S8 ?. i5 ^1 f& O1 n( `# S/ g8.1 源代码级与汇编级的调试器154: L+ O4 v5 [+ n% P5 S
8.2 内核模式与用户模式调试155
3 L: S8 x$ P- l# k. D$ q5 }$ T4 a- @8.3 使用调试器155
' h! T  k# l' a5 D6 ]8.3.1 单步调试155; u8 z( P. M/ f
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)1569 W' C! L" I5 B: j4 t
8.3.3 用断点暂停执行157
+ K0 U# l. S7 N- U/ ^1 @8.4 异常1610 a) `) W" f! n2 v6 B( x4 S
8.4.1 首次和二次异常处理1629 S. E4 [' H: v! }/ `) p
8.4.2 常见异常1626 {# ]9 S) C2 |* \0 b) H' a, \
8.5 使用调试器修改可执行文件163
) A  C( v9 \9 {+ N$ F8.6 修改可执行程序的实践1633 X3 R& G7 a" A# h
8.7 小结164( w; c9 D1 e8 W+ X0 i/ R/ L# E4 n: ?
; c9 n% s% b/ O! r" J& \
第9 章 OllyDbg 165

: f  J7 }4 q$ w$ {5 ?# I# w6 ~+ `8 \- {' \7 u
9.1 加载恶意代码165) x1 h. x* R: C6 V( {3 Q# a
9.1.1 打开一个可执行文件165
, i; ^9 c! Z9 q0 m9 q6 p6 E# Q6 S9.1.2 附加调试器到一个运行程序166
! ^$ T# u" ]. p- {+ T" T7 y3 l9.2 OllyDbg 的接口167, v9 i7 q+ U4 Q8 `/ K
9.3 内存映射168
& k/ `% F% r, r* M2 K2 q9 O! P9.3.1 基地址重定位1690 [8 {9 q3 A* |& Z/ d
9.4 查看线程和堆栈170. C  m4 C1 l* A
9.5 执行代码171; D  a  x- O. E- ^; w
9.6 断点172
# |4 `7 T4 G) A! n+ f7 Z/ k; Z9.6.1 软件断点173, G( C' e( O8 b3 C% j  u; I  r- \
9.6.2 条件断点174& w0 p4 k2 c" c; H% S
9.6.3 硬件断点175
0 P  ?. _8 n! i9 m7 w, H/ S9.6.4 内存断点1751 D: f% N# `( i! H" f- x& P  X5 h
9.7 加载DLL176" q5 r/ O7 y' D0 [2 o% `
9.8 跟踪1773 @" ^7 @& c, g; u  a
9.8.1 标准回溯跟踪1771 n- @: T* Y" s' D
9.8.2 堆栈调用跟踪178
" g* f# i, y- |* u' _9.8.3 运行跟踪178
1 i' F& v( Y/ v& Z! G9.8.4 跟踪Poison Ivy178
. ~5 }, L$ ^5 P& S9.9 异常处理179
- o+ y" ?3 H+ o, M8 f2 E2 W9.10 修补1801 C! ^# o8 I- W. n5 C3 B" p8 p
9.11 分析shellcode181  v& f/ L! K: N' p8 x0 o& z5 Y
9.12 协助功能182! i2 h5 R3 s3 a$ i0 V# A: j/ H3 _
9.13 插件182
# k$ k# Q  ]2 c/ L6 t9.13.1 OllyDump183
( J0 o$ `1 K. _7 o" h9.13.2 调试器隐藏插件183
+ ~* d7 ?+ g8 Z& {  [0 N; t& H9.13.3 命令行184- B' }  g* [" A  F: L
9.13.4 书签185' ?. p8 x4 U5 x) \
9.14 脚本调试185
3 n: @7 k3 d+ G6 O$ H. ~  h9.15 小结186- R4 d) U! h6 f4 X5 f, L8 Z
9.16 实验187
9 G5 D$ z" K1 M  i; [* v5 N8 J! C0 r7 W
第10章 使用WinDbg 调试内核 189
$ Z3 [( d# L8 S! d3 N" n, }( c; F# S  a/ @2 I- C$ ~
10.1 驱动与内核代码189
  d( e5 l! s! R1 E/ y5 u4 h. x# n6 x$ m10.2 安装内核调试191
- {8 k1 J' ^- s4 f# w6 z: R10.3 使用WinDbg193$ Z  H+ H* K# _  i. B3 _: [) b
10.3.1 从内存中读取194
  k5 {; [9 a- f$ N1 ^* L6 Z# N10.3.2 使用算术操作符194
0 m" n9 E' E2 m+ j10.3.3 设置断点194
: y8 t" r  G0 [, k0 ]4 C10.3.4 列举模块195" ^$ I2 n( W+ `2 ?% i
10.4 微软符号表195
3 N1 X* a: h' b1 [/ Z( I10.4.1 搜索符号195
$ t! d$ V6 x) D0 i. C5 U/ a0 f10.4.2 查看结构信息1960 T# D5 |- Y9 e' e3 F. I" k
10.4.3 配置Windows 符号表1986 C, A/ w. j1 r8 v
10.5 内核调试实践198" L( t# ^, n# H; {" V
10.5.1 用户空间的代码198& u1 j( |0 L) r" U" y. j* |9 I0 t9 F
10.5.2 内核模式的代码2005 Z  \! [* v: ^7 h3 ^9 M: h
10.5.3 查找驱动对象203& U1 m' [" y% Y9 F, W
10.6 Rootkit204
: J& y2 X# j1 U* s% [10.6.1 Rootkit 分析实践205
1 {$ I, j! h$ N10.6.2 中断208: h/ j  W3 A+ d) p3 V
10.7 加载驱动2099 y1 e. V! h; [) P* e3 y
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209! {+ _1 o6 w, z% ]4 b: H
10.9 小结2100 p8 w" t( q9 J7 l* |7 Z8 @! `: h; P
10.10 实验210
$ W; N* U% i3 Y, {$ L% g5 R% E, I4 l4 o; Y) {
% H4 T! z6 f% W$ b9 W
第 4 篇 恶意代码功能篇' |1 J2 m" y2 J
& S: U+ T; H: b* O0 S% O& L
第11章 恶意代码行为 214
. s* X. h& S# ~- F6 t" R; F' r
6 D3 R" B7 I9 w, ^1 S11.1 下载器和启动器214# z. @" N& v0 y' l' B" B
11.2 后门(backdoor)2149 B9 k4 q0 Y0 v/ G
11.2.1 反向shell2157 r7 t, ^5 E+ s4 c8 V0 m
11.2.2 远程控制工具216
. L7 U8 X7 G. t" g' \9 X11.2.3 僵尸网络216! m' H5 z7 o2 I# W& y! O, K' M
11.2.4 远程控制工具与僵尸网络的比较217, X( K9 h. e' p4 B6 B
11.3 登录凭证窃密器217
6 X8 _- ^0 L! s, f, L11.3.1 GINA 拦截217$ e* ^; Q0 c: d3 ^  w
11.3.2 口令哈希转储218; _- ]4 @/ {- ]& ?6 d
11.3.3 击键记录221
! D: |* A8 f# I11.4 存活机制223
; \$ g& ?2 [! m11.4.1 Windows 注册表223
7 l! F3 \# K9 O9 z11.4.2 特洛伊木马化(Trojanized)系统二进制文件2258 P$ w$ c: ?, ]
11.4.3 DLL 加载顺序劫持227
, q/ `7 _" ]7 B( \11.5 提权228# m7 @# s  R- q7 j: t, O1 U* @, [
11.5.1 使用SeDebugPrivilege228
# [9 \" o) o5 m11.6 隐藏它的踪迹——用户态的Rootkit229
4 K# V+ W' v, |( V& u9 e9 n11.6.1 IAT Hook 230& }: O; q: z. g$ P: b* ~9 j7 U
11.6.2 Inline Hook 231
3 h3 m; @( W3 v4 s5 L11.7 小结232
0 E6 C3 u; w4 K8 n11.8 实验232
2 H5 r5 o# y' R7 @) T6 F) q6 J3 E+ t* e( i
第12章 隐蔽的恶意代码启动 234  [0 m5 C5 i6 f- L4 n' M0 s4 f
  @) o9 i7 a6 J2 Q8 Z- m% o" w9 P, p
12.1 启动器(Launcher)2340 R& t2 O8 v5 ^) D1 ]- d
12.2 进程注入234' e/ a4 P9 U. e" Z: _5 O
12.2.1 DLL 注入2354 t. G2 s/ I8 D  _8 a2 F
12.2.2 直接注入237
; Q* _* ^3 x! b3 [* d. y0 F12.3 进程替换2382 R1 X' d& u# v6 F5 ^7 l
12.4 钩子(Hook)注入240
- R7 ~4 V, p; ]) q. h0 Y12.4.1 本地和远程钩子(Hook)240
' D* U( b1 v: Q/ |0 d% O12.4.2 使用钩子的击键记录器241; D0 J; A- n9 n) O& B
12.4.3 使用SetWindowsHookEx 2416 ^$ g& \( l. r5 r  A* Q
12.4.4 目标线程241
: E, ~" E8 q+ b3 Z12.5 Detours 2428 ?, J! s# ~  h, W  i, d0 [! O: ]
12.6 APC 注入243! U- o  d, `: ?, X1 |! g6 P7 e8 Y0 D
12.6.1 用户模式下APC 注入2445 A1 K, z  x- m. U* V# w0 @8 @
12.6.2 内核模式的APC 注入2450 a2 O7 G% c  ?4 t/ H* X
12.7 小结246% Z) i1 Q% v+ r# k
12.8 实验246( p  g2 E$ ~  W6 _

9 l' i* c! N, L第13章 数据加密 248
" ^1 n+ h9 z# o6 h
$ ~! {3 p, R8 Q13.1 分析加密算法的目的248
" i( }- m2 K( R- S+ W2 S# L  ~13.2 简单的加密算法248
/ T6 T2 j4 W5 E: B& w+ S13.2.1 凯撒密码2490 r2 D6 b2 c. E7 G; ^) F
13.2.2 XOR249; v% r: {% ]! @2 M$ \
13.2.3 其他一些简单的加密策略254
0 Z* y/ K( t9 _2 U: D! j13.2.4 Base64255: I/ r( p: {1 J* E: N! J% O/ @
13.3 常见的加密算法258, N' r, \# @$ {: K0 P1 J
13.3.1 识别字符串和导入259
+ O  I( R7 [7 N7 a, K; v, M: o13.3.2 查找加密常量259( C( q. M7 M: N) H3 V
13.3.3 查找高熵值内容261# m3 y) s+ ~8 h1 ~1 I" q$ r. T
13.4 自定义加密262
4 M" }( N9 ^9 J2 C* T13.4.1 识别自定义加密263
/ z0 ]3 c3 J! U( o7 V( j7 O) v0 i13.4.2 攻击者使用自定义加密的优势265% F+ a# ?/ z" E( M% w) p
13.5 解密265
; |8 O+ j! r* T13.5.1 自解密2651 G. S3 Q6 j9 A7 d! B8 S6 H% k
13.5.2 手动执行解密函数266
2 \+ R9 \; k! j: K1 y" c13.5.3 使用通用的解密规范2676 L( z5 G- q- S* j
13.6 小结270
# j' ]) t2 k$ Z& r( X1 m. U2 B' L13.7 实验2714 y4 W: }% s$ X: v
6 P4 U, m/ U- I/ \- S; h
第14章 恶意代码的网络特征273# W" ~" F! [  a. y

. M# Z8 J0 i/ w7 m14.1 网络应对措施273
9 v& g0 G3 Q; `3 o' I7 ]14.1.1 在原始环境中观察恶意代码273" O" r" e# f6 X; B2 }) Q9 S
14.1.2 恶意行为的痕迹274- o3 r/ F2 H' e8 y% ]
14.1.3 OPSEC=操作安全性275" N* Q0 n0 q+ ^1 [# U
14.2 安全地调查在线攻击者275
; L2 [1 b9 ?8 a4 ]* g% `14.2.1 间接性策略275
% S9 c2 f  C6 F7 D0 I+ L! |. U5 N14.2.2 获取IP 地址和域名信息276
0 Z# _( }9 e2 z! Y5 J14.3 基于内容的网络应对措施278
  y! W; e/ b3 U( X* b& h14.3.1 使用Snort 进行入侵检测278: s- A* F" o: J5 s
14.3.2 深入观察279
- R( u0 F8 B# G+ F14.4 结合动态和静态分析技术282! p" y! h6 Y$ U# g- j
14.4.1 过度分析的危险283
$ K3 {8 {# M( p+ }14.4.2 在众目睽睽下隐藏2837 f' n5 t1 B& u0 f
14.4.3 理解周边代码286( t! H5 l; `) _) s& D) ~" A) }
14.4.4 寻找网络操作代码287
9 s& I: A, U% k# _( f* n! X14.4.5 了解网络内容的来源288
$ f0 W. L' F1 w: ^% E7 _14.4.6 硬编码数据 vs. 临时数据2894 ~& g% c& A- @$ f/ U
14.4.7 确定和利用编码步骤289: Y; B: D  M& A! U
14.4.8 创建特征2910 M/ D0 M3 P8 J, b: i1 A) ]& _% ]
14.4.9 分析解析例程292
; j6 ~; o% E$ D) N1 i/ K; y9 p14.4.10 针对多个元素294
7 V6 C: N8 R: ]! Y  v: |) z) o4 q14.5 了解攻击者的意图295
' W9 G* N! X1 G6 ?9 Z# P4 u14.6 小结296& D9 j7 h$ M4 D
14.7 实验296
; n9 g) W+ z( w) O$ C
; x* l) |* {0 Y8 O1 z' F# T4 }& U  p! E$ |! S$ s/ w- f, T
第 5 篇 逆向工程) L; F3 F4 ^2 W& b: I' j

# W9 _& v9 P6 E# Z2 ^. i第15章 对抗反汇编 300
: g8 Z. i  ~  T5 D. N- W
  `3 D6 r: ^) O; G5 u15.1 何谓对抗反汇编技术300
1 [9 E0 }8 u4 I! c5 {7 K! Z) b& D15.2 挫败反汇编算法301) a3 C6 M9 E0 @. k
15.2.1 线性反汇编3025 p; F# q; B) t' \9 O
15.2.2 面向代码流的反汇编303
% g3 N8 O; K/ z& d- H15.3 对抗反汇编技术306
4 M4 V, y1 ^) g5 B% R( M- l15.3.1 相同目标的跳转指令306# k3 L, x8 z6 f
15.3.2 固定条件的跳转指令3077 @/ }% N, S* K
15.3.3 无效的反汇编指令308
4 l0 V# K5 K0 E: Y15.3.4 用IDA Pro 对指令进行NOP替换311: L: v. o2 e/ {/ _  C
15.4 混淆控制流图312
% d1 `1 o5 ]2 [1 \. R  V/ K! T15.4.1 函数指针问题3124 f& `; I: U( ?2 U: P+ J: b! j* r# Y
15.4.2 在IDA Pro 中添加代码的交叉引用313
; v8 t# f! X- o5 q8 _: g3 b# V15.4.3 滥用返回指针313
0 R4 _7 l2 e" q( w; Y- i15.4.4 滥用结构化异常处理315; z3 Q5 B# I+ i: n. t' y
15.5 挫败栈帧分析317  N5 ?) L4 Y+ r# F
15.6 小结320
, L+ v' |  v5 K5 b' y3 `0 g2 q- R15.7 实验320
: t! I1 P1 Z4 w! z- n3 a8 f
8 m' S' l/ Q) N* c: U2 _! [第16章 反调试技术322
3 }3 {/ a2 k4 b' Z
- z/ s$ n' K( N16.1 探测Windows 调试器322
& f$ B1 \. G% r' z3 e% V16.1.1 使用Windows API3222 a. ^: U7 g# l1 h& L
16.1.2 手动检测数据结构324
; ]4 x3 }! A, }16.1.3 系统痕迹检测326
0 o' D2 ^9 t  }: @" `# `16.2 识别调试器的行为327
2 ~# k; v8 q9 m5 A% q  S1 k4 f16.2.1 INT 扫描327
8 G- v! u/ c' F! U16.2.2 执行代码校验和检查328( Z$ F$ g& {2 ^& u; r
16.2.3 时钟检测328
0 h9 @# A! q& ^4 O  p, t16.3 干扰调试器的功能330) M/ M; p" q3 \; [2 w$ i
16.3.1 使用TLS回调330
& O3 M0 ]% `9 q0 S16.3.2 使用异常332
( x: F  h% X! r! w, _. v, x( B& H16.3.3 插入中断333
3 f, G% R$ @% a( F6 Y6 m/ t) ]( G9 d16.4 调试器漏洞334: ?# ]0 n$ Q1 r
16.4.1 PE 头漏洞334- t" O" k7 `! E# E! `  f% i
16.4.2 OutputDebugString漏洞336( C9 w9 o4 @+ m* t7 u
16.5 小结336. s& `  D* w2 y  A0 J8 J
16.6 实验336
$ U& d! A9 O! O" t2 T8 X/ g2 z* h! T5 [
第17章 反虚拟机技术 338% y( r7 a2 V9 f4 s5 |

1 G- o* G: K3 g, C2 l# D1 J6 D17.1 VMware 痕迹338
% J' j# Q; t8 \+ W17.1.1 绕过VMware 痕迹的探测3403 ~/ I/ i6 o9 m: T4 T  I
17.1.2 探测内存痕迹342' W& k! B+ N  A  m& Y  B! T
17.2 查找漏洞指令342. S: h9 A- ~% p+ F$ `1 Z
17.2.1 使用Red Pill 反虚拟机技术343
1 j, Z$ h: b% C1 E& ^' G17.2.2 使用No Pill 技术344! _9 D/ m! O5 U. p; }
17.2.3 查询I/O 通信端口344
' H" \+ p9 i6 a1 ]! \+ b& z5 ~8 N17.2.4 使用str 指令3456 w+ y! s3 y7 Z! o9 y+ g! u+ a
17.2.5 反虚拟机的x86 指令346
0 A( l- i8 O  a1 M9 e  R17.2.6 在IDA Pro 中高亮显示反虚拟机代码3473 R1 S2 T4 s& u% E
17.2.7 使用ScoopyNG347: O7 n8 A: g) q% k
17.3 调整设置348
" P3 g$ W- b( S$ G17.4 虚拟机逃逸349. M; a4 {& {, A3 z
17.5 小结3497 v  a+ {  `: N1 Z& s, g
17.6 实验349' R9 {5 B: p' R5 v% D

3 z5 V7 q9 b( U第18章 加壳与脱壳 352
+ |9 B' h8 T0 V
' E% D2 q. s! f18.1 剖析加壳352  D" K" s. c! ~! Y/ r( }
18.1.1 脱壳存根353+ i0 c" u) D) Y( E/ q( h
18.1.2 加载可执行文件3530 \6 r& f0 M" Y! R! Q
18.1.3 解析导入函数表353: d# n; i" `  L  ~
18.1.4 尾部跳转354
% u4 e& f4 s6 t8 C18.1.5 图示脱壳过程354
7 y" m) k4 Z- j" O18.2 识别加壳程序355
/ \* |# \, p0 q# y7 Y18.2.1 加壳程序的标识355; `  M- s0 Q* S" ]4 y$ F
18.2.2 熵计算356
. X" m9 i7 g. w18.3 脱壳选项356# U$ f5 {4 l$ m& k# |" u+ O: `
18.4 自动脱壳356
% \, R. ]* e+ s& b, }0 l) r# z% b18.5 手动脱壳357! L2 T# Z2 R. A/ l) h- @
18.5.1 使用导入重构器重构导入表358) z* _% c' L8 z- n5 b" Q1 K- [2 q
18.5.2 查找OEP359$ N4 a  G, R* ~# }
18.5.3 手动修复导入表363( _2 b" z" |8 S  X0 t' B
18.6 常见壳的技巧与窍门364
, M) y5 z( p& f9 F' F18.6.1 UPX 364! i( i. u& z+ A8 ^6 R0 U8 |
18.6.2 PECompact 365
  ]3 v" q! B9 E, N18.6.3 ASPack3656 ?8 z- T5 E, m6 G4 s7 ]3 K
18.6.4 Petite 365& c0 J$ e# W" g" W
18.6.5 WinUpack 366+ b' o( p- I9 g& v* C
18.6.6 Themida367
% m: n, `5 V  l( W18.7 不完全脱壳情况下的分析368
8 e) D: [! |' A8 f18.8 加壳DLL 368
; k7 ^% y; A8 @* S# i5 G# s) z  K18.9 小结369' M  A  K. c& H
18.10 实验369! X3 A* u/ A# ^. |

  k) S* s  V: m4 w6 x5 B- z# k4 ?+ k9 z7 A1 i  L9 I3 h9 S
第 6 篇 高级专题
  {( _, t, W2 S, N6 J) R8 j8 [# \. P( P1 n; y' G5 O
第19章 shellcode 分析 372
* ~! N) M; {" j
+ Y. {' z1 A$ ~$ h; P. h) e19.1 加载shellcode 进行分析372# c( z6 \9 A$ `; `! `
19.2 位置无关代码373
  R3 Q! S9 u% n' I8 ]+ [19.3 识别执行位置373
$ O5 Q6 ^, h) {" S19.3.1 使用call/pop 指令3747 B& w; @8 B+ Q
19.3.2 使用fnstenv 指令376
) y+ b/ l2 u6 L3 z# X; [+ s19.4 手动符号解析377. K6 n$ ~. D3 D" \6 n) d
19.4.1 在内存中找到kernel32.dll378
2 K3 r0 P5 i3 g: j# A8 [( W5 Q19.4.2 解析PE 文件导出数据380
/ s) T8 |+ |5 R* U19.4.3 使用散列过的导出符号名382" I3 G) i+ f3 y. n' \: m9 d6 ?% v2 T
19.5 一个完整的Hello World 例子383
# ?7 `( N  ^4 B0 J9 ?- K19.6 shellcode 编码3853 r1 o. Z2 E; G6 W; P
19.7 空指令雪橇3873 w" \' c- V1 w2 \
19.8 找到shellcode387
' Y, y& r4 L! O/ }19.9 小结388' O' e4 h# T0 Z+ a$ @. k# D
19.10 实验389
" a& S) s$ y5 c9 g+ k  ]( B2 E, P  @* n  }! z5 V( u1 A/ B
第20章 C++代码分析 391  @. {2 `4 J3 g) e2 r& D
/ ]9 e' p4 b% g6 W
20.1 面向对象的编程语言3915 F8 E8 |5 X# S8 e; L
20.1.1 this 指针392
# E( q2 _) f! j1 U( Z+ a1 e- q20.1.2 重载与修饰394
* ?- C: K% V7 D& z1 ]20.1.3 继承(Inheritance)和函数重写(Overriding)395
+ ^9 f" e) m5 u! \$ E20.2 虚函数和非虚函数396
  j' n% R' u$ W2 k# q! n20.2.1 虚函数表的使用398) l0 U1 F3 m' w% P" w
20.2.2 识别虚函数表3999 B  F2 _& h  n! s& Z
20.3 创建和销毁对象400
) Z- |0 a- D) b20.4 小结401
8 @  S3 p4 m& ~  o5 Q  n20.5 实验4018 E: l. ?3 r2 p! y- J- F/ `
! j0 g3 f! b7 ~6 w2 {3 T7 W4 p
第21章 64 位恶意代码 403
) Q1 u$ \7 D! m$ K7 d2 m# W2 ~4 V& ?' Y7 K2 x6 a
21.1 为什么需要64 位恶意代码403- b+ F/ N+ C6 A) I& K0 W4 g, W4 J  F
21.2 x64 架构上的差别404
) v- C- L4 {; C6 I* L21.2.1 x64 调用约定和栈使用上的差别406
( o* C- [7 K! Q* \8 F) g21.2.2 64 位异常处理408
2 g% m8 U. N. m9 I2 m21.3 在Windows 64 位上的Windows 32 位408
, J4 _& v- j/ h+ x; q, b21.4 恶意代码功能上的64位提示409+ P9 h' ?0 l8 `' r1 |5 F
21.5 小结410  ]/ A6 \* d7 T* f: Y
21.6 实验410) U. f. z& j$ E& q/ G

9 M" m2 i! i; ~& v- C附录A 常见Windows 函数列表 412
% o7 n+ R) h! j* N0 @3 ^6 r" U0 F! V" J
附录B 流行的恶意代码分析工具列表424* d% Z  D+ |+ _- X- ?# t

& g1 O, o  [4 K3 g0 m/ ?附录C 实验作业参考解答435
) `, I( I4 g* ^" T- Y$ D* L0 b  x% x: D# ~4 P' k
附录D 致青春,基础软件开发的中国故事 691
5 D4 Y4 j. `+ \, h$ s# ^
/ i. s# S0 V2 l( ^附录E Syser 操作入门 695$ ?4 R0 R$ c& k. I* Y8 w0 d- _# z, |& d0 q

# u1 x( h4 W$ x' S0 U* k$ r
" P4 e+ \- T- ]3 p) a6 H
想知道小甲鱼最近在做啥?请访问 -> 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
2 S& E: R# x4 ]1 I8 `什么编程语音写的?
! Y& r. |5 E7 T+ W8 [
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-8 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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