鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

/ U: R- {' V8 _( l. u9 U* s* k1 O2 F# a  O( C0 D
书名:《恶意代码分析实战》
8 _8 D5 X" [$ t5 e1 n, s  }作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)1 U' ~% U6 p0 T9 c1 m" y
译者:诸葛建伟,姜辉,张光凯 ( ?6 H' F- I" m; ^6 M  ~
出版社:电子工业出版社
, W$ l+ H7 m9 a* F) i出版年:2014年4月1日(第1版)
2 {$ h0 Z2 j5 h5 H) s定价:128.00元
4 N. u6 K8 D( B  K( s: B装帧:平装
; r3 h0 X: q6 K  J3 m  VISBN:97871212246839 y7 V* ^; W9 m  Q* Z- K2 L

6 W" d7 q6 |5 r. e0 ]8 I$ |购买链接:
9 a4 R7 n6 g: m: R/ G* G/ ^0 F! [1 u* _2 f/ z4 x8 P

" p6 \2 f0 T, b/ ^- F% }9 R
亚马逊 -> 传送门& T' V) N/ }1 _+ C$ g

: i$ ~: J/ V% l4 Y9 [. s当当网 -> 传送门
3 n% \/ r) w9 q+ E  U0 P6 i$ S3 `" n( n' W
京东 -> 传送门2 m" K4 c* p# H. I
) _- J5 m+ t* \. i
天猫 -> 传送门  m3 j' _1 k# ?# }9 ~( g( V. Q

5 b9 R. m3 k% m" g
% ^' M; f* q5 I. D! k内容简介:
0 I7 s8 K7 |" _+ C8 s! x% o6 g! x/ D' |4 c

1 G, y: y# c+ B- ?
《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。3 s: e' K" C) \; m5 o! F7 G

. E* S8 E& f( Q+ L6 C《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
2 ?$ J8 r6 l+ }! {* }7 r$ P/ Y0 R4 N  i$ Z; R
针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;6 R: t* T5 _% k2 f6 T+ O( w0 S8 o
针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。/ M& z2 X. Q  t) c# i
# y$ U' z" P! X
目录:
9 j. T1 Q( P+ v: ~3 Q: y. F) g7 D" C! V) \& E7 k


- ~% ^3 m8 ?" N4 `: q第0章 恶意代码分析技术入门1
; t1 p2 v! G& v. |( G. i' E
' b+ ^3 {  K5 E! {0.1 恶意代码分析目标1
9 Q$ y' @: }5 X! R# u0.2 恶意代码分析技术27 {, N$ P2 z$ _
0.2.1 静态分析基础技术2
9 |* o# X% m$ v; D" W0.2.2 动态分析基础技术2# h6 C5 N4 O& ^1 F0 W8 }
0.2.3 静态分析高级技术2
) X( N! b5 }  C! n0.2.4 动态分析高级技术28 l6 h5 L. D7 L$ I& X
0.3 恶意代码类型3
+ P& S! V8 `8 S' g% ~# H0.4 恶意代码分析通用规则4
( `9 t( n  t( S3 N# t
3 d: K/ c/ [$ P4 C( b) k) m
$ C; E, ^: ^+ F* z8 q- t% t第 1 篇 静态分析
! `% d9 S- N7 s+ d9 {; T* G7 H5 a+ p$ R; m
第1章 静态分析基础技术 6  Z7 Q$ k# {7 v
4 P  b% S5 y) D, r$ Q9 G
1.1 反病毒引擎扫描:实用的第一步6
0 O2 X4 b/ `' o/ }( x& e$ ^; [; x  }1.2 哈希值:恶意代码的指纹7% K4 M5 l  y7 w/ J
1.3 查找字符串7
/ i, I; w7 d5 n, X! {. ]1.4 加壳与混淆恶意代码9" ?- c+ a. v8 U9 _7 G* h' M. Q
1.4.1 文件加壳10# X1 x# X) X1 T% @; ?: r" Q$ s7 s2 T* M
1.4.2 使用PEiD 检测加壳10
$ J/ K! D% c% V1.5 PE 文件格式119 G: {( Q! o) R! X
1.6 链接库与函数125 r( b6 m+ K) e1 ]8 \
1.6.1 静态链接、运行时链接与动态链接12
1 h  ]2 B& B8 q3 b1.6.2 使用Dependency Walker 工具探索动态链接函数13
1 E) f) g7 w; I6 e- Q- Q% ]  c1.6.3 导入函数14
' s' h8 ^/ v+ u# T" p4 R1.6.4 导出函数15
: ]0 S. D7 x1 ~3 |+ |* t1.7 静态分析技术实践15" M- A$ s7 x; Q: Y& S# S
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件159 q& N: m7 E. r( L) G6 U  B
1.7.2 PackedProgram.exe:穷途末路18
% o" W7 S: o4 n+ ]+ j# U7 t* |4 U$ T1.8 PE 文件头与分节181 d! {. F6 q% ~+ L
1.8.1 使用PEview 来分析PE 文件19) a. r$ \0 A: l/ s5 M
1.8.2 使用Resource Hacker 工具来查看资源节22; |: L! R+ S2 E0 o. q. ~7 V+ t
1.8.3 使用其他的PE 文件工具23+ v: h  J( N8 B) {) N- m
1.8.4 PE 文件头概述23, [6 Q3 J4 Z* b" R$ o
1.9 小结24
, b% [6 }7 Y4 [# n% a# u1.10 实验24
& G! [2 e* w$ _, r7 A/ m
; K9 j/ e, k8 f( ?9 d6 A! t3 H5 Z. t' c第2章 在虚拟机中分析恶意代码 27  e" V) ^) w. S

& T- s) `( ]5 b1 j1 G& T! h2.1 虚拟机的结构27% e& S, Q9 S' _" s  x# R
2.2 创建恶意代码分析机288 U; U5 Y: D1 p# v
2.2.1 配置VMware29( u6 w: |% D* K) D$ z" q
2.2.2 断开网络30
, z4 S" v1 q+ \7 t/ g2.2.3 创建主机模式网络30
' x" e5 I. N1 l" W2 P/ Q1 O2.2.4 使用多个虚拟机30/ i' t4 Y& i4 J& w( V
2.3 使用恶意代码分析机31
2 Q" j7 B$ a+ ?: ~% ]% ?1 F9 H2.3.1 让恶意代码连接互联网31
! S. Q9 h( {. F6 f2.3.2 连接和断开外围设备32) I5 y5 V9 W  N& S, v7 J) E7 K/ J: M: C
2.3.3 拍摄快照32
6 B* v! n( ~: _* O9 C2.3.4 从虚拟机传输文件33# V9 g) b7 `" U' r7 I& o
2.4 使用VMware 进行恶意代码分析的风险34
# O8 B" b, s9 ?* i2.5 记录/重放:重复计算机运行轨迹346 s) k+ v5 ~% h# r) s* ?; e
2.6 小结350 N# q2 H3 y% [# E
) X2 g* `! |7 w6 q
第3章 动态分析基础技术 36

+ D% {; F7 S! r8 ^$ Y* U; G3 e
) h1 ?% k2 U0 \3.1 沙箱:简便但粗糙的方法360 w% o# Y) a3 b4 ?
3.1.1 使用恶意代码沙箱367 i( n) N; Z2 D0 H4 K
3.1.2 沙箱的缺点37
5 f- Z% q& }. B8 \- g7 d3 r3.2 运行恶意代码38
/ b  y: |1 G( k, m# x3.3 进程监视器39' [9 b$ h! Z/ ~
3.3.1 进程监视器的显示40
) Q1 `- B( Y; s% }( W3.3.2 进程监视器中的过滤41+ O! r- j4 d0 t# ]2 r
3.4 使用进程浏览器(Process Explorer)来查看进程43; G6 {1 t# }6 T$ D: B
3.4.1 进程浏览器的显示43
1 T  F5 a& C* F  ~% ~) q% ^) [$ F  T" Y3.4.2 使用验证选项44- o4 @& F- S- C" u
3.4.3 比较字符串45  {4 Q# O4 D. f9 \3 w
3.4.4 使用依赖遍历器(Dependency Walker)45
2 A) W3 ~! z8 ?3.4.5 分析恶意文档46) C; f4 f6 m: L5 `0 X
3.5 使用Regshot 来比较注册表快照46
# x/ v' ^4 K$ p  X& K5 [( \3.6 模拟网络479 u' O) U, J% E& V" T
3.6.1 使用ApateDNS476 r  l9 o; r: q2 H" X; q
3.6.2 使用Netcat 进行监视486 ^  y( G, v9 l: p& h( }/ E
3.7 使用Wireshark 进行数据包监听49
! {# j5 M" ?( M# D) {' s3.8 使用INetSim51
7 G' I! L1 _& W8 z. ~5 }3.9 基础动态分析工具实践52
7 P/ D$ c% D, G! `" C0 \3.10 小结55, }2 z+ |4 N7 I' f0 _% j: C
3.11 实验56
1 U6 |7 ]+ F, }4 h3 X6 ?! B$ r% C% k& ]& W, M3 K8 t0 T: O! v

