鱼C论坛

 找回密码
 立即注册
查看: 8385|回复: 3

[软件安全] 【入门】《加密与解密》(第3版)

[复制链接]
发表于 2016-11-12 18:32:05 | 显示全部楼层 |阅读模式

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

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

x
TB1ivqzKpXXXXcjXXXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
! ]! [9 F2 c& V9 t; ~' j/ C3 A
/ Q5 }4 G8 N9 I9 E
书名:《加密与解密》(第3版)& |  L! b- e9 ?( ~1 O% i( Q
作者:段钢! u; r* d) C. j$ G1 W6 h) T
出版社:电子工业出版社+ r/ h2 i3 L. Q0 O
出版年:2008年7月1日(第1版)9 N- E; @% j4 U( l
定价:59.00元3 p+ I% V/ e% }3 F# g5 _9 J/ S
装帧:平装2 M, Y- }& ^3 J9 K8 X4 R
ISBN:97871210664436 T5 y  n4 K8 g1 r

. H  {7 D4 G; N3 l7 T: O购买链接:
* Q7 W+ M3 ?. n* S! ]
0 k' l- V, |9 u/ ^5 P

. J- e8 N/ l, ]- W; p' o亚马逊(Kindle)-> 传送门
  e+ i+ _0 H/ L% C2 U" ~) P: n7 q0 X0 l3 a2 h6 [
亚马逊 -> 传送门# X4 l( n' ^1 `1 Q7 \: R

2 I7 E. Q# V. x/ L当当网 -> 传送门+ _2 a* E% w/ R6 b& ^- V$ q
; W2 I4 L+ z+ N; }6 \5 B
京东 -> 传送门/ v- v" L. z. e( F9 V5 l0 }/ }

% t7 E5 R1 b4 }天猫 -> 传送门# Y9 ^) m* i6 i$ z
1 I! E( d$ f+ Q

. s1 f; A% r# M/ @内容简介:
3 l" h* U6 h0 m4 w/ q# k5 [5 S# c, J$ T- t" G3 o! s


; S  G4 L" o4 Z0 |' ?《加密与解密》(第3版)以加密与解密为切入点,讲述了软件安全领域许多基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。读者在掌握《加密与解密》(第3版)的内容,很容易在漏洞分析、安全编程、病毒分析、软件保护等领域扩展,这些知识点都是相互的,彼此联系。国内高校对软件安全这块教育重视程度还不够,许多方面还是空白,而近年来许多企业对软件安全技术人才需求量越来越大。从就业角度来说,掌握这方面技术,可以提高自身的竞争能力。从个人成长角度来说,研究软件安全技术有助于掌握一些系统底层知识。
6 O1 e+ J. }+ b3 E
' x$ j: {  I5 t《加密与解密》由看雪软件安全论众多高手共同打造而成,读者将从《加密与解密》(第3版)中获得许多极具价值的技术,是专业开发人员不可多得的一本好书。5 f" a, I3 V4 ~/ s* R

$ f8 ?5 d% o$ l" W
! T$ k" L! Y! _6 ^+ r9 L目录:
' [8 L! p) Y- O6 u$ \/ Q
% _2 S. Q+ f8 k7 N6 \4 U' ]% ~9 S0 r

0 f' ?" M8 S. X- |; W第1篇 基础篇: K! n, u! v1 L$ u/ c8 r$ v6 M8 i$ z" y
& n# |  _# P9 w& _7 @7 F2 E# `, w
第1章 基础知识
! a  A4 B! k- b" l9 v8 P- i7 |' L! i# ~
1.1 文本字符; c5 g0 k7 A: P. c
1.1.1 字节存储顺序
/ T4 e; \# [( j3 U9 h' S1.1.2 ASCII与Unicode字符集
2 g; @# `/ M7 M( F* W  C; I5 p. H0 b* Q; F+ E& D2 B1 S* [
1.2 WINDOWS 操作系统" ^- ]) i% \3 S9 {
1.2.1 Win API简介
5 x! u, B( u3 Q' C' m% q5 e" S( [1.2.2 常用Win32 API函数+ R! L( T' C/ N6 }' ]; C
1.2.3 什么是句柄% S3 a( ~  g+ V9 x8 g# h7 s6 h5 B. J
1.2.4 Windows 9x与Unicode5 j+ s$ O* B6 Y0 G; [2 ?/ g
1.2.5 Windows NT/2000/XP与Unicode
( V! W9 ?$ x0 W% L# u. C3 K1.2.6 Windows 消息机制
3 h6 j) g; o  U, e# a- K8 G
, z; X4 U- j2 y! o1.3 保护模式简介% K4 C$ |) a! }* y' ^, I
1.3.1 虚拟内存
. t# [2 K6 n. a1.3.2 保护模式的权限级别. v, P! w4 x$ e" Y0 V9 B# \. S
1.4 认识PE格式
; e+ f* B+ N4 i
! U; N. t- ]1 b' X" \! _- c$ e% J第2篇 调试篇
" Z3 P+ R# x7 ~3 Q) B
4 m  n" u8 k3 M$ f: A第2章 动态分析技术$ ~$ F3 P, K- C6 R
; _" S/ D5 O7 w" b
2.1 OLLYDBG调试器* ~9 F9 H" V( W
2.1.1 OllyDbg界面7 L' w2 ~/ n/ L9 ~( t' ?; [0 {1 ]- Q
2.1.2 OllyDbg的配置6 `- l. A; x7 d6 ^
2.1.3 加载程序
9 _5 D. j1 E' y- C2.1.4 基本操作( ]- c% k5 V7 i+ h" ]. b
2.1.5 断点
8 y4 x. Y( Q4 c% I) d# S2 h2.1.6 插件2 T. Q; `' \% K2 B* v/ ?) |; O
2.1.7 Run trace, s, p7 Z) P2 j% L( j% v& Y" S& b
2.1.8 Hit trace
! O& _/ D8 H( E2.1.9 符号调试技术& l8 B6 i) b" B- G" Y  E
2.1.10 OllyDbg常见问题! ?" H( g" v! `% U9 A+ `& \
2.2 SOFTICE调试器4 x- C- G* Q) D5 a0 j

( A6 n% B6 U( X2 H1 m% U+ {( e+ `第3章 静态分析技术: g3 X2 z+ r1 y& M( Q" P8 V

/ U7 R! _0 n& f# J3 ~1 D! H3.1 文件类型分析& M# f5 }; e9 ~
3.1.1 PEiD工具
5 g$ A* s6 a  h4 X; |3.1.2 FileInfo工具9 z7 E5 {) s/ F' h1 A
$ R' z9 M( O; y
3.2 静态反汇编
) h# l" x, ], ~6 V3.2.1 打开文件
1 K9 F% t/ ]+ q, d2 K' ]% t3.2.2 IDA的配置' U2 b+ W! b4 }( e# x: ]' T
3.2.3 IDA主窗口界面
$ h7 R. z2 M: e! ]" ?  E9 s3.2.6 交叉参考
# Q4 J3 z2 R+ A3.2.7 参考重命名& z" O; I1 X  c/ ~/ e* H
3.2.8 标签的用法
( u8 t5 U7 n4 _3 m3.2.9 进制的转换
1 O# D/ L$ D8 e* g' X. ?3.2.10 代码和数据转换' s5 \5 d( ?; T+ c+ q3 T8 f
3.2.11 字符串  K& S2 D2 n, S5 m% J$ y0 T! p
3.2.12 数组
- {) r  C, I% T% S/ e& V3.2.13 结构体
. p6 |% ^8 J6 Y3.2.14 枚举类型4 b3 |' h& ?0 P  S& t
3.2.15 堆栈变量
! w0 a& C; `+ r# O$ ]/ K4 y3.2.16 IDC脚本
0 W+ p! g9 _0 |8 C) o: r: r6 M3.2.17 FLIRT# B  S  F3 X  ^$ x% k' S
3.2.18 插件, z% t8 k) Y2 e( W5 D
3.2.19 其他功能; t: x& t) g( E  F( o0 c
3.2.20 小结5 o; J/ o! b5 H9 a
3.3 可执行文件的修改2 }  S* [6 o+ p* z6 C
3.4 静态分析技术应用实例" T4 S. C0 s) o3 n; T+ a
3.4.1 解密初步% Z' u8 F6 M& S1 p7 S, U' t
3.4.2 逆向工程初步8 J. ]# v3 X# h' u7 t
3 r! {/ |0 q$ \4 ^- s
第4章 逆向分析技术. J: t/ Y! I- _. D" m$ w% ~

$ N0 U' r6 c+ l  z) }4.1 启动函数) E4 ^& M! F: R9 l2 F4 T
4.2 函数$ G" S  {6 X) i0 N: |
4.2.1 函数的识别
. {; t( [9 |; A+ Q, w* G4.2.2 函数的参数) A( l& e2 a6 n9 G5 `& L. u2 `- }
4.2.3 函数的返回值
! Y2 m4 l1 U4 c" R5 j/ x  k1 ]2 s" b
4.3 数据结构0 b' [) d1 D8 @' u4 N
4.3.1 局部变量
* u" V+ K7 \( d9 ]7 G) L4.3.2 全局变量
0 ?2 L/ h! W5 a  a4 |# k/ E8 Z: E4.3.3 数组
; g, y6 P& x; n! Y7 U) r3 ~: ~; |4.4 虚函数
9 Q6 ]3 g& ~3 v& ?4.5 控制语句! S( d( ?7 p6 Y9 z  _9 \1 ^- i
4.5.1 IF-THEN-ELSE语句. x3 V* F# d8 A$ p- T
4.5.2 SWITCH-CASE语句& }9 w2 v9 ?/ f8 x9 M$ o1 O
4.5.3 转移指令机器码的计算
( f6 W: @0 K* O; z- m+ P2 N4.5.4 条件设置指令. _" N- f' d- P% n$ b4 a
4.5.5 纯算法实现逻辑判断
- U- F! C- I& l2 c4 s' J/ w4.6 循环语句
1 K0 j" V" J9 O4 F% z9 U; F; F' ^* M& s4 t; F: W8 i- W
4.7 数学运算符
8 i- _- D5 q- j) U: |4.7.1 整数的加法和减法
- ^# C; V. G, N2 _" v4.7.2 整数的乘法
+ {% w# N9 Q. K  H* R4 Y4.7.3 整数的除法
4 U6 V. |' |# N
  O4 x7 o6 n) U$ z4.8 文本字符串
3 @- e* }$ e/ ?& T4 k+ d3 z4.8.1 字符串存储格式
- K) q) s" K; u  u5 b9 J4.8.2 字符寻址指令' u+ n1 \# h. B( R( x3 M, e
4.8.3 字母大小写转换, @; ~. `0 L9 v3 M0 q
4.8.4 计算字符串的长度, p9 F4 l  q/ d9 ?
4.9 指令修改技巧; N; F0 I9 u, H+ D/ g* X2 ^" R% H

) R8 L4 E* n; G1 H+ x( C1 J& h第3篇 解密篇6 Y. n/ \) n" |- m$ C/ }5 E

! y% D1 W, m6 b4 y4 }( [第5章 常见的演示版保护技术( ?. ^4 [7 G* H# v$ D( x( X5 V7 N

' C& D% `  R( m7 J/ ]7 E) U5.1 序列号保护方式
8 Z! H% I" G* |5 V$ n9 K5.1.1 序列号保护机制4 M. A0 |5 K# ^: l( B: Z' U. m
5.1.2 如何攻击序列号保护
$ w+ X" w4 j; ^% a+ w) V5.1.3 字符串比较形式
6 w: m; j: ?, Y6 p9 m5.1.4 注册机制作
% A+ W8 `" u% B5.2 警告(NAG)窗口
& e' c$ [9 j  b- X6 X3 `+ M* j5 Y2 U" ?7 a# `9 X1 b
5.3 时间限制
$ f- W! G. L4 S6 `% d* c  b! `) i5.3.1 计时器
: U- W1 K, u, p5 I5.3.2 时间限制
% I9 J9 V" j+ I- h6 t5.3.3 拆解时间限制保护
5 a+ A; H, u& _6 Z, [! j$ P! X
% a' y1 O) W! V6 A* s: m( N5.4 菜单功能限制* I& c1 W0 U  `3 r. w
5.4.1 相关函数
! t8 E( T+ d1 m5.4.2 拆解菜单限制保护8 E8 E( J8 h$ Q$ @
' @- j" E/ M& \( l2 P
5.5 KEYFILE保护4 B9 W1 w; ?% k! O" i; G) E
5.5.1 相关API函数% P( F) l$ F' }8 ], s8 n8 T2 Y! W. B
5.5.2 拆解KeyFile保护9 C* j2 d; h! z5 d" h% r6 A3 K

1 `9 t) g  l0 }3 j5.6 网络验证
$ }6 [5 g6 p  \3 G  K5.6.1 相关函数
$ |! q! u- ~4 I' P! p; f" i5.6.2 网络验证破解一般思路
  _5 Z6 g( M2 S8 u5 D
5 A7 H0 l2 f2 v0 b6 s, t5.7 CD-CHECK
# z) y' i7 L1 w: M) j5.7.1 相关函数4 ~4 t0 O! O- N7 N+ ]) S; I
5.7.2 拆解光盘保护# O5 D  `, h" o( Q8 [% K2 b8 `* f$ I

/ Z( O$ L& i1 J' F6 l' \* o5.8 只运行一个实例" Z8 G  K! R- ?0 r
5.8.1 实现方案& ?/ C- D0 O7 r/ y& j
5.8.2 实例
6 T4 f# k, u1 R% r, l" g5.9 常用断点设置技巧+ ~& e  k0 }9 n+ F

# e, C8 o9 k7 K# P. P第6章 加密算法
0 j" ]( D: X2 A9 m" Z
' D2 X/ ~, s+ x( g+ `; n) g6.1 单向散列算法2 `; g+ l" t& F' `- A5 m2 {8 ~4 g
6.1.1 MD5算法
: X* d' T8 X9 ~" z* a; r6.1.2 SHA算法
+ e; r. \) r) t- W0 z/ u0 T( T6.1.3 小结
- S# D1 R* r  w6 K* P, |) Q+ s% Q2 C, K% N/ ~7 G$ y) N2 R
6.2 对称加密算法
4 U0 i$ e" x, ?7 x. B* f1 |6.2.1 RC4流密码
! s1 ]. \- z% d/ I; y: I& A, `8 y6.2.2 TEA算法% T- P! L5 ]2 |5 \# K- U1 @
6.2.3 IDEA算法* f7 L3 V# |" p
6.2.4 BlowFish算法
* c% e* f; C4 v* x. D  |6.2.5 AES算法
  [1 I. W/ x8 s+ {0 E6.2.6 对称加密算法小结
# [" K9 ^- ]. D# T7 I/ R9 p
9 k1 b9 S* l1 i6.3 公开密钥加密算法- ^: ?2 Q0 h& @/ P- m
6.3.1 RSA算法
3 T" S2 x/ g5 Q6 g& Z6.3.2 ElGamal公钥算法# B; J7 o# s. n) E# t' }" m0 }; k
6.3.3 DSA数字签名算法, ^8 c" b" K* ?2 O5 p- e
6.3.4 椭圆曲线密码编码学3 r! q4 M2 p) {. a& ~$ u" h3 U

% G3 W) e  a# O" g! Q+ |6.4.1 CRC32算法
) u8 q# t% y  m7 L6 d6.4.2 Base64* {1 H3 P6 Q5 m9 E& \* h
6.5 常见加密库接口及其识别! f$ X! a; T! N; t2 M1 P
6.5.1 Miracl大数运算库5 v* P% M/ b0 i# z3 }& q
6.5.2 FGInt! W' a% V( M* T. Q
6.5.4 其它加密算法库介绍
7 h* j& @0 L$ S6 t+ E
3 x7 G; Q" I' r7 r; C第4篇 语言和平台篇, K; [4 R3 P) `( ^

) A! e1 l9 f) I0 Z5 }第7章 DELPHI程序
) r: z) J. ^- p6 C8 w- G% |8 o8 E. F
7.1 认识DELPHI- p& E$ }: T+ B
7.2 DEDE反编译器
. R7 y! {" r0 o* V7.3 按钮事件代码
$ V+ D( x" I, P0 I6 {7.4 模块初始化与结束化
0 Q2 @' v' M2 Z* B2 b; O8 z* {, M6 m: H! ?/ u+ }8 i+ ?8 [4 [
第8章 VISUAL BASIC程序5 J0 F( s. t5 _2 j

9 W: d9 a, P1 _3 t) n6 G6 g! g8.1 基础知识
4 _  `& ?: M4 E9 t+ \: z9 w8.1.1 字符编码方式/ G1 [6 h4 S1 [3 s' {
8.1.2 编译模式7 L! S  e4 E* g6 P* u; U3 Z, h1 }$ ~
7 |. o5 {) U: `0 R. [
8.2 自然编译(NATIVE)
. x5 K% p  d7 y* s$ R) Z8.2.1 相关VB函数
( j4 F$ r6 G( {3 {) w& |; ]3 ?( t8.2.2 VB程序比较方式
- `4 D. b, u6 U; K$ {2 p
5 E3 A3 t4 K" K/ t/ i8.3 伪编译(PCODE)(cyclotron编写)' D8 O1 i7 y5 U* A$ l* I
8.3.1 虚拟机与伪代码  l; x) \- r+ R8 t1 v4 s5 ~0 F
8.3.2 动态分析VB P-code程序
7 ~1 L  m! w  R& Y8.3.3 伪代码的综合分析2 W7 I" A( T+ O( I9 h
8.3.4 VB P-code攻击实战
  w, y. ^4 c! t
7 d" W2 }, O7 [7 z& J* E第9章 .NET平台加解密(tankaiha 编写)- u; D1 z; o+ B- y9 I$ j
2 e; z3 V" F- g" D& \
9.1 .NET概述
  P! O8 k5 [0 @9.1.1 什么是.Net" Q! D/ K; ^1 {1 K% O
9.1.2 几个基本概念* ?! I# H* J  _
9.1.3 第一个.Net程序4 Y4 W: }7 B8 h8 p. O& M
8 \' [; z3 ?3 L2 D( G
9.2 MSIL与元数据4 A/ T, ]. [: Y0 l/ N, X) K
9.2.1 PE结构的扩展: d1 \2 z% r% r/ v# _* X9 U: U
9.2.2 .Net下的汇编MSIL
, w7 P- x  M/ m5 z' p5 [" ~5 r9.2.3 MSIL与元数据的结合0 I3 A6 {& s4 \. {

& T, p( i; b  t6 Q1 B: x: J3 b; a* @9.3 代码分析技术, e! ^/ P) l8 l6 J3 Z+ z* A
9.3.1 静态分析
' C9 w5 v2 T: M& S; a9.3.2 动态调试
2 q( I- U  c4 _) X  R9.3.3 代码修改! Q, R7 ~6 [; a% X! v

+ k5 A6 m. `; L, p0 \# ]9.4 代码保护技术及其逆向7 p) W, o7 |7 j
9.4.1 强名称* ?" Z! v6 z; V4 F" V, N/ R. s
9.4.2 名称混淆
& f) A+ r  @, g6 K2 I9.4.3 流程混淆# s2 F) v. O) O9 V. i5 W! w
9.4.4 压缩' h8 E; T# J& w" V* [/ \: g# P4 j/ D
9.4.5 加密7 p$ S% |" T& N) Y! e+ }
9.4.6 其它保护手段  t# X7 D* V  i9 ^9 G9 ^5 |8 ^

; {: B4 U7 }! y9.5 深入.NET( k1 |4 @8 k" F* s; i2 Y1 t5 S
9.5.1 反射与CodeDOM1 k6 \" u7 D7 n& ^' [) J& f$ Z
9.5.2 Unmaganed API
  J4 o! ^% J* d1 ]: M: B9.5.3 Rotor、MONO与.Net内核& j# O1 J  \: s% ?. e
* E: z# ^! x4 [; h' b2 Q
第5篇 系统篇1 ~. q  ~3 N6 p2 j, g3 U
3 F$ l# P- [5 A( z; `) K* ]
第10章 PE文件格式
" G( a& z5 a  N7 i+ E: \2 a, C# e" X9 I1 G
10.1 PE的基本概念# o8 i/ v4 c5 x: ?8 W% G( V* x+ A/ n
10.1.1 基地址( s$ F0 V! d1 P" _
10.1.2 相对虚拟地址  J5 c  E; T( O0 {6 v
10.1.3 文件偏移地址) E: o; e" ~9 K' @8 V' P
10.2 MS-DOS头部" Z/ K+ G2 s2 q, z% ^  q) J

6 d% ~! W! X& |- q/ x7 R10.3 PE文件头7 E; N& z% }) f4 F% i  H9 q; V$ U
10.3.1 Signature字段2 q, d' j4 L9 N7 W/ l
10.3.2 IMAGE_FILE_HEADER 结构
4 V7 t1 t/ |# ?10.3.3 Optional Header8 s$ q$ L2 q8 J- J6 ], e8 l, M
5 Y& V& H/ K7 O  G
10.4 区块! w1 Q1 ]/ U) t! B" }3 m* x
10.4.1 区块表9 }/ b5 `& j5 A& y
10.4.2 各种区块的描述( ?, `0 T2 B, }6 M3 C4 ?
10.4.3 区块的对齐值0 v# f7 }2 z3 a* y; B$ c; d
10.4.4 文件偏移与虚拟地址转换3 o1 \# W/ M" G2 |; V  u7 M; o  c, `
- ~  |& V6 b% V' G: o  J
10.5 输入表
; q2 Z: w3 Z* Z( `10.5.1 输入函数的调用& X. q/ |( @- J
10.5.2 输入表结构: D7 M. f2 y) V7 O4 W  @" z
10.5.3 输入地址表
! @1 J+ M8 v3 b0 F10.5.4 输入表实例分析
1 J" n0 j1 {7 P& b% ?* X7 ~1 {& w10.6 绑定输入4 E1 [& V  T3 c& \

1 q/ x; X6 S, }( O( _2 Z10.7 输出表
. K9 j/ X! x, N4 X6 p- G' @10.7.1 输出表结构/ b% @4 c, P  a
10.7.2 输出表结构实例分析3 Q0 s+ s0 G/ z  a+ E

; F( }: l# e2 K6 y% X10.8 基址重定位
/ U& U. w+ a! q10.8.1 基址重定位概念
' f! a8 F- a4 x5 F1 ^+ Y10.8.2 基址重定位结构定义
9 X( E1 H; u1 |! \3 X" L10.8.3 基址重定位结构实例分析
. c% j) ~0 W) S& ^3 {
7 V; y8 z& }" u. A$ J& X# s10.9 资源
, ?4 s" {) b- X10.9.1 资源结构
9 V/ q( \1 s. {$ F5 K6 z  v" N: [: e5 C10.9.2 资源结构实例分析8 {' n, Q5 q& d# S5 Z. u2 q$ V$ e
10.9.3 资源编辑工具4 r. j. o/ }4 S  ^" E( t. L
10.10 TLS初始化% r8 l0 I; W  i
10.11 调试目录
8 T3 A1 R$ `( n( V' U; K4 b10.12 延迟装入数据+ F! o$ J; Z" H+ O2 F, B6 N
10.13 程序异常数据
- m; f7 z3 w2 K) x& U' Q10.14 .NET头部
% h0 V) a0 H0 Z10.15 PE分析工具编写
! x: d8 o/ l) h$ @10.15.1 文件格式检查
' V' U+ h6 z1 q0 r( x9 Z10.15.2 FileHeader和OptionalHeader内容的读取
$ i) v2 k& f3 Y- G6 O4 ?10.15.3 得到数据目录表信息
* ]# U# o/ r# d: ?4 d10.15.4 得到区块表信息
) Q1 _4 r+ d  \7 H6 R+ [7 N10.15.5 得到输出表信息
$ e) k) K4 v" ]- _1 N0 t10.15.6 得到输入表信息
7 g- j1 r6 V# ]5 p% J! S/ K+ c) R6 u
第11章 结构化异常处理  E% x1 O0 i' a2 K, J  i9 C% R* I
4 j! a3 H, b' V1 f1 H4 l
11.1 基本概念
6 Y; j% b2 n( Q# J11.1.1 异常列表( O, J, o- f+ r1 J; U4 Z- r
11.1.2 异常处理的基本过程
3 ]& I  h5 j/ K* O11.1.3 SEH的分类( a) Z6 M0 E& U/ w$ d# Q9 z% i) l! d1 [, K

' X4 p. M* k& o4 W5 A$ [) L$ F9 Y11.2 SEH相关数据结构
: t! }- f2 U- x11.2.1 TEB结构
8 G$ e  Z2 l) b" E- Z+ ~+ [$ {11.2.2 EXCEPTION_REGISTRATION结构/ m) P. ?  w4 X" y# E2 M
11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT
! {' p& j3 k; Z5 A: P0 L( _11.3 异常处理回调函数' @/ u# B$ E. B+ t, ]7 L5 R

, w9 O& O% j4 E; T) R% ]) q4 O第6篇 脱壳篇$ G# n* ^, ]1 R( l' V& T

5 |+ N/ g+ G: ?+ u: x6 }: E第12章 专用加密软件
1 p! ^6 w6 J$ b" x" x9 V. g- A  R5 p! r5 e- f1 l
12.1 认识壳9 Q9 }' _$ D7 c( b" g4 _; h$ W& w
12.1.1 壳的概念. a' T' O, k# f  [$ [
12.1.2 压缩引擎. o7 i" [& Y8 X# P6 B, \" l
12.2 压缩壳/ `/ r  z5 E; [1 r+ E
12.2.1 UPX* y/ N: v7 c9 v
12.2.2 ASPacK; ~. V1 v' U2 W1 M9 S

: e+ c6 h; z  y& ]* j12.3 加密壳
5 O# f& l+ ?' j, E; x4 K9 U12.3.1 ASProtect
% f3 h. \2 O. c2 _3 l12.3.2 Armadillo9 q5 L$ f7 I- H3 G: {6 u* T5 y
12.3.3 EXECryptor! Z% d- f& n7 r; f
12.3.4 Themida' b% _. ~5 m# h7 l' b0 O- I8 c
: _: |+ g6 h! u- \# \  ~7 M
12.4 虚拟机保护软件
; d, S4 \% i; E& X1 v% `12.4.1 虚拟机介绍
) Y. e; a. `4 `+ @6 m  u12.4.2 VMProtect简介
7 I- c4 b5 }7 F+ e5 b. ~# V6 B' F9 q' i+ t
第13章 脱壳技术/ {. A6 W. `3 t% U% y- j

7 o- o( t: ?3 y* u% c, I13.1 基础知识9 m& B1 Z* w8 a9 J1 U- P9 _
13.1.1 壳的加载过程
0 I5 T0 z5 w, A( t1 b13.1.2 脱壳机3 z5 Y# z7 D2 ]3 E
13.1.3 手动脱壳; j& z! U9 A+ _+ R& \
' e2 b6 }" j4 v3 k! L2 ?
13.2 寻找OEP! U$ r  l6 G" s
13.2.1 根据跨段指令寻找OEP
; W1 I+ r& `, |  c: \4 m* ^' @13.2.2 用内存访问断点找OEP0 h1 i4 F& R( X+ e4 r1 E9 S& S
13.2.3 根据堆栈平衡原理找OEP
; T6 Z  S% t$ M13.2.4 根据编译语言特点找OEP
9 ~0 g- y- h1 O9 D6 k5 U
: i. M) r% O, ~' N+ `9 H: P" a13.3 抓取内存映像: f9 f" x1 L* a$ ~- A( n+ O
13.3.1 Dump原理; g% p  T2 Y! T& A% P. w. L
13.3.2 反DUMP技术9 n5 V" W" g" e# ^- [

, e- j, n/ I6 i& e, T13.4 重建输入表
: }( C) T2 n1 b3 c& x  l% \13.4.1 输入表重建的原理
; V3 R+ C0 s3 S. @0 _13.4.2 确定IAT的地址和大小# m/ i) R* H, ^4 C, Q# F2 }
13.4.3 根据IAT重建输入表/ Z% ?$ I- p1 z; l! C& f$ D6 ^
13.4.4 ImportREC重建输入表
: w7 J4 s; A. n# G13.4.5 输入表加密概括5 ^" E0 L% A+ {) i

) T4 n9 i; W$ a4 x13.5 DLL文件脱壳
- O8 J9 w: ^- n$ u3 I) e9 u13.5.1 寻找OEP* |# S: P$ ]9 Q: I9 ^, K  g+ z8 ~
13.5.2 Dump映像文件3 P- r, [( d' ?0 ?
13.5.3 重建DLL的输入表
+ v, Y1 \( V; M9 c; m13.5.4 构造重定位表' ~/ i& ?+ \6 e! A" p
13.6 附加数据& n: @$ [9 }: j/ A
13.7 PE文件的优化
% ^; D7 }+ }( G0 V5 C* P5 o13.8 压缩壳- i$ X8 y( \6 f% A3 z% R2 {
13.8.1 UPX外壳4 D+ t! a" l/ L$ g! y/ a7 R
13.8.2 ASPack外壳
2 B. s! q# F8 j13.9 静态脱壳; ^$ P( X  Q6 w  O4 Q
13.9.1 外壳Loader的分析/ i9 q% o$ P' e$ Z2 {0 m- C
13.9.2 编写静态脱壳器
' B$ b1 L0 t; P0 ^% ~; [2 O: c13.10 加密壳
, J9 M) z4 Z% R/ W13.10.1 ASProtect7 i8 [6 R9 I$ w* F
13.10.2 Thmedia的SDK分析
: F5 o) K3 A" U# Y( g" ^: N2 s* I3 [. _
第7篇 保护篇3 s' Z9 P$ B& \2 \- f3 Z! X: p

% P/ ]. s3 e$ j7 A7 F8 W第14章 软件保护技术! i, i4 x% l1 I( s
  R$ P6 C( \, Y) h4 ~
14.1 防范算法求逆
* R) P( O- `; I' A& j7 q1 q14.1.1 基本概念2 }6 b+ r! p2 ^+ j# K
14.1.2 堡垒战术4 H8 o9 R8 w& m0 s" f! H' N" l
14.1.3 游击战术
/ @" O$ R/ j) N0 r0 Q3 V, |, g* N% S- a7 \. ~0 j
14.2 抵御静态分析' O. k1 W4 b5 v2 _
14.2.1 花指令+ i. g2 R9 g( ^
14.2.2 SMC技术实现
2 J  a: b7 M  J4 n14.2.3 信息隐藏
! J1 f  P7 @9 F: X% ~7 v$ Z14.2.4 简单多态变形技术; ~# p) B0 m' e2 }: d6 L
) ]; b, E) M' g
14.3 文件完整性检验
# o5 u; q% H( h% L; b14.3.1 磁盘文件校验实现' l# H' G+ |3 n2 ?% t+ W3 U
14.3.2 校验和(Checksum)! H+ e" _2 g. s3 j7 g% c
14.3.3 内存映像校验- S' w0 W, r5 t" U0 T
% K6 `# ]2 L5 d6 J  m$ a
14.4 代码与数据结合技术, y! a5 I. t! q' [* I# @
14.4.1 准备工作# V  d; c- o" F" o/ {
14.4.2 加密算法选用
4 y4 |( Y% u# l, m% ?, L* S$ X8 K$ Q14.4.3 手动加密代码
, T) O: X- }" U/ Y7 M2 Y14.4.4 使.text区块可写' u4 ?  f) u. C& u9 ?0 j8 }
14.5 软件保护的若干忠告
3 r& p0 t/ ^7 i! N+ o: V, m  e3 E
+ m( m/ u, l! ]# D7 L第15章 反跟踪技术(forgot编写)& s+ t, ~4 q* _2 W2 j" b+ K
+ D, P' [4 [4 n7 V; P3 e# ^
15.1 由BEINGDEBUGGED引发的蝴蝶效应
4 z$ w3 P1 q) Y$ s15.1.1 BeingDebugged
! X' j% r- ?: M& @0 I6 @$ i' y15.1.2 NtGlobalFlag& k+ \5 z1 u0 O  ]( V9 [3 G/ L" i
15.1.3 Heap Magic
* d1 ]+ M6 Z( L" k$ U; L+ Z- z9 s% @1 I15.1.4 从源头消灭BeingDebugged
; B* E" P6 E1 G$ n
( q. e1 f1 B( `$ g: b) Z15.2 回归NATIVE:用户态的梦魇: K7 R. y! u6 @; X0 i) J
15.2.1 CheckRemoteDebuggerPresent
5 ^6 s! V* D+ f9 v15.2.2 ProcessDebugPort
! @* z. p; n8 D# D- A* Z+ p15.2.3 ThreadHideFromDebugger3 B6 A7 u2 @1 Z! |$ U
15.2.4 Debug Object
- x1 a2 B) @. [- {( t7 _15.2.5 SystemKernelDebuggerInformation
1 i) R0 T- P) T; R) d3 h15.2.6 Native API7 K6 J) k3 N4 ~3 R& T
15.2.7 Hook和AntiHook8 ]5 Y2 l$ A  x! A# Q+ r) I

4 n  r8 `6 W+ C, h" y1 j15.3 真正的奥秘:小技巧一览
0 {( F2 f( W. t. w1 Z- Z15.3.1 SoftICE检测方法
( @1 \6 A+ n) r( U: [4 ^3 k15.3.2 OllyDbg检测方法7 N) w' x! ^5 A4 {8 l: U
15.3.3 调试器漏洞! m$ t( @3 m6 e  R4 t
15.3.4 防止调试器附加3 S% i, n+ N8 R# h& u. K
15.3.5 父进程检测, ]7 d6 s+ {3 V7 y7 ?, e: }
15.3.6 时间差
2 u/ w/ z* |5 n! t1 ?15.3.7 通过Trap Flag检测
. P# w, |1 e4 {" \+ Q3 b15.3.8 双进程保护# q* U3 U# O$ C6 }

1 R8 t% o% h/ ?: T3 `# o- {; s第16章 外壳编写基础(Hying编写)
$ r# Q0 }8 F) A! T8 O! U* z* z: J. T- K
16.1 外壳的结构
/ R4 P+ Q6 Y6 c6 y& C) Q% P$ g16.2 加壳主程序9 y5 A# O0 R6 ?/ Q; T' A
16.2.1 判断文件是否为PE格式
5 w, U7 `: t2 z1 q16.2.2 文件基本数据读入
1 B$ @' e0 y# {& O$ b% ^16.2.3 附加数据读取2 I5 p& B: o0 v2 }, w& Y- \
16.2.4 输入表处理
& k* y9 J0 _, a6 W" U. s" K3 }$ ]8 L16.2.5 重定位表处理
- x; Q1 P  u3 w16.2.6 文件的压缩+ {+ x: u6 j- J1 Y" D/ C! m
16.2.7 资源数据处理3 u5 q$ Y; g+ s$ T
16.2.8 区块的融合0 K, L5 A- ?, k3 O* N# P

. I  y9 l& u: x1 W, S16.3 外壳部分编写! w! ~+ X8 u& ^' [2 ~
16.3.1 外壳的加载过程
0 i8 E; Q. \% B9 ^/ a16.3.2 自建输入表# U3 w0 ~. |3 z  t
16.3.4 外壳引导段2 m8 G/ K9 D- m" X' u9 a
16.3.5 外壳第二段3 `# M- T8 J. i
16.4 将外壳部分添加至原程序
( l7 d  \/ y" k! {6 }% _
  |) h1 V3 x& X$ N$ j' [8 e- L第17章 虚拟机的设计& Y0 p. }2 o" r4 y

! f- \6 h* K+ d& \8 w17.1 原理
& q" \- ]6 G1 S( t17.1.1 反汇编引擎; m% C( B% w; ~9 ?7 G- h
17.1.2 指令分类& H! e/ \" i+ x/ ]1 N) a
; C& X, X$ }7 `
17.2 启动框架和调用约定
: }7 s% P+ h) F* h( P17.2.1 调度器VStartVM5 i7 h. c1 i6 L/ U- ?
17.2.2 虚拟环境:VMContext
( j& E& E. x9 \+ T9 x9 r2 M17.2.3 平衡堆栈:VBegin和VCheckEsp+ w* G) K1 ]0 I, V# \' s! {
$ R) x( E! z$ Y+ v" I2 u3 n5 z. {
17.3 HANDLER的设计
- X, i. W$ E. I: m( L17.3.1 辅助Handler
7 P5 [2 L2 L0 T, F3 V4 }  _17.3.2 普通Handler和指令拆解
( e& G& C/ j7 n, t17.3.3 标志位问题
# a5 Z% p$ c% j17.3.4 相同作用的指令  X* i' B0 J( F& Z" P, E- w
17.3.5 转移指令& B% i+ b  \: n  p4 z( M
17.3.6 转移跳转指令的另一种实现0 l. |9 L/ `3 m" ^  c4 L
17.3.7 CALL指令4 X$ ?8 A# G7 l- f2 ?: w
17.3.8 retn指令
. ]; h5 m' {7 E" s$ o& P17.3.9 不可模拟指令
3 Z0 g3 t  ^& `1 [- ?+ e  \! t8 B/ w/ s) p- f
17.4 托管代码的异常处理/ `- |8 D+ M+ [, H  q) h
17.4.1 VC++的异常处理
9 @6 c, B6 ]+ e( T! H' m5 U* v0 ?17.4.2 Delphi的异常处理
. ?" t5 R) v# }* n5 l9 p17.5 小结
$ J, ^% t+ i+ N% f, }( C. y5 W+ [/ y$ X0 ?; U& y) ?
第8篇 PEDIY篇
0 [/ V+ x1 i% P7 {+ ]$ T$ p7 _- u4 L4 A
第18章 补丁技术3 i5 `- U" U! W! v
) `6 @( Z, i7 a" v1 k
18.1 文件补丁) r* i  m. E0 ~, v: ~
18.2 内存补丁/ j1 \/ {. ]3 r9 Y8 I" @& O6 `
18.2.1 跨进程内存存取机制
, _' d! S& _  H9 [( [6 d18.2.2 Debug API机制; u7 R! {4 Z0 y; i4 Y- N
18.2.3 利用调试寄存器机制+ \" m+ b& }0 h7 A1 M0 X" k
18.2.4 DLL劫持技术
, v8 ?* V1 n; R) z0 @4 ~! z$ q. W# n% ]. I
18.3 SMC补丁技术
' b- ]& O& b3 d6 X5 ^* Y# e6 S7 E18.3.1 单层SMC补丁技术4 c2 P# H5 W* B! Z1 O& ~
18.3.2 多层SMC补丁技术; v, p6 _3 N6 |8 N3 d) F3 n4 B" l- |
18.4 补丁工具
0 _( @! Q7 w; _! `. t9 E
5 `. p% W% @( [7 D( @第19章 代码的二次开发: |  F% ]0 q% a" ]# p8 s0 N: @4 i
6 f- e3 `3 p3 [
19.1 数据对齐6 q0 ^: _' f2 b; o0 }4 K3 i
19.2 增加空间
) F: J  B3 q- H: @6 a+ n, S19.2.1 区块间隙
7 c. ~! t# Z, U( q19.2.2 手工构造区块+ r7 w; t/ r9 i; x( t
19.2.3 工具辅助构造区块7 G8 l+ j) ~0 M( N) Z6 |$ y! {7 p" z
& h* u4 T2 G' U: A1 x2 J" W. S
19.3 获得函数的调用
' U8 B. p" Z: C* ^, H7 r' Y+ e19.3.1 增加输入函数* l7 z% p1 r" {% W* }
19.3.2 显式链接调用DLL
5 D: `* A! D! [6 Q, H* ^" ~
+ x$ W5 [6 C; w  w19.4 代码的重定位
; G, s% Y% j$ `2 }19.4.1 修复重定位表5 U; ?4 R7 P' h0 ~, W
19.4.2 代码的自定位技术
( Z* D' P2 A+ B& R' M) U7 P; q19.5 增加输出函数6 Q. d$ V' S# \% R  d8 u
+ @' i* X# @* N! [) ?! a
19.6 消息循环3 t  b! C& V6 L8 o* h; J1 o
19.6.1 WndProc函数- U0 S) y; J; Z
19.6.2 寻找消息循环
! _( J. `( \* a3 a2 M4 V19.6.3 WndProc汇编形式( t7 k. j  d% S6 i
; z' [& X9 d9 j, u+ ~: _$ Y3 A
19.7 修改WNDPROC扩充功能
' s( x9 ]& F( O$ E6 [8 y+ p3 E19.7.1 扩充WndProc
4 l. `/ }2 h4 ^, \% V# V. V$ k19.7.2 扩充Exit菜单功能
! |0 ]! Z3 {; r19.7.3 扩充Open菜单功能& q( \# l6 {1 {) E7 B

: X% E5 d( f6 M) w4 w/ t- y19.8 增加接口3 |' m& o6 [& G4 A
19.8.1 用DLL增加功能/ {: P- `: N8 G0 b: I" P
19.8.2 扩展消息循环
0 B( r8 u# S- e+ k+ n% N8 I# m/ K; L  Y2 b7 t. y2 Q1 M
附录
1 \+ h; n: g6 R$ L& Z$ I, M
! O$ T& V5 S9 N+ P: `6 k* }附录A 浮点指令/ I0 ]! q& f! y' X, P

& y0 q% j5 Z; J$ U% e2 D* e附录B 在Visual C++中使用内联汇编; V8 P; C3 H' ?& B9 g( v

! m4 q! c6 i0 n5 Q, s术语表1 e  ~5 ?$ ?- z4 V& O  a
( ~3 p# Y- L5 ?- h4 v, t$ R% T
参考文献5 g/ u7 s9 H: q; x5 w
/ }9 Z, g  j- H$ _4 k6 I" G4 C
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-1 14:12:52 | 显示全部楼层
   脑子乱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-19 19:59:50 | 显示全部楼层

  1. 1 q/ N. v3 L, {6 j2 S+ H
复制代码

. l/ @6 m! \* Z$ O; d8 w
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 06:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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