鱼C论坛

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

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

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

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

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

x
T1jdyKFONcXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
3 h7 z/ o$ E5 k
! x: ~3 U$ D- A7 ^2 @' F; p
书名:《恶意代码分析实战》: R8 p/ L6 J- \
作者:迈克尔·斯科尔斯基 (Michael Sikorski),安德鲁·哈尼克 (Andrew Honig)
# t) a5 \! Q  q- T' O译者:诸葛建伟,姜辉,张光凯   `! l5 k" d" a5 \+ F, ?+ r
出版社:电子工业出版社
: j4 ^/ G! Z' i- m. s" |出版年:2014年4月1日(第1版)
! v. Q0 x- D  X定价:128.00元
$ C5 W" l( `3 s. ~装帧:平装
9 f  b9 g" o2 T7 NISBN:9787121224683
# P  \  t  b; k- e6 ?# y( z3 z( Y; K0 P* v9 s: i* M
购买链接:
5 |9 V; B4 x! E9 S' v+ B/ T& A

# g2 a1 q6 ^$ H7 x
亚马逊 -> 传送门: p' E$ Q7 |5 o& ^  h" U

0 d6 R" R. D( C3 B当当网 -> 传送门+ P7 R& Z2 P. R" b$ D

% S! j. q9 `  k京东 -> 传送门! ~% }8 o, _; m/ Z) t

& r' e6 E" X7 E( m: q2 ?& F天猫 -> 传送门/ s, ^% ?' E$ `; y1 \# k; C% c

) S$ e* @" v, A( E' s+ a9 F- S1 O1 k- P
内容简介:% H9 g9 a. D/ Y+ [" _4 O! H

0 k: e( U0 Y/ j" p" A) d

  U( u8 |4 V% D- F, n《恶意代码分析实战》是业内公认的迄今为止最权威的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。" A# w0 @  t% ^6 q6 G5 F
- ~7 h$ w: g1 n, T, |  y, v, w
《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含了所有用作案例的恶意代码样本,提供了丰富、安全的学习环境。
; T! `* V6 l+ |2 d7 d& K
" C8 p4 o5 k$ g# ]针对初学者:本书的技术内容、实验作业可以帮你渐入佳境;
& i9 w3 g2 F8 U6 F4 d5 V针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。8 B5 [0 Z' M8 e. i1 G5 [
  k. m  s1 K1 I& m) J+ d
目录:
8 X& s9 ^  w4 E* l& M$ s9 O* j
& |5 a  r- b& O0 u9 S& @9 N

" W; x4 H8 y. D0 T2 P) g第0章 恶意代码分析技术入门1
0 E2 {; a- u- I: q* ^( c( r
! ~" [2 i* {7 |1 c, I# G0.1 恶意代码分析目标1+ m+ ]7 g! o% [: I' b  B
0.2 恶意代码分析技术2
! e0 E5 T3 M7 {0.2.1 静态分析基础技术2
: B0 E2 s' \% {9 y6 R0 O# B. L8 s: `0.2.2 动态分析基础技术29 S4 j( W0 G3 k$ R
0.2.3 静态分析高级技术2
% h! b0 Q* a; G* ~& f) Q( h: P# O5 S0.2.4 动态分析高级技术2) Q1 U, s3 J' J4 I4 [
0.3 恶意代码类型3
. ^" o, W0 E6 g2 l$ e) y' J0.4 恶意代码分析通用规则4
5 Y1 Z' y9 E/ x5 \7 K  Z7 r6 E+ F& p+ T. c" ]8 g) |6 }
" T( k- }7 @; ?8 ]
第 1 篇 静态分析
/ C6 y# W* V4 y2 s  |
& s4 M& J% h2 A6 i8 ?第1章 静态分析基础技术 6# \9 P- q& f+ R3 l/ n. M2 @

8 o; q( R" P$ J( ^1.1 反病毒引擎扫描:实用的第一步6
- N) a( q4 {2 t2 A4 c- m) |/ N1.2 哈希值:恶意代码的指纹7
2 `: \: A' m* m2 O5 [, ~$ l1.3 查找字符串7. E. F& |+ A( P" N# A
1.4 加壳与混淆恶意代码93 e1 [( p; V  w" {. K+ X5 T
1.4.1 文件加壳10# D+ o8 b3 z% u
1.4.2 使用PEiD 检测加壳10# ?* s. }( A6 }0 y! c
1.5 PE 文件格式11, x5 y" t) j) V% ]6 s
1.6 链接库与函数12( G7 U( o! Y9 s' C
1.6.1 静态链接、运行时链接与动态链接12
4 V' ]8 w) g  c: s+ d1.6.2 使用Dependency Walker 工具探索动态链接函数138 A) r  }( X/ A: ~. p" }: Y/ r
1.6.3 导入函数14
' H* C) o$ z& y- Q9 y1.6.4 导出函数15& X" Q' l$ y; C0 {$ ~' R
1.7 静态分析技术实践157 f7 G( _+ S  `7 \, v8 A+ S6 J
1.7.1 PotentialKeylogger.exe:一个未加壳的可执行文件15( W) o# Z# W/ c+ C
1.7.2 PackedProgram.exe:穷途末路184 h+ I$ v% ~$ h% E& G
1.8 PE 文件头与分节18: Y! a& Q1 @$ D; B4 [* b
1.8.1 使用PEview 来分析PE 文件19
) v: G8 K; x4 p1 x2 y1.8.2 使用Resource Hacker 工具来查看资源节22
3 y* s: k4 h" ]. d. O4 i1.8.3 使用其他的PE 文件工具23# j+ d( \( `3 D  ?
1.8.4 PE 文件头概述236 [. ~6 c5 k  _  j# W: R; J
1.9 小结24
# V  o2 }6 J6 A9 u# K6 \) Q1.10 实验24. @" e7 O, u  J# l4 v
- x  m: x2 L% [8 h
第2章 在虚拟机中分析恶意代码 27
! h$ ~" }% ^# w+ s) X) Y# a
% J) V) _8 r9 l2.1 虚拟机的结构27+ J. G0 G* F, L3 G( I
2.2 创建恶意代码分析机28
$ r/ q7 U; N0 k, u- m; d2.2.1 配置VMware295 T5 A) l& @1 [
2.2.2 断开网络30
; [% L: S: a$ z  S7 O0 Y2 b2.2.3 创建主机模式网络308 Y$ L" j! D  y- E' h" s8 I
2.2.4 使用多个虚拟机30
5 p4 n) `. S$ M, C1 c0 x2.3 使用恶意代码分析机310 f) W' M3 Q* ^+ d$ r" v3 Q/ z/ d+ @
2.3.1 让恶意代码连接互联网31
! H' A% b& g( ], T; |2.3.2 连接和断开外围设备32
. r1 K. o2 w" B/ e2.3.3 拍摄快照32
0 y7 P! Z& G2 q/ c2.3.4 从虚拟机传输文件33' }1 P( W- I' s+ r0 \; `
2.4 使用VMware 进行恶意代码分析的风险347 v# V) W  C7 g
2.5 记录/重放:重复计算机运行轨迹34
0 n5 |" I2 }0 {7 f  D% U2.6 小结35
: w7 R$ v# E1 M; ~5 Z' s
6 |" I. T( N# B5 {6 H第3章 动态分析基础技术 36
1 J8 o6 M4 C- K9 u8 q# k: Y4 w0 s7 X

: u2 T1 Y- ?2 J: T( R3.1 沙箱:简便但粗糙的方法36
4 h0 T2 g$ g0 J3.1.1 使用恶意代码沙箱368 t, i. M9 w3 }" O8 m; o) f6 `
3.1.2 沙箱的缺点37
; k; u$ n! X9 o. p! p# }0 q3.2 运行恶意代码38
! ]/ c  h# `% g3.3 进程监视器39
+ |, b* E0 N" ^+ q3.3.1 进程监视器的显示40
& I% l9 o- Y6 h3.3.2 进程监视器中的过滤41+ F$ o( a% G5 y4 ^
3.4 使用进程浏览器(Process Explorer)来查看进程43) |  w5 ]. x+ B, \% b7 `% _
3.4.1 进程浏览器的显示43
6 v" G8 R) ?. v- c2 g/ h# z# `3.4.2 使用验证选项44
9 D6 t' c! G+ }9 d5 V8 S% `$ {3.4.3 比较字符串45
1 s1 u0 E: {: K* \; }& X3 s3.4.4 使用依赖遍历器(Dependency Walker)45
& z( _5 r8 N4 c5 T3.4.5 分析恶意文档46
+ ^/ R- F& z% x+ i. a3.5 使用Regshot 来比较注册表快照46
/ |/ q9 K0 {- s. V: s3 k3.6 模拟网络47  f" k8 W8 f. l1 `0 g! U, ?
3.6.1 使用ApateDNS47
# Q3 U) e+ ]! p6 X+ w- {4 r3.6.2 使用Netcat 进行监视48
9 ^1 a# I) h4 Y0 V: ?4 o* G- m3.7 使用Wireshark 进行数据包监听49
- `4 s/ A% T9 L: g6 \+ s+ _3.8 使用INetSim51
' k3 H" E, U' r5 C3.9 基础动态分析工具实践52* Z& M+ W1 D* |* b# l+ Z( C  H
3.10 小结55, P! j# R/ K' A1 E3 y
3.11 实验56$ ?( A# T& J( K8 p. Q

& ?2 y1 T/ A9 A3 ?: {) u$ y1 [  R
" J) i# `2 _$ F- Y7 P; P9 f第 2 篇 静态分析高级技术篇* G& N% K. a* h; w. f2 u9 {! A9 _5 b
$ k4 J- v0 _6 H' a3 a9 S5 {
第4章 x86 反汇编速成班 608 `: j- ^2 U6 m

( K9 {3 |, O+ L6 i8 d) B  p  t4.1 抽象层次60
3 k$ o/ w# h$ |! I5 P  u4.2 逆向工程629 _, D3 N" H* N0 s9 i
4.3 x86 体系结构62
8 Y; _9 u4 l- h2 h+ m4.3.1 内存63
! O/ j3 K% S* ?% i; W4.3.2 指令64) D+ n% L! g& L4 Z, }8 W1 n/ k
4.3.3 操作码和字节序64
! Q7 f; a' t0 `  T7 m& I3 y6 M0 [6 t4.3.4 操作数65
/ [+ ^1 Q6 f$ x/ r: v4.3.5 寄存器65
' r7 l) y( E! |4.3.6 简单指令67/ T% A, m; u1 y7 F5 z' R
4.3.7 栈70: N, \+ Q( D9 E$ J. ?8 {2 [9 M! C
4.3.8 条件指令730 C$ o9 X! ~2 S
4.3.9 分支指令73# T( M% p! K+ v/ F! o5 t' r( F  E
4.3.10 重复指令74
' Q  |; v% p' ?3 s# `% M' i0 ]4.3.11 C 语言主函数和偏移76) @  i$ J4 f- ?3 k5 T
4.3.12 更多信息:Intel x86 Architecture Manual77# n: a1 }+ d4 ^" Y1 G
4.4 小结78
0 o6 n' c6 @+ h8 P7 j& m
' b2 A) [1 {6 O. A' |+ E3 b, R第5章 IDA Pro 79
- V+ m* g  K+ F1 B; g5 h/ v7 ~
  Y8 G! L; l  x8 O5.1 加载一个可执行文件793 o/ |2 A! f' Z; ~# `
5.2 IDA Pro 接口81
1 V1 f7 i! e# e5.2.1 反汇编窗口模式81  t5 L( Q% `1 l% v3 K5 ?7 t
5.2.2 对分析有用的窗口83
3 G4 Y3 |" ^3 y# X9 t5.2.3 返回到默认视图83
( B) Q+ S/ L, L5 U5.2.4 导航IDA Pro 83, O! Q) O, d9 P
5.2.5 搜索85
6 ^( A9 m1 W8 i5.3 使用交叉引用86
: ]3 w3 A4 E5 y* b# B5.3.1 代码交叉引用87, [7 \8 D0 v- K  M3 F" `
5.3.2 数据交叉引用885 E8 B$ U( F$ r, [
5.4 分析函数88
" X- L( A. A: D; A/ i5.5 使用图形选项89/ ^1 [& u7 r* ]% E7 {3 j: d
5.6 增强反汇编91+ T% _) A3 [0 V9 ~7 H
5.6.1 重命名位置918 ?3 L  ^1 ?- f
5.6.2 注释92! `& B. H+ r+ p; s" d5 N2 P
5.6.3 格式化操作数92
7 R4 K4 j' r% i( I5.6.4 使用命名的常量935 r9 W9 x  z) B9 @
5.6.5 重新定义代码和数据94! Y1 E7 U1 c% o/ d8 _
5.7 用插件扩展IDA954 j7 ~# \- H& L) l/ x7 A$ g
5.7.1 使用IDC 脚本96! l, s$ L% x1 F( u$ }6 W! r4 r, E
5.7.2 使用IDAPython97( d$ Q- D4 j8 I; A- {1 o" b
5.7.3 使用商业插件97: b8 B- o( m& T( H
5.8 小结98
% j0 r; d. b' v3 C; _" y5.9 实验98
5 K1 e' t7 w9 G3 g1 b1 f( M5 b& o
$ N" p1 [' r2 @1 B) B第6章 识别汇编中的C代码结构 100
9 }% N0 h& [. @; @' K  O! ], |5 r

, t& r% ]; `% w2 q6.1 全局与局部变量101
# i9 d% h& E+ M* n4 B6.2 反汇编算术操作102
& f/ e; W* c; j2 }& _% M- U, s6.3 识别if 语句104
7 j5 v/ j1 f- Q1 [$ _6.3.1 用IDA Pro 图形化分析函数1056 R/ v6 V: d5 G1 C& I3 j0 U0 {
6.3.2 识别嵌套的if 语句106- N* s1 _5 Y1 r, O$ J) C
6.4 识别循环107, r& N+ A/ P% c
6.4.1 找到for 循环1072 e7 `  U" r6 e( V
6.4.2 找到while 循环109
5 t/ v( T4 F. F& Y  K8 Y6.5 理解函数调用约定110
5 ~6 n; `7 t4 B0 a( E) ^) N6.5.1 cdecl110
% Y. z$ e7 s" n6.5.2 stdcall 111
, o6 X  W- u! O. K6.5.3 fastcall 111
: P, {; r/ W' N$ [6.5.4 压栈与移动 111
3 n& N, {& r' i. l+ f% c6 P6.6 分析switch 语句112$ R# C: J5 Q+ c# U, I0 T
6.6.1 If 样式1127 e3 f# m$ g3 B9 f& l: Q( v
6.6.2 跳转表114# T5 I9 t; v) D  V8 g9 ~6 u
6.7 反汇编数组118
) t* S7 b0 N% {3 Y; z# Y8 F6.8 识别结构体119
1 h' Y4 I3 o' b/ c5 t6.9 分析链表遍历121. e3 T8 c; @7 v  G0 u: A1 A( ~
6.10 小结123
  l$ ?  O5 x! z! {6.11 实验123
- h& `- U9 [* ?0 t( ^! i* W9 r: z$ K1 k5 d* V/ }+ H
第7章 分析恶意Windows程序 126

5 L- S' g! F+ Y/ j! B1 z
+ l, o' `& K; ?8 B) M, v* e7.1 Windows API1268 g; i0 b; J% w; I
7.1.1 类型和匈牙利表达法126/ t  H$ x. d$ z. H5 g
7.1.2 句柄127
# A) q2 X+ x" v& }' u* C7.1.3 文件系统函数1271 p, C- u' P  ?" ]
7.1.4 特殊文件128
  f8 x2 Q8 i1 S" ?3 v: O9 m9 z7.2 Windows 注册表1296 S8 k0 T& M& t
7.2.1 注册表根键130
1 ^) v/ g2 S8 y( }# U7.2.2 Regedit131
: K( z/ v0 C# v; f+ L7.2.3 自启动程序131
" O9 {/ ]& s. k* p% R. w7.2.4 常用注册表函数131
2 s5 ^% ?, C5 a% e3 i( u2 [7.2.5 练习分析注册表操作代码132' @; f8 X& A. q* @5 @# f
7.2.6 使用.reg 文件的注册表脚本133
& N  a4 u7 S9 U+ c; p7.3 网络API1334 D( g- C1 P" V" V* g5 ]# C
7.3.1 伯克利兼容套接字134
1 e  g; V' J- l* F7.3.2 网络的服务器和客户端134
4 M9 d, }; [" L- Y4 @* p; I7.3.3 WinINet API 135
% H' I" B3 ^8 u3 {3 J2 A% c# }, S" h7.4 跟踪恶意代码的运行136% F% B- h4 V' ^" G0 \' h7 E# _
7.4.1 DLL136
! H% x; x) u) W; \& q* ]! [7.4.2 进程137
  P, |/ }6 a5 I# e) V$ _# Y. s7.4.3 线程139
2 Z1 h4 U/ F# G5 s/ R  G! ?/ `7.4.4 使用互斥量的进程间协作142
$ G1 \6 C3 }& F7 H* E7.4.5 服务143; A. r& }* m/ L. t) t3 ?3 I7 s
7.4.6 组件对象模型145
$ y$ Q* L# @: ~: B7.4.7 异常:当事情出错时147
1 P- I/ E+ `  P* G7.5 内核与用户模式148
7 M7 o* u; M: R7.6 原生API149
4 l! G  d1 b% i% r: v. l7.7 小结151" A' E7 @4 P3 e8 `
7.8 实验151
9 z" }* J+ \9 R# ?# j) P+ B( K7 R* `3 _1 O
. W; M: u  m2 q
第 3 篇 动态分析高级技术篇. c( e6 P: X( Y% v

& j. S2 q) Y( i. _7 p第8章 动态调试 154
" F+ g: M/ j) p5 e
  N* N4 V+ O' K# q: L
8.1 源代码级与汇编级的调试器1545 _! v0 G! w5 I8 D0 W
8.2 内核模式与用户模式调试155
2 q% W0 [' L& o8.3 使用调试器155; g& J$ \8 m: \& [  T% M, Z
8.3.1 单步调试155; P1 ~: G# c* _. ]2 V
8.3.2 单步跳过(Stepping-Over)和单步跳入(Stepping-Into)156
+ M# d& j# t* x3 i6 \/ d! M1 K8.3.3 用断点暂停执行157) I9 W+ }% ?# R: l( k- m; n5 f
8.4 异常161
) n+ G$ D. k. A' t0 U) b8.4.1 首次和二次异常处理162
) \8 v- A1 S+ A; j8.4.2 常见异常162
9 @; f9 U: H4 v" @5 s0 w' z7 E: O7 I8.5 使用调试器修改可执行文件163
+ N$ O/ E6 F+ c4 {: N  o; A8.6 修改可执行程序的实践163& r0 A% K" E0 z% C3 C. w6 ~
8.7 小结164
+ T7 N% b, ^6 q5 p7 R0 t- a6 Q0 E2 I! \7 e* ~/ W- e! i
第9 章 OllyDbg 165
& h# A, m5 T! i+ [
' V1 P, c: q$ _. z% x2 B, r
9.1 加载恶意代码165) a' r) e3 ?* D# l
9.1.1 打开一个可执行文件1657 U" e: K; K% @5 n2 b' w
9.1.2 附加调试器到一个运行程序166/ D$ K2 M) j" E/ M) _
9.2 OllyDbg 的接口1675 c- t. w. I; J, v
9.3 内存映射168
9 D- c% E9 J% s) |  w# Z1 p* T' [# F* M9.3.1 基地址重定位169
  P' S: w; Z' U+ S+ W2 k: Y( `9.4 查看线程和堆栈1700 y0 l3 r  t, t6 C0 t$ X( W# L
9.5 执行代码1711 J1 K" Q. B2 q5 H. O* V7 H% k
9.6 断点172
/ y+ l2 l. W: T% Q- l# g& P9.6.1 软件断点173/ D5 u8 z6 G( J7 W2 c
9.6.2 条件断点174% B' X. f+ A& ?& ?5 q
9.6.3 硬件断点175
( l+ {' Z1 W% u! ~1 A) U7 q& _! A) S9.6.4 内存断点175
! W5 F( b( z7 H( Q% b9.7 加载DLL1769 l: r5 R# ~% }: H' [
9.8 跟踪177
3 ~0 K" X* E5 ]# m- N7 O9.8.1 标准回溯跟踪177
8 L" R$ G4 S% r3 E' K8 ]& o- I9.8.2 堆栈调用跟踪178
. X" m. F4 L/ i0 A3 ]! J! Q9.8.3 运行跟踪178
7 s: p2 }/ m2 e4 D9.8.4 跟踪Poison Ivy178
9 v! B4 K3 \& C- t9.9 异常处理179
* w" a; X+ r9 {, s9.10 修补180
) p8 p' ]! D( a9.11 分析shellcode181
. }1 [& ?1 u+ V2 }9.12 协助功能1820 H& m" e" W! b" s/ T
9.13 插件182
; ?  [% ~5 ~% N6 i/ `5 P8 N9.13.1 OllyDump1835 N& w# v/ w: B8 m
9.13.2 调试器隐藏插件183
/ E2 ]* s, n$ A, G9.13.3 命令行1848 Y. _) t/ O/ A: i1 o, ^: @0 l
9.13.4 书签185& ?- a) h5 ~- v+ ~+ t' l1 r
9.14 脚本调试1851 a' ^* v! D  P5 M3 b" \) `
9.15 小结186
: W6 G/ G+ r  a& A9 g9.16 实验187
& z# S; E! A1 |" y5 ~" d$ J; j1 O/ c8 C* l9 x
第10章 使用WinDbg 调试内核 189; P( T# W" S" q: f

/ |2 U- }6 c9 I- ]: k10.1 驱动与内核代码189) y" S! u2 ^/ U5 X
10.2 安装内核调试191
4 \3 I1 m2 v! U% `10.3 使用WinDbg193& Z: n3 j5 v- U( m8 e$ U
10.3.1 从内存中读取194
8 @1 s' N/ M! r. ]' a  f10.3.2 使用算术操作符194" H3 f' ?1 y/ Y/ [! q" o
10.3.3 设置断点194
! }- f: i9 j6 X, ?! i- E10.3.4 列举模块195! A$ ?4 \. R8 K- t
10.4 微软符号表195
0 m6 ^& n1 ~% H$ P; J$ F10.4.1 搜索符号195
: G( B4 [  R+ b9 W8 \3 `- X10.4.2 查看结构信息196
" i1 {. S! j" X8 q1 b- f10.4.3 配置Windows 符号表198
0 e$ _" N0 Z& X6 r0 V10.5 内核调试实践198
3 ^* O2 p9 Y$ S5 i  p10.5.1 用户空间的代码198
( V$ V% q- Z* H( {- _6 G10.5.2 内核模式的代码200. {, a! }" q0 }9 I( l
10.5.3 查找驱动对象203) L" d$ i7 p; \3 R
10.6 Rootkit204
- L" P: H' D, ]$ X1 q10.6.1 Rootkit 分析实践205
! n  F! t# U9 [( L+ K10.6.2 中断2080 E. f, T( V! ^' y
10.7 加载驱动209- K# R/ U# K% B6 Y3 @( w) B
10.8 Windows Vista、Windows 7 和x64 版本的内核问题209/ i) V, p- K. _3 A; m1 h
10.9 小结210+ F9 ~1 j; ?+ U3 [6 g. C1 ]) Y& I
10.10 实验210
) f. Q: U0 g1 ?  W- z8 B
. I) }, I; d. f6 L  u* t  g7 u* t$ ^7 a0 [; d
第 4 篇 恶意代码功能篇& d% U. Y, P4 g0 t* }+ z: r. m. Y
! A9 o( k% n( h0 i7 `# a
第11章 恶意代码行为 214/ N4 N3 c) E( j; V3 G

/ E7 ~# c* N- }0 ~4 ~% ?( A11.1 下载器和启动器214
  g6 {4 i$ h2 x* a" k7 Z11.2 后门(backdoor)214
# S, q4 c( m; s% K' c/ X11.2.1 反向shell215
! k8 l9 z, A2 Y11.2.2 远程控制工具216$ P1 m) z! I# E0 {5 L
11.2.3 僵尸网络216
' U$ E! u/ L9 Q2 u! K11.2.4 远程控制工具与僵尸网络的比较217& Q  w( _. |7 d5 b, H( R7 M
11.3 登录凭证窃密器217
* K4 R0 S. [: J; h  g( L2 K1 ?; f11.3.1 GINA 拦截217+ [% _* T8 d, y3 H. \
11.3.2 口令哈希转储218
) j6 t  G; a$ U- t- }11.3.3 击键记录221
  @4 E7 F0 V- Q/ z$ G, U' Y  {# d11.4 存活机制223
/ x/ B+ U+ J* B7 F0 i11.4.1 Windows 注册表223
7 M% U5 A# w* d3 u$ y5 r11.4.2 特洛伊木马化(Trojanized)系统二进制文件225
: }2 Y. H/ W5 }8 i' \, O11.4.3 DLL 加载顺序劫持227& }! `- L+ _8 B6 J  K& a
11.5 提权228' i5 U6 \9 y5 V9 G6 L  z
11.5.1 使用SeDebugPrivilege228
/ S; Y+ R1 D0 U' ?9 r' Z* n$ Q11.6 隐藏它的踪迹——用户态的Rootkit229
: l/ T* m9 G. H3 Y' i9 ?0 v1 Q8 O11.6.1 IAT Hook 2304 _* n3 H$ L$ }0 h
11.6.2 Inline Hook 231
  v& R: n6 U/ `) A4 S/ e, s' \5 t11.7 小结232
  p9 l+ I7 k# D: J3 g4 v11.8 实验232- G( f) R, R/ U4 A

* L$ `$ Z+ p- Q& Y# j第12章 隐蔽的恶意代码启动 234
; c. i7 l2 `6 B; f7 F6 X* G6 Z
$ v$ u7 N5 A% i. ^4 b12.1 启动器(Launcher)234
# n( h7 ~# b% y% G8 y  q12.2 进程注入2344 c+ y5 E: u" |9 s0 B4 [- a
12.2.1 DLL 注入2354 E! _5 h$ b" G: R$ Q
12.2.2 直接注入237
/ c: N% J: D* \+ V8 d12.3 进程替换238
! m9 n/ v/ |# j2 P12.4 钩子(Hook)注入240
* K( |( L9 q5 W$ I: W+ f( G12.4.1 本地和远程钩子(Hook)240
4 u$ L6 k/ ]! z8 g9 F12.4.2 使用钩子的击键记录器241$ ]7 r1 h$ ]) e$ p
12.4.3 使用SetWindowsHookEx 241$ n( I% E3 T. e
12.4.4 目标线程241
/ o; a* _4 d  I  l  s. C2 R  ]! G12.5 Detours 242
1 P! b/ Y* a3 h3 m" J3 H" F* j12.6 APC 注入243# c# J# F& N9 {
12.6.1 用户模式下APC 注入244
% s; s' d6 y* u% V' a12.6.2 内核模式的APC 注入2454 r( `- T3 E3 ]2 z6 D! T
12.7 小结246
9 F2 C) O% K* ?3 J, p$ _12.8 实验2469 O! x: i' ~& j' ^' E" T' b! w6 N
1 K% D6 s8 b' ?' ^2 }
第13章 数据加密 248
* j% C& f8 U) A9 U
: O. t+ J" M5 u0 ~$ ?" }$ `- a13.1 分析加密算法的目的2480 z% F2 H( A* Y9 H+ A7 r
13.2 简单的加密算法248
6 e. r+ W1 }& g: q# e% F9 l1 ?3 C; B13.2.1 凯撒密码249
( J/ @- _2 ^5 ^6 E: l13.2.2 XOR249
: |- |: C4 g  H; u/ g% o# f13.2.3 其他一些简单的加密策略254
, Q7 \1 `$ R6 v6 @$ R  l13.2.4 Base64255
2 F4 w0 y6 v1 F1 p# {' r1 w13.3 常见的加密算法2581 ~! e7 G" ?& c, d: f! l
13.3.1 识别字符串和导入259; A. P3 y$ Q1 {' n* l. ?
13.3.2 查找加密常量259
! K9 q1 s% p7 ?# ^6 k13.3.3 查找高熵值内容261$ @7 v0 f- N. p2 Q$ N
13.4 自定义加密262
5 Q( q; e! _' x9 H13.4.1 识别自定义加密263, h+ R" S# ^: E- A+ @/ g: S; b, A
13.4.2 攻击者使用自定义加密的优势2650 {- E' X# D5 v, `3 V, p. S6 }
13.5 解密265+ p1 e1 p- d4 ]# R7 `, J
13.5.1 自解密265
4 |. d) M* E/ d13.5.2 手动执行解密函数266
* S. T; i2 P- q+ e  `13.5.3 使用通用的解密规范267
( W% t$ L; _" ~- x% g" Q13.6 小结270
3 C$ ^+ Q. T4 R, o% v# e% v13.7 实验2710 q- N4 ]( W& P# R+ {9 G+ c+ \; Q

5 r2 p8 S% L! K( X1 O第14章 恶意代码的网络特征273
8 P8 H, h/ w: H" ~
( `0 R* I  y/ C* C' Q3 b14.1 网络应对措施273& q  [1 {8 T+ v0 o$ s
14.1.1 在原始环境中观察恶意代码2738 q0 Y, e; g- Q8 S4 O
14.1.2 恶意行为的痕迹274
  _% ?# |+ C( v9 J- Y14.1.3 OPSEC=操作安全性275
8 y  x& e8 \8 \14.2 安全地调查在线攻击者275
/ r5 {0 V9 x. e2 W: k# n6 c! n: c14.2.1 间接性策略275
. e% i' x! N6 J14.2.2 获取IP 地址和域名信息2763 [5 E1 r  n5 v1 U+ y9 O
14.3 基于内容的网络应对措施278$ u+ ]8 k  q: l
14.3.1 使用Snort 进行入侵检测2784 X& t' p% {4 B+ F9 |
14.3.2 深入观察279
8 v% V: x+ ?9 M  y14.4 结合动态和静态分析技术282
! S4 ~# x. P# X) I* v2 |0 T! o14.4.1 过度分析的危险283
7 ^9 \( F6 v( d0 [7 I/ s$ H14.4.2 在众目睽睽下隐藏283& K0 \8 o0 A! G) z
14.4.3 理解周边代码286
& b9 H6 G0 p# U* w3 F( K5 H7 [+ G14.4.4 寻找网络操作代码287
0 G6 s& T2 H. ?14.4.5 了解网络内容的来源288# S/ h- W/ V- j3 q: k8 @! W7 G" x
14.4.6 硬编码数据 vs. 临时数据289
+ I. e7 }* S0 `( ?4 A2 y14.4.7 确定和利用编码步骤289
5 r9 R8 A% l. e" C9 a1 m14.4.8 创建特征291# x) M, K' Z) o# [7 r# X2 t' ~9 o
14.4.9 分析解析例程292
. m4 k+ j; ]0 x5 K3 t14.4.10 针对多个元素294. C/ h: f$ r2 B+ F
14.5 了解攻击者的意图295: A* {' z1 H; `6 Y) E
14.6 小结2968 W- [1 @3 z  _
14.7 实验2964 I# @/ p. T0 C$ O) V1 C7 y$ n
; d# j) o' C# {6 |7 f- i- C

( e: }  ]6 T" N2 \* E* z第 5 篇 逆向工程
" S6 z. ?1 I7 V6 j/ K6 Z  v4 l, `/ M* x+ D" [2 R6 N
第15章 对抗反汇编 300
  ^9 u3 `$ V6 R/ f! s2 v$ b( O! d/ p8 u
4 R/ `' ~8 o6 k+ I15.1 何谓对抗反汇编技术300
" d& ?# I6 ?" o7 o4 V3 n1 G7 X15.2 挫败反汇编算法301
: k; W- C" {9 d  k' |15.2.1 线性反汇编3022 b( p. N1 h9 M- A9 X" o- k
15.2.2 面向代码流的反汇编3036 v+ d& S" C( y" i5 U) k' u
15.3 对抗反汇编技术306
" H$ D! g) J8 U3 s8 ^9 t2 h15.3.1 相同目标的跳转指令306! I% B$ K( w- `, E8 l
15.3.2 固定条件的跳转指令307
8 G9 V' q; u. P) P15.3.3 无效的反汇编指令308
8 P) k% b3 q& n- d. L8 Y" X15.3.4 用IDA Pro 对指令进行NOP替换311
- f9 S! g6 W  [% P# o2 U) D15.4 混淆控制流图3120 g) q+ w: t5 N5 U. t  c
15.4.1 函数指针问题312
8 O- |  P. }: L+ c2 `% t6 j0 I15.4.2 在IDA Pro 中添加代码的交叉引用3131 O( ~, E: x& q4 r& v2 W
15.4.3 滥用返回指针313% t) A; l" Y0 d) k. A
15.4.4 滥用结构化异常处理3154 I* ]1 K; }4 B" q, y: h
15.5 挫败栈帧分析317% Q& ~. w' |* o/ \
15.6 小结320' X/ f+ K! E5 u, ~/ e' X, O
15.7 实验320
; t. Q4 ]: C& t3 {5 a+ g9 i# S
. Z0 W9 N2 N" D6 E, ~第16章 反调试技术322$ z6 y: J* Z: o7 X) w

# S0 S# D( {8 x  O8 M* ?/ c, a% A16.1 探测Windows 调试器3229 R1 r, A9 M( h" S7 f
16.1.1 使用Windows API322: X+ d) V+ [* B
16.1.2 手动检测数据结构324
: }* ]: ?7 f# i  L. R16.1.3 系统痕迹检测326- w/ n/ ?& u+ N+ X$ m/ L
16.2 识别调试器的行为327
+ _2 T7 [4 Q/ }' l2 u16.2.1 INT 扫描327
/ \: G- l" s! `# c2 p. m. I1 s16.2.2 执行代码校验和检查328
0 _2 Y/ T. T7 l8 e2 k6 V16.2.3 时钟检测328
& Q& h) D( f: E6 P, t1 x% v16.3 干扰调试器的功能330
6 z7 M  D5 Y: d8 a* s+ P16.3.1 使用TLS回调330
( P8 N  F% u5 F16.3.2 使用异常332; {( Z3 M* m% D- g
16.3.3 插入中断333  `; Z5 Z5 w# b& j& m
16.4 调试器漏洞3340 f5 _9 x2 o! u* j
16.4.1 PE 头漏洞334
! m6 Z' I6 N8 l0 O( Q% a. f" G# Q16.4.2 OutputDebugString漏洞336+ w2 l9 T  H- U3 W0 ?0 u7 c% d
16.5 小结3361 t( `$ g* f2 y0 P) j9 r) e! U7 R  A
16.6 实验336
) s! h- G1 S& F
9 K/ D: }6 x% _( |5 ^8 _3 g第17章 反虚拟机技术 3382 O: g! y# v, C- P

0 U' Q. K& o; o( ?& Y( i4 S17.1 VMware 痕迹338
$ b) m* f4 \% I. e- s17.1.1 绕过VMware 痕迹的探测3409 S) @' \" |2 U! p
17.1.2 探测内存痕迹342
/ P, q6 \- O- i+ J' k3 r' \" L17.2 查找漏洞指令342; H8 A/ t' S5 {: w- a, ^
17.2.1 使用Red Pill 反虚拟机技术343
/ s5 G' S# i2 c2 d+ F4 z17.2.2 使用No Pill 技术344
# t& }1 M* z/ T7 d7 ^* D1 [17.2.3 查询I/O 通信端口344
# U  C# W+ M- _+ C17.2.4 使用str 指令345% f- A' ~( [/ B: G. m; k3 ]7 |1 L% \
17.2.5 反虚拟机的x86 指令346
& }9 Y. d2 H( Z9 M17.2.6 在IDA Pro 中高亮显示反虚拟机代码347
6 P8 ~0 U. H& B" w2 F17.2.7 使用ScoopyNG347  a( z6 e9 T- c- i; C6 [7 I9 }
17.3 调整设置348
: Z/ l. k& {4 o2 |8 \9 f17.4 虚拟机逃逸349& s1 g" y5 ]2 ]/ v6 J
17.5 小结349
& D& F: p) I- a$ ~) R17.6 实验349
( L+ G* Z  _1 B9 F) F$ @1 O
- j5 Y2 x. Z( J% B2 s第18章 加壳与脱壳 352" H9 @: ^" E" W9 A  s0 q
" K' j& R7 Z* Q- i% K' k
18.1 剖析加壳352
" z- a; V9 [& ^2 Q18.1.1 脱壳存根353
3 t) m  _( U. h9 v: M/ B* U* q, W. V# b18.1.2 加载可执行文件353
7 R  s6 c# Q. t7 K; L9 ^4 z18.1.3 解析导入函数表353) c, \. u. a+ ^- ^/ f
18.1.4 尾部跳转354' h, v. `/ h/ }  Y0 V- W8 H; d) o
18.1.5 图示脱壳过程354& b$ d& s; u- g5 D& A- g" y
18.2 识别加壳程序355
* b" E& c0 ]5 u8 u: l7 M18.2.1 加壳程序的标识355
2 V+ J. h7 f  O- h* q18.2.2 熵计算356) b/ U# h& F1 w  B6 z! c5 U
18.3 脱壳选项356  K9 V+ @' F$ V, N: E+ T% k
18.4 自动脱壳356
+ b/ p& X0 F+ [$ |3 K0 R/ k18.5 手动脱壳3576 [0 s. c/ F1 I0 Q( Q
18.5.1 使用导入重构器重构导入表358, o( K2 d0 \$ O8 x/ ^5 G
18.5.2 查找OEP359+ A0 x# I5 R3 Z/ \6 B" _; p- N
18.5.3 手动修复导入表363
# o0 q9 |1 h7 i18.6 常见壳的技巧与窍门3649 `' H% A, U5 M# _' R. _
18.6.1 UPX 364
) l5 A6 R. Q$ p5 Y18.6.2 PECompact 365
2 Q% _% a4 w2 C% z" G2 y18.6.3 ASPack365
! d6 V. Q9 W+ R; f) J18.6.4 Petite 365! }/ ^: ^6 e& X; F: r
18.6.5 WinUpack 366
7 ]5 m0 M2 p8 j, k/ ]4 Z' S18.6.6 Themida367  ]3 H# Q: I: ^& @6 M7 G
18.7 不完全脱壳情况下的分析368" J6 \0 K# a' `2 y6 r: U, E: U
18.8 加壳DLL 368( l: h9 U5 s) w% ?& W6 n# F6 l
18.9 小结3696 ~, H* d4 ^  x( c. g$ t
18.10 实验369
! H( X" ]5 J6 O# [' N" O: c/ |7 [% [2 t7 c8 J$ M8 [4 m4 ~1 S

( n, h# j; d, y* K& _9 E' ~8 X第 6 篇 高级专题
0 a4 S. ~' X9 F$ X. F3 \0 r' ~5 [) R( Z; x; `. v/ [2 F
第19章 shellcode 分析 372  w, x! d6 t; f% e" O, r

* q" `; L0 ]1 w( B: W1 u) e" n19.1 加载shellcode 进行分析372  \9 u4 v$ y" }* M5 q5 T$ V
19.2 位置无关代码373
; U' G, j* e' N% F: a19.3 识别执行位置373
; i) f9 O, s4 d6 h3 A7 T- W19.3.1 使用call/pop 指令374
) N7 u, w( v, X  z19.3.2 使用fnstenv 指令376. A3 ~* J8 M9 B/ q9 Q
19.4 手动符号解析377
# U0 i8 D1 t( z- v9 v5 e: w+ L! ]19.4.1 在内存中找到kernel32.dll3788 I" \9 _9 S: E$ W; N+ N" B
19.4.2 解析PE 文件导出数据3802 N/ P+ H2 G1 b& l9 S2 Y) k
19.4.3 使用散列过的导出符号名382
2 \/ A# d# R; g' {( m19.5 一个完整的Hello World 例子383
, E. O6 a5 O; }, d  y# X/ t4 `19.6 shellcode 编码3856 c$ I  F9 R. T
19.7 空指令雪橇387
- _% t4 a" E+ j  `1 p  q19.8 找到shellcode3871 b( Y# G7 E3 [' G( h
19.9 小结388/ q8 y3 L2 ?; c7 G
19.10 实验389
4 p2 c: s- o, n; R- b9 }
, B4 W, F9 ^  r( N" \, k第20章 C++代码分析 391
& ~* i. q3 y* Q0 ~# d( P
" J8 i; I4 G' c) b4 q8 I) h. P20.1 面向对象的编程语言391
& B! H4 u1 d! x: z6 U20.1.1 this 指针3925 o# D% x* [; U& X  n- Y% B
20.1.2 重载与修饰394
/ ]/ A7 p( ^2 K6 W& g4 m' r9 {20.1.3 继承(Inheritance)和函数重写(Overriding)395
, ~8 N, K  C5 w' ^20.2 虚函数和非虚函数396
+ @' T) j+ ^0 K20.2.1 虚函数表的使用398/ G8 Q( u6 _) v- e4 M1 V
20.2.2 识别虚函数表399% C' U8 ]3 a+ i( D
20.3 创建和销毁对象400( m& N; \0 v" {$ Q3 m9 |; n: o
20.4 小结4011 c$ ~  B- I: P2 f4 C' d
20.5 实验4019 q$ K  U0 A% v$ Z4 k! v6 C

. C! @: n4 s1 E: k第21章 64 位恶意代码 403
4 E7 C5 o0 n6 E4 M+ d  I( \# d" s% P) Z  M
6 C0 P: W* v. s8 T: \21.1 为什么需要64 位恶意代码403+ U+ S2 f- f# ~7 F" q# D( ^* F
21.2 x64 架构上的差别404
- o9 |! k% u! O$ m. l( r/ C21.2.1 x64 调用约定和栈使用上的差别406
' _0 U7 D0 @' L4 ]1 H. v( J( y4 b21.2.2 64 位异常处理408; f6 a: U4 E2 Z( q
21.3 在Windows 64 位上的Windows 32 位408
* h6 J( ?. }7 u6 [21.4 恶意代码功能上的64位提示4094 t; e% S5 Q8 }/ e6 |- d
21.5 小结410' L: @1 ]5 `* C! i+ U9 \
21.6 实验410
. i+ _2 g2 G* u9 o% J
1 ^- z- n4 y2 v' Z! S) }* w附录A 常见Windows 函数列表 412" _8 k: P1 @& R) B" Q5 ?2 P
) w+ P) ^' b9 C) ]
附录B 流行的恶意代码分析工具列表424
/ Z, G% i7 W+ D7 E0 i: Q7 J* E: c3 A: W( c' q
附录C 实验作业参考解答435
# N3 r& r1 C7 F8 |  L5 v2 C
0 V. ]/ d, [1 q' `( t8 q4 A# g附录D 致青春,基础软件开发的中国故事 691# u, l7 M$ l6 v5 V  b( E/ y

" F. z7 A# _  X/ r' d, t# T附录E Syser 操作入门 695$ u1 X1 v$ \8 N% [

; }! x( \8 m) \5 [/ F  y
0 U0 l9 [- j; ~/ y: O$ X' t
想知道小甲鱼最近在做啥?请访问 -> 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
6 W  T. M" c8 \: m5 y什么编程语音写的?

! i# ?$ p5 i* x/ u什么时候出病毒查杀实战
想知道小甲鱼最近在做啥?请访问 -> 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 08:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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