' j" m/ i2 O% b* {4 Q第 2 篇 静态分析高级技术篇* e8 g/ _/ ?: n; X( d' ^9 e

) f. Q! @# A6 h( f" X" m, w8 G3 q第4章 x86 反汇编速成班 60# v' a3 i" Q8 L5 O

/ t% m7 `' J6 y9 n/ J) m4.1 抽象层次601 ^( |1 `" e5 k$ s: k: M2 y! v
4.2 逆向工程62& E5 r: d! w6 M7 G
4.3 x86 体系结构62
7 H6 \2 d% V8 r- R4.3.1 内存63
0 n  u! F0 r  I( R1 E8 K4.3.2 指令648 b2 ^7 Q3 [8 |7 s7 C) @
4.3.3 操作码和字节序64
$ W! c* S. |! p8 y1 A3 W. z2 p& U4.3.4 操作数65
: E5 X; o6 b& U$ t+ |4.3.5 寄存器65. E  |) Y. E8 {) o! P
4.3.6 简单指令676 l6 Y; v$ ~' N, f% {, j' k
4.3.7 栈702 |- |% y9 L; Z$ B4 K, U$ N
4.3.8 条件指令73
2 M1 |! @; N. Q9 ]! i4.3.9 分支指令73
+ m& l& I$ t8 \% W# `% @4.3.10 重复指令74! u* D2 I2 Y; R: v8 n$ v
4.3.11 C 语言主函数和偏移76
% p" Q" }7 P: g0 k$ f4.3.12 更多信息:Intel x86 Architecture Manual77
3 P/ Q" y! J7 J5 t4.4 小结78
! u& o7 `5 C4 Y- p3 w; Y0 T8 }# N  P# y/ z6 a1 ?" f' u
第5章 IDA Pro 79
7 c& @! J3 b, f& e% K
# m; C% \% Q" G5.1 加载一个可执行文件79/ c' i0 q2 r; Y! `7 b4 {  N; n) P
5.2 IDA Pro 接口81
# P% ]. Q' W0 \7 l, U) z% \5.2.1 反汇编窗口模式810 Y  ]* I) B& x9 C# _0 h# h
5.2.2 对分析有用的窗口83
% u  j' P1 ^$ s2 d* A9 u, q9 Z% E5.2.3 返回到默认视图83
: s# b! T4 A% N" ~5.2.4 导航IDA Pro 83
6 X$ u$ P* q: t9 |5 ]1 }9 a' n& s5.2.5 搜索85
$ B! W7 J+ x& g" \5.3 使用交叉引用86
1 B7 X* s" i1 Y/ \: Q5.3.1 代码交叉引用87. U. X) y0 A# ~. h, W
5.3.2 数据交叉引用88
! z. _! }' f2 C6 i6 X5.4 分析函数88$ P1 e. f$ M; \0 j4 P" O/ Q4 ]
5.5 使用图形选项89
9 t' r9 v) l" H2 \: A+ _, D5.6 增强反汇编915 k1 M7 s7 B; I+ V3 X
5.6.1 重命名位置91
8 @4 V* B9 h! a9 s5.6.2 注释923 m; k0 }& |' J3 n) J# b2 f
5.6.3 格式化操作数92
0 {! n  h6 [! l( }0 h* N( g5.6.4 使用命名的常量93
* X+ p0 S8 g) M5.6.5 重新定义代码和数据94; {5 x/ `7 F7 |" ~
5.7 用插件扩展IDA95% R8 n$ s& r- R! z% p
5.7.1 使用IDC 脚本96
4 ?# ~6 u/ e' W5 Y( L( I5.7.2 使用IDAPython97
" i- m% A' K0 x5.7.3 使用商业插件97
8 |8 ~% U) J9 L& o6 r5.8 小结98
" L7 v2 ^( Y) B% V* [' Z8 F5.9 实验98
9 N. l, w- W7 M6 S4 w% k7 P
  _* x+ X8 ^3 f* w第6章 识别汇编中的C代码结构 100
8 R$ W+ a! ~, Y/ J& @  z4 B( \
+ Y: c3 G& E7 i
6.1 全局与局部变量101
/ _8 M' b* D/ `: i6.2 反汇编算术操作1021 ~8 c: \- i( |; V$ N" l+ Y
6.3 识别if 语句104
* M- P) X+ X/ T# `. g6.3.1 用IDA Pro 图形化分析函数105
* J. Y) i8 g3 m, W3 W& d( B$ X6.3.2 识别嵌套的if 语句106
5 ]0 i( s$ m1 ^- V1 c; E. @& Z6.4 识别循环107$ a6 L: i2 N* Y2 g9 A
6.4.1 找到for 循环107
- ^3 p$ d1 Y. \( N* U6.4.2 找到while 循环109# v2 G8 R2 r: b* P! p+ L
6.5 理解函数调用约定110
" C' r# x# s  N3 c% V4 I6.5.1 cdecl1107 a! J# y: L' B& x! a5 D8 R) D( F
6.5.2 stdcall 111! {" v% m4 c7 F: a4 l) b4 o3 o8 ^. }
6.5.3 fastcall 111
) ~' }; C) p5 i9 |6.5.4 压栈与移动 111
: i1 I& {# n1 W1 @/ P+ j/ O: X6.6 分析switch 语句112+ j4 S! U/ z6 Y8 {) P$ l& D
6.6.1 If 样式112& [/ h. a& Z$ y0 G
6.6.2 跳转表1144 T4 D( M: P9 U/ S9 R/ X
6.7 反汇编数组118
$ s, Z8 A& h% B8 }0 ^3 w+ e9 {# p6.8 识别结构体119
) k* i2 O1 Z; e' i' i6.9 分析链表遍历121
' U/ c. P1 y( e& r6.10 小结123: m- v+ R* d5 Z! x
6.11 实验123
; y. X4 j5 V3 J" O' L5 R# e4 F% I* ]& C; A
第7章 分析恶意Windows程序 126
0 y5 G2 b" s) E. K4 Z
- I& |4 |+ l3 T: C' @
7.1 Windows API1262 q, B, i( O& n8 t& }! W" K
7.1.1 类型和匈牙利表达法126$ g. u8 ^. v; k; T0 I
7.1.2 句柄127( O7 |1 \3 E9 q- E, a
7.1.3 文件系统函数1277 e* A6 o9 P: C, E' k
7.1.4 特殊文件128
( r6 A* c+ e# Y7.2 Windows 注册表129
  M' Y! E% b  K3 k7 C3 `9 U7.2.1 注册表根键1302 T# G: s% u* w  p  s( C2 g+ s
7.2.2 Regedit131
" W& F9 O. }2 }9 D7.2.3 自启动程序131* L& R: F7 {9 R. h
7.2.4 常用注册表函数1318 V9 a5 p! k' @# X: a
7.2.5 练习分析注册表操作代码1326 I$ h, \9 Y. d# V& t. R# R
7.2.6 使用.reg 文件的注册表脚本133) n' s, f" B) m" w+ [
7.3 网络API133
" @- [. D" s+ }. g6 o+ _7.3.1 伯克利兼容套接字134: y3 t  ?; B* O4 z1 |3 n% I
7.3.2 网络的服务器和客户端1346 g5 a* I9 |; ~8 g4 p
7.3.3 WinINet API 135
% J( f# T7 P5 \/ S7.4 跟踪恶意代码的运行136
" s; C, S+ a0 P1 W% P  p7.4.1 DLL136
, d0 @( ~3 U& H7.4.2 进程137) i+ K! d- o- M& W) a3 c; U
7.4.3 线程139
0 G! ~4 G( d. \" p' @( u4 f7.4.4 使用互斥量的进程间协作142' R3 s) R% q( {" m; @( O. x9 @
7.4.5 服务143
6 [1 J% [9 ]  j! q7.4.6 组件对象模型145
, `# h* Q9 k  Q# b0 X* a5 N5 k7.4.7 异常:当事情出错时147
' o, J; t. E9 H/ \2 b8 a$ i7.5 内核与用户模式148; X: @/ [& K# k! T# `
7.6 原生API149; h, H; @, E" A0 i: l0 d, O- B+ M
7.7 小结151
& A, ^% B) K2 h4 H+ o+ z* x7.8 实验151
4 x: `! C! O' g% ^/ O; ^
$ G8 }1 Z5 }2 p  @6 b/ s# \. }) a! J
第 3 篇 动态分析高级技术篇% e4 E0 X6 G% e
) S# D' u) U' D* W
第8章 动态调试 154
! ^: K0 A3 Q+ o2 H- ^2 H

% n# _3 V: w. z/ F" L# P8.1 源代码级与汇编级的调试器154
; i0 k6 d  j1 I7 m8.2 内核模式与用户模式调试155
2 Z& e) Z' X# Y. n" D& C( t8.3 使用调试器155- \# ?$ l# }( {) O; [
8.3.1 单步调试155
9 ?4 y1 Z) n  H1 y: }% I* F8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
- E- G5 ~: x0 \  G9 ?8.3.3 用断点暂停执行157
/ E( l  Y( W" ?% S7 ?8.4 异常1614 J" Y/ `( ]! R5 j5 y# q
8.4.1 首次和二次异常处理1627 Y' H( R6 V6 ]: d
8.4.2 常见异常162
8 ~( Q& m3 v3 P8.5 使用调试器修改可执行文件163+ S* u/ N1 q9 A4 I& h
8.6 修改可执行程序的实践163
: V8 _9 s+ ^, ~5 K& k9 _+ O7 t: d4 E8.7 小结164
$ x& R9 n  L8 P2 u* }3 u& R
& T5 v6 h$ u, r7 g第9 章 OllyDbg 165

4 D/ w' X. n# a3 K! ^4 y2 ~4 ]8 u  {3 q0 C  {% W& A  g
9.1 加载恶意代码1653 X( a# J9 t( u  O7 f% |8 X
9.1.1 打开一个可执行文件165
0 Y: S* {! q7 A% i6 Z+ c) h9 ~9.1.2 附加调试器到一个运行程序166* U3 c. T: H  `& E$ }
9.2 OllyDbg 的接口167- J( W0 v# E) V5 q& o+ [
9.3 内存映射168
7 y# \! n: I! T9 X  O( j3 K9.3.1 基地址重定位169# h6 H- d0 |% F$ ^/ Q
9.4 查看线程和堆栈170& o4 I0 v9 U% y
9.5 执行代码171
; B4 y' B4 l/ e3 R8 g9.6 断点172
, L3 L3 J4 |8 c1 r9.6.1 软件断点173+ t" R9 d3 A. B' v) R/ m9 a
9.6.2 条件断点174. u+ i$ ]& `; o6 r& G5 A$ A) R
9.6.3 硬件断点175
4 ^/ x% Z) L* x. |: T# ]9.6.4 内存断点175
8 V0 t' v$ E) k% H4 z9.7 加载DLL176
* Q6 A5 P% ?2 M# e9.8 跟踪177
: y; C5 K. Z) z: t/ \. `" U/ Z9.8.1 标准回溯跟踪177
% k* v6 F4 I( e1 q- h7 F9.8.2 堆栈调用跟踪1786 Y# D7 t* @6 Z% y5 P, }
9.8.3 运行跟踪178
2 U4 q& h" h' {. F, A9.8.4 跟踪Poison Ivy178! l+ E2 B  J9 W! V, k6 ?) a3 {+ w
9.9 异常处理179
. a% R1 y9 U1 O2 ~- D' f  R' h; r, P9.10 修补1804 r' Q2 ]( ^: Y/ j. _7 D( w
9.11 分析shellcode181+ P0 _. v' I+ k
9.12 协助功能182
% Q+ ^1 |7 ]$ Q& Z7 K! `) h9.13 插件182
6 E7 x0 z1 d% h9.13.1 OllyDump183
" g" B0 I9 x: y: V5 \& j, O$ a9.13.2 调试器隐藏插件183
) ~* ~1 f! Q# G: l" N% e0 n9.13.3 命令行1846 Z4 R7 Z" s8 `; q% w
9.13.4 书签185
4 N# J# L: y8 f9.14 脚本调试185
8 _' F* ~7 [* Y" R6 O4 E9.15 小结186
1 }' H; D7 t- F+ u  E& S, f, I9.16 实验187/ P$ O* f; A! O7 ]! B3 U

3 b+ q) p  p2 A! F第10章 使用WinDbg 调试内核 189  n3 V; [6 h6 `
) u+ S& u7 A6 }
10.1 驱动与内核代码1893 t, }- p/ D* w# G6 J- m
10.2 安装内核调试191
. R) ]9 P9 o7 h" E6 R2 W( ~10.3 使用WinDbg193
& w% Y) z4 Z4 H# {) d# J$ z10.3.1 从内存中读取194
& Q+ T( H/ O4 j$ y  q& `10.3.2 使用算术操作符194# w% w$ Z" e- p% }6 U6 v
10.3.3 设置断点194
0 n. k' u! }$ q  J5 O7 l10.3.4 列举模块195% ^& l+ e! N, S# t! e, l& b
10.4 微软符号表195
5 D: R9 `) Y4 p; _, O10.4.1 搜索符号1956 n' h( m! e) G; t% q( V! x
10.4.2 查看结构信息196
% m5 D. q; H2 E* P+ s7 {) M" A$ S10.4.3 配置Windows 符号表198  l8 z1 R5 J1 G  o4 a
10.5 内核调试实践198) y! I# L+ v9 X" {0 u7 n# k  F
10.5.1 用户空间的代码198
/ a5 J0 V' I3 E' h2 G! C" R10.5.2 内核模式的代码200
  N  D/ x  X. D: ^10.5.3 查找驱动对象203) x# c" ]2 ?1 F) e9 @8 t( Z
10.6 Rootkit2048 k. g; T# W+ m2 }+ z
10.6.1 Rootkit 分析实践2053 e7 ?: E" o0 |% e% E
10.6.2 中断208
( K( K. `8 i1 g" s, U7 e1 B/ @10.7 加载驱动209! K. e+ E* Y# y8 M
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209# `1 e! G3 E( R" w, z
10.9 小结210
+ U: \) x3 E5 Y1 l# N) A. ?2 F10.10 实验210
0 `; Q5 y2 U5 R  Q3 _! r- W. [6 \! C* i+ g
$ q) j  C! S, w  ^6 f4 m. x% b
第 4 篇 恶意代码功能篇- e7 ^. ?* k, z, ?* C0 S8 G0 q+ B
9 m: {$ D- h) h( v: M, N* t$ \
第11章 恶意代码行为 214/ U3 E# p3 L0 @  Y1 i1 H  W
1 {( c: B% F8 c/ f& t+ q9 v1 x& \+ X
11.1 下载器和启动器2149 o5 d( B" @# V  U3 ]. F
11.2 后门(backdoor)214
3 v  d1 \' o1 n1 K11.2.1 反向shell2153 G6 C7 \3 Z. r. V
11.2.2 远程控制工具216
# O9 O. @8 W9 z) N/ w1 X8 S11.2.3 僵尸网络216" h& s& ^/ l2 K/ m" t( [
11.2.4 远程控制工具与僵尸网络的比较217: v" ~5 j- }5 K$ ~8 H
11.3 登录凭证窃密器217
$ J6 E: _% a) L: i/ n11.3.1 GINA 拦截217! E% n, L3 ^" v
11.3.2 口令哈希转储218
; G' v/ F: }' x$ L& {9 v11.3.3 击键记录221
' d) ]3 q0 ^. E) I5 Q11.4 存活机制223
: N5 @* {$ c' ~  v9 G0 ]7 I* J% v11.4.1 Windows 注册表2232 _% z; X' e/ t: K4 {5 _
11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
3 U8 |) J2 B1 v& Z/ }) h11.4.3 DLL 加载顺序劫持227" g7 ^+ {8 j( w1 O  n2 e" Y
11.5 提权2288 Y! l+ F! q! B
11.5.1 使用SeDebugPrivilege228
9 h9 {3 C+ \  V: t2 d9 X% {11.6 隐藏它的踪迹——用户态的Rootkit2290 j7 t8 s- a+ [: L3 P4 R
11.6.1 IAT Hook 230+ X/ \, F, F3 J$ |" F2 J( a
11.6.2 Inline Hook 231
  m9 s0 M4 j* H& M: g8 G$ }9 @& I11.7 小结232
* D8 \2 W$ a7 @% ?+ J11.8 实验2324 c3 U& ~: R6 U) U

2 M( C& a5 C8 W5 q2 S第12章 隐蔽的恶意代码启动 234" T. O! U8 _  b" P+ V
3 T0 `0 s: J' ?' \+ ~6 G& Z
12.1 启动器(Launcher)234
4 t2 Z: v0 M1 P( j1 m2 o12.2 进程注入234
- C5 d  P3 l5 {& V7 Z) P2 F12.2.1 DLL 注入235( z) S& n7 o! q+ A
12.2.2 直接注入2376 w3 y0 ?% r% A1 L- K
12.3 进程替换2389 S5 u0 j' l$ S; v" S
12.4 钩子(Hook)注入240( ~! R+ L  p  O. t2 i9 s
12.4.1 本地和远程钩子(Hook)240
  \2 C6 n3 F* {# N- j12.4.2 使用钩子的击键记录器2419 k: e$ b8 g* b+ P1 ]4 M; o! Q
12.4.3 使用SetWindowsHookEx 241/ U* F- T* p7 ^9 {, I! }
12.4.4 目标线程241
5 C( K- Z0 V# {' `- ~/ O12.5 Detours 242
& E$ n$ B/ ~. G* S12.6 APC 注入243
2 I' c: ^. ~7 L12.6.1 用户模式下APC 注入244
' x6 w* ^% s. _4 l4 v; [12.6.2 内核模式的APC 注入245& s) r+ U; w- W
12.7 小结246
. I9 r) q" U: m' w12.8 实验246
( D# I; h) h' a& \* Z5 `# _3 L$ y/ S. ~6 f6 S$ t+ @; ]9 h
第13章 数据加密 248! ^9 l6 D; a5 G- i3 y
3 B+ c& c' [6 V* O
13.1 分析加密算法的目的248+ ]( l$ n% d- K$ Y5 ]
13.2 简单的加密算法248
3 J4 D4 r% a9 ~* S13.2.1 凯撒密码249- m% k& o# O) W- f
13.2.2 XOR249
! f+ ~& r$ V) C13.2.3 其他一些简单的加密策略254* f* p: c( {5 [! x# H1 Z
13.2.4 Base64255* }4 [4 E. L% K  ]" E
13.3 常见的加密算法258, d% [$ i( q3 R- x5 X' G. [
13.3.1 识别字符串和导入259, k, ]" d% Y$ o/ j. {. b) Y
13.3.2 查找加密常量259
: o0 h6 o4 C% H) A" f# Q& r; ~$ U13.3.3 查找高熵值内容261
2 X, m6 w) K. A# k" P13.4 自定义加密262/ P8 y; [$ I1 z4 i
13.4.1 识别自定义加密263! ^2 n, {4 }/ E" ]
13.4.2 攻击者使用自定义加密的优势265
! g/ x/ _4 l8 h7 O+ n$ O( A13.5 解密265
! }! V' Y% J% o4 i13.5.1 自解密265* }5 c) P( @! E3 {
13.5.2 手动执行解密函数2665 Z2 K2 G' ?) j, O4 E
13.5.3 使用通用的解密规范267- {3 C9 @7 J# s' k; g8 U- }
13.6 小结270
- T6 v5 A4 O2 F. N: S; w0 w1 W13.7 实验271! J3 `# ^& [) ?/ `1 ~; h

+ c0 D1 \8 t" y+ S第14章 恶意代码的网络特征273
2 E! N* Q/ R- h6 ~, T* T; w% w# t# r* f1 W
14.1 网络应对措施273$ {! c/ N( P8 j
14.1.1 在原始环境中观察恶意代码2732 I% j6 C* }( k
14.1.2 恶意行为的痕迹274
# E# b3 u4 @$ i) e) o) u+ y- T/ ~14.1.3 OPSEC=操作安全性275
( w" ~! R$ m+ Q/ Q0 H+ E14.2 安全地调查在线攻击者275
8 w0 W6 c! z9 @7 s14.2.1 间接性策略275/ @( K$ h" _* w+ a7 R' e" [, n
14.2.2 获取IP 地址和域名信息276
2 t  W4 D. j5 o) J: h14.3 基于内容的网络应对措施278. \( V/ u9 [! }! x- }4 e/ [6 n7 p
14.3.1 使用Snort 进行入侵检测278/ U. V6 k$ W5 N0 Q
14.3.2 深入观察279
/ i3 }1 c) N3 I, {14.4 结合动态和静态分析技术282
2 c2 b3 q0 S4 X+ h$ l% Z14.4.1 过度分析的危险2831 T, `0 {) f8 g% r2 K9 b& `
14.4.2 在众目睽睽下隐藏283
! n+ P% |: q( k6 w' \5 g7 f14.4.3 理解周边代码286
+ P5 K7 a( k2 _) K1 v# [9 m* ^14.4.4 寻找网络操作代码2879 f  A$ m4 G+ _! q
14.4.5 了解网络内容的来源288& W1 a8 X. Q; B3 D3 G* Q0 J
14.4.6 硬编码数据 vs. 临时数据289, z8 D9 g2 F7 b; j0 Z7 @& F
14.4.7 确定和利用编码步骤289
+ V4 t/ R7 }! x: V7 ?) E14.4.8 创建特征2915 R- e0 S, f/ c' U8 @
14.4.9 分析解析例程292( U7 a4 a8 J- y. C4 r5 S
14.4.10 针对多个元素294% L. ]  r, Q8 O
14.5 了解攻击者的意图295+ A  _& V! k% M: R4 n
14.6 小结2962 o: z: n+ W. E% a7 z2 |9 ~  a
14.7 实验296
) Z* {/ m( m) J# c* Z# z  z: _9 G1 E' |( Z& N
# A# B, ^: J, Y1 z0 ^* u# k, [
第 5 篇 逆向工程
/ G9 ~- x0 u0 x3 _+ ~3 B+ S' Y( U) j3 }
第15章 对抗反汇编 300
" x# b9 b- ~+ s* ]- _8 [- y7 t
" f1 x* Z9 W: V15.1 何谓对抗反汇编技术300
* @2 n4 h3 n8 ?* R% e( t15.2 挫败反汇编算法301# g; h0 w8 `% B5 v
15.2.1 线性反汇编3024 Q3 J" H5 E1 U& u# ]  d# M
15.2.2 面向代码流的反汇编303
3 m6 K& x# Y: O! X' a15.3 对抗反汇编技术306
4 u# Z! W9 ^4 `- l. M* t' y5 l15.3.1 相同目标的跳转指令306
) m5 M2 i% n4 f2 ]$ I  y9 N; e15.3.2 固定条件的跳转指令3070 U+ s5 ]" ~2 [  x! n  x' j$ H
15.3.3 无效的反汇编指令3084 i% U. a$ f* K
15.3.4 用IDA Pro 对指令进行NOP替换3119 _: [- {5 z" ]; R* G. {
15.4 混淆控制流图312% S1 K/ Q* h; \; y  R1 p) U9 G7 ?
15.4.1 函数指针问题312- s+ P/ Q9 i. ?
15.4.2 在IDA Pro 中添加代码的交叉引用313
% C% ~: U4 ]2 a15.4.3 滥用返回指针313
$ B$ U/ N! F/ H15.4.4 滥用结构化异常处理315/ ^8 M/ h" b. X9 I9 x+ f
15.5 挫败栈帧分析3173 g7 ^# E; w$ B+ P2 ^1 K
15.6 小结320, p& a6 V3 Q# l& f" A  C4 X
15.7 实验320
: b6 E' o  w0 Z; u8 S6 K; i! x  Y" u. K! Y! |6 S
第16章 反调试技术3229 {5 [$ B" J* t1 Y

7 Y3 n. Q7 W* a  S; ~* `16.1 探测Windows 调试器3226 m( y" K, c( n
16.1.1 使用Windows API322
, N( W- g& q# A4 b& C16.1.2 手动检测数据结构324+ l; R  ^8 X3 P* @  |' m. L
16.1.3 系统痕迹检测326
+ y- P% [0 S" H; e2 a" j0 m16.2 识别调试器的行为327
5 d" W- s# b8 G# k0 l( h3 R" X16.2.1 INT 扫描327& N, N; ]' f* ]+ k7 f+ S8 i
16.2.2 执行代码校验和检查328
1 Q# Z, @; [! x2 t& V16.2.3 时钟检测328
% F! u4 i% i" I( {6 V2 s16.3 干扰调试器的功能3302 d8 p3 s4 @- i7 W) N
16.3.1 使用TLS回调330  b% ]+ g$ \3 ~5 }4 C
16.3.2 使用异常3323 D8 k  D2 L( ^, i5 J0 \; V
16.3.3 插入中断333
3 S8 w% A. e% V$ O% {$ d16.4 调试器漏洞334
7 _- r7 {1 Y3 s; C: C( ~16.4.1 PE 头漏洞3344 c0 i) [& l$ r& S1 z8 x) B
16.4.2 OutputDebugString漏洞336! _4 E: ~+ Z9 ]6 B
16.5 小结3364 s, H1 c3 Z+ z7 |0 J
16.6 实验3364 S3 x, r& k' w3 S, J' l( G7 U9 [! X
# x) l9 M1 ~3 i/ C
第17章 反虚拟机技术 338, m6 m1 s8 O5 @! B

$ `* ^5 C8 J6 J: j17.1 VMware 痕迹338
4 R0 a9 f- o* i7 ]0 k, m- x8 |17.1.1 绕过VMware 痕迹的探测340
5 }- p" L& |0 d; p/ I0 T: r$ H17.1.2 探测内存痕迹3428 y( s: |6 s0 t0 M! A7 C/ f
17.2 查找漏洞指令3423 |! L3 ?+ X% _+ d% a
17.2.1 使用Red Pill 反虚拟机技术343
( X# J4 O6 a: y( U) W17.2.2 使用No Pill 技术344
) D; F" A0 f, z17.2.3 查询I/O 通信端口344
3 d' S1 Y9 J! |, b8 C17.2.4 使用str 指令345
2 e; R# j2 u$ L3 W17.2.5 反虚拟机的x86 指令346. T6 O1 M6 q* A7 I
17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
' I% {, {0 ^( X9 J17.2.7 使用ScoopyNG3472 v2 x' m0 [) M9 `) z- Z+ U
17.3 调整设置348
$ @7 U8 K6 C, L' h- b. f17.4 虚拟机逃逸349
9 }0 d' L1 C: S8 f7 Z17.5 小结349& Y: ]" T% B& B+ K
17.6 实验3494 @; x+ G5 [. B5 C( A0 O* S

, P2 B6 }/ ?" f7 N+ X6 ]第18章 加壳与脱壳 352
: n0 G5 W6 M0 A# {, `8 O. l/ j4 U, s5 }
18.1 剖析加壳352$ N) f6 K  b6 }- H) e
18.1.1 脱壳存根353
. v, h$ [6 ]( k4 L. g- T18.1.2 加载可执行文件353
6 z4 i9 o! t# G1 X! p18.1.3 解析导入函数表353$ U5 u  ], z, }$ u+ i  o
18.1.4 尾部跳转354; c* d! n, M( o+ {4 i. D
18.1.5 图示脱壳过程354' W# B7 U9 j2 X$ n: q9 g7 ?7 r
18.2 识别加壳程序355
0 h* e' X+ H0 R18.2.1 加壳程序的标识3554 i  i: {: W+ [/ {
18.2.2 熵计算3567 @7 l* j, p$ P+ F# K5 R. O
18.3 脱壳选项356: ~9 }/ V2 `5 k$ Y
18.4 自动脱壳356
. ?$ L2 x4 d8 B/ d$ a: j18.5 手动脱壳357( |2 P% ]! i1 l6 {
18.5.1 使用导入重构器重构导入表3587 j1 r; ^. q6 ?
18.5.2 查找OEP3594 A  F# M0 u% p  z: N
18.5.3 手动修复导入表363
/ H4 ~9 U! y2 j/ F7 |8 v18.6 常见壳的技巧与窍门364
9 L( P- _8 k, l& N( H  {18.6.1 UPX 364( e/ A2 }* V; v$ d; r
18.6.2 PECompact 365
" o# j; E; G. y" f8 j1 V6 G/ K. E18.6.3 ASPack365+ o  D! c+ c! @
18.6.4 Petite 365
/ |, ?- x- u* ?# B  ?% R1 F4 \18.6.5 WinUpack 366
# t# V& j  q& M+ T/ r* h" m18.6.6 Themida3672 M' ]# v! A" v, E: [4 O- _
18.7 不完全脱壳情况下的分析368
7 w* u; B, C& u2 E- q18.8 加壳DLL 368/ ]( E* y' h! O  C' t& `
18.9 小结369
; j. _* w) ?3 Y' X# z18.10 实验369( n- x/ \2 @# T6 E3 }5 q+ I" h

" _0 o! a  e: w. T) B* J6 h( A+ O7 G
第 6 篇 高级专题
: F* x3 d& c/ J6 L9 q
6 G' h( }2 G  ?# w, k! i第19章 shellcode 分析 372. a, T; c8 I/ E
; i0 H: }- t; a" @# ]1 O( a
19.1 加载shellcode 进行分析372- I% I% ?% u3 Y; ]% N0 }, \
19.2 位置无关代码373
! V$ f- ~/ O9 `( G* [19.3 识别执行位置373
# k7 n+ H. o  D0 a19.3.1 使用call/pop 指令374
$ @; w6 B- N0 {, v2 A6 C5 s" g19.3.2 使用fnstenv 指令376( {4 P# v5 S  S) Z. M
19.4 手动符号解析377
8 u( ]$ G) V6 r8 f* m, c19.4.1 在内存中找到kernel32.dll378% v6 p( a% n5 h' k: Y! K
19.4.2 解析PE 文件导出数据380
: J  ]1 {. U) J3 ~  I19.4.3 使用散列过的导出符号名382
6 }1 y5 o( f9 r! B2 X; L19.5 一个完整的Hello World 例子383
& i6 B2 j2 p& ^5 |6 h4 s/ H- [  f19.6 shellcode 编码385
6 }7 I% C; K. {2 u& e7 M  w  J0 ]19.7 空指令雪橇387
9 p/ L1 [6 x2 I; k19.8 找到shellcode3871 R% P) `/ l% j
19.9 小结388! C# L# Y- q. t: x5 X$ W3 ^& ], V
19.10 实验389" h3 O+ ~$ g/ R8 O+ g
0 i. F9 `# N, z- z8 S
第20章 C++代码分析 391# @! x! m% H6 N+ x3 Q
, j0 }& y" l1 z) J( M
20.1 面向对象的编程语言391
6 x% V( S% j. n1 n& W; [20.1.1 this 指针392
2 v! \7 Y* ]& g, v: P  z: H) n20.1.2 重载与修饰394
$ V3 _3 l, Z( j20.1.3 继承(Inheritance)和函数重写(Overriding)395
$ S4 f0 e. W- P/ r6 p' N6 c20.2 虚函数和非虚函数396
& Z9 S. ?0 V/ z& i% q% [) c20.2.1 虚函数表的使用398
3 S  _+ B* k! r; I& C20.2.2 识别虚函数表399
3 f/ u1 P" {- L9 k2 H6 m( ]- S20.3 创建和销毁对象4007 D3 S% W. s5 j. O  o
20.4 小结401- i$ g- S9 }7 y5 V5 _8 ^
20.5 实验401. ?- U. U/ u% D) H) I$ A

1 q# n: G+ @6 C第21章 64 位恶意代码 403" U) [; s7 K. e1 }

* C+ y5 }0 U: x: q( r) Q% J21.1 为什么需要64 位恶意代码403
2 k) h# @# _  o* y# m9 @3 j9 O21.2 x64 架构上的差别404
/ \( j/ S" [. w! K/ O3 a2 v21.2.1 x64 调用约定和栈使用上的差别4064 l) k) I, \. H2 A& X; E
21.2.2 64 位异常处理4088 y$ y# _: [0 B8 o2 d$ d0 e
21.3 在Windows 64 位上的Windows 32 位4085 m! `# g/ Y: Q8 c% K: P  Z
21.4 恶意代码功能上的64位提示409
/ K5 }' t# V( t# h; Q* I: S21.5 小结410- p& m" U' j2 L  @- j3 k/ X( `) x4 @  F4 U
21.6 实验410+ ?7 J5 \! n# K4 A

* r  s1 V$ `7 s. A5 Z# q& O附录A 常见Windows 函数列表 412
: P" p2 f* N: m; O4 U
2 M6 W  ~8 a3 d  p& B附录B 流行的恶意代码分析工具列表424
$ p5 }# T: _) W: r# u/ K
" J4 x! B1 v% O# v+ A附录C 实验作业参考解答435+ \$ U- y; T7 b" B
, V0 m3 g9 d7 n/ z
附录D 致青春,基础软件开发的中国故事 691
1 Y, C: U2 `( ~2 r
  S' I) |9 M8 |* f3 a附录E Syser 操作入门 695
9 Q" U3 h; B. c, P1 v7 z% t- Y) F: j5 }" a% F+ K, }& l% _- l# B. r

( H5 X! a3 n$ d8 q( g+ 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
/ n+ d9 i9 `+ r  a: X5 Z什么编程语音写的?
7 a* U& ^" u: D2 P5 n* l
什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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-1 23:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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