鱼C论坛

 找回密码
 立即注册
查看: 3389|回复: 1

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

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

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

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

x
TB1ivqzKpXXXXcjXXXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
6 l0 {: b, g8 o3 j1 @( C7 G8 c; y

" i6 ?% ?+ B) U' ^7 ?1 q5 b7 S书名:《加密与解密》(第3版)6 f7 x1 I- ^$ }
作者:段钢0 D, l2 a  u( A' Q  ~. M$ O
出版社:电子工业出版社
' U) W1 ]$ [3 m9 ]; e出版年:2008年7月1日(第1版)9 F5 r& u( J! y0 S
定价:59.00元  N% x& S# P2 A: q+ i% F9 G
装帧:平装
$ f0 X! h5 A% @  n7 CISBN:9787121066443
7 f) Z& a5 w3 \6 R2 }  i/ V4 `8 Y: ^0 C7 c
购买链接:
9 s: j" o7 t( [2 u$ ~- I/ E5 R. C( ^/ q5 `/ q8 f$ ?+ U


) }4 f8 ?# _  _7 D& G! ^亚马逊(Kindle)-> 传送门
6 s9 g# `7 P% s' O4 g# n0 `4 _! C: @0 u
亚马逊 -> 传送门
! A% l% w  \# b1 x1 D- C: v" K# q: l+ i' d- Z& S4 [# O
当当网 -> 传送门- c4 A. Y9 N. l) N, V  U/ M

  i+ J+ d! v0 W: f) x) h; }京东 -> 传送门1 d: b0 y& s: N  b

* r. c8 v, [/ J; H$ I: [9 F5 h天猫 -> 传送门+ ]8 x+ v. t5 _" Z6 A2 C* u
% n2 ^: l  C. V- M

, P4 Q2 w8 @! G% |内容简介:8 h: e3 s) R& F6 {$ O% O

6 e# |( N# Q% _4 H, M& B

& `5 ?9 O0 k$ H0 Q0 I《加密与解密》(第3版)以加密与解密为切入点,讲述了软件安全领域许多基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。读者在掌握《加密与解密》(第3版)的内容,很容易在漏洞分析、安全编程、病毒分析、软件保护等领域扩展,这些知识点都是相互的,彼此联系。国内高校对软件安全这块教育重视程度还不够,许多方面还是空白,而近年来许多企业对软件安全技术人才需求量越来越大。从就业角度来说,掌握这方面技术,可以提高自身的竞争能力。从个人成长角度来说,研究软件安全技术有助于掌握一些系统底层知识。+ n& ^4 S6 c" D1 b8 Y

1 g4 N; v! R+ M. Y/ y2 R- i《加密与解密》由看雪软件安全论众多高手共同打造而成,读者将从《加密与解密》(第3版)中获得许多极具价值的技术,是专业开发人员不可多得的一本好书。
+ Z. R1 @; n0 D4 p, E9 ]: F4 l' K2 i  X2 e

: j0 i6 k- S3 V; ~/ D# _' E; V目录:7 y8 E: p+ N1 d& l, U# A* u
' v2 w5 r7 V8 z5 A0 |1 \

) d4 d3 y3 t# B6 o( S" I
第1篇 基础篇- K" v: U. Q9 R" V
. p+ W) U/ Q0 t3 c* U& K# N
第1章 基础知识4 @, ^, G- _. X, u8 m& N# w
  N) U9 S% t/ Z8 \  I/ v
1.1 文本字符
" Z7 M$ q5 J' M1.1.1 字节存储顺序4 z. Q. |2 f6 f
1.1.2 ASCII与Unicode字符集
2 ]! p, I) d1 U! n6 N1 C5 ]
! C+ \* J& h' z% d1.2 WINDOWS 操作系统: V7 d# D$ }' y% q% d" ?2 `. D( J  {( D
1.2.1 Win API简介
, k& `$ L  }( |/ @3 {1.2.2 常用Win32 API函数
7 F$ h) ^8 e; }, r7 p: b1.2.3 什么是句柄
; U) K3 s" X( z1 u8 `1.2.4 Windows 9x与Unicode
* J7 h6 E# A% y6 d# Z1.2.5 Windows NT/2000/XP与Unicode
8 O/ n' T. `, x1.2.6 Windows 消息机制4 c  X7 ]7 j% y

" w/ K3 u3 O! r; g# J; S* x" ^- W1.3 保护模式简介
+ r2 \3 t$ N, m' c& I1.3.1 虚拟内存
: B! ?2 g0 o# v: R, N1.3.2 保护模式的权限级别
$ `$ Y5 \) P* w( Y( r2 u9 n$ r1.4 认识PE格式
) A" t" s! v/ U9 O8 ~3 p
9 Z7 l( H, d  J: w+ b" s第2篇 调试篇! X) H3 W0 K: X0 T5 N7 E

' c& \; @- g1 L( n: p第2章 动态分析技术
! C. }) `' G" s- S6 r
( Y3 N9 B2 h9 {& ?4 g+ `! s0 y2.1 OLLYDBG调试器
0 b5 B3 p$ l( k/ }4 J2.1.1 OllyDbg界面
' z8 A+ M" {; d. j, m2.1.2 OllyDbg的配置8 P' X" Q. E1 D1 a/ i3 t/ T
2.1.3 加载程序) v* N( |" b7 J- r  @
2.1.4 基本操作$ Z' X5 |6 u  m
2.1.5 断点
5 e" V1 L3 S+ D3 B, [& I+ i2.1.6 插件
, k% w: X& X2 d2.1.7 Run trace
; g4 o1 A$ _6 H+ ?  w: x2.1.8 Hit trace2 k; C0 N, x( k9 X) \9 n" P4 L: x. D
2.1.9 符号调试技术6 j8 Y8 i4 o/ n3 A+ A) T
2.1.10 OllyDbg常见问题6 A8 L. K/ ~  C/ b5 e1 V
2.2 SOFTICE调试器0 g2 O/ o; W* L% O

$ m4 m+ @8 t/ Y1 \" @% f第3章 静态分析技术
* {5 v# U; P# E
2 f5 y$ P. y7 Y8 K) h! R3.1 文件类型分析$ {5 @8 e* {" y6 x9 I1 f
3.1.1 PEiD工具
# [/ `& V0 R% g9 Z6 `/ g& Y3.1.2 FileInfo工具
4 J# M& U5 g* x7 g9 `/ v, o! C& ?" u/ z
3.2 静态反汇编
2 ^! f" t# S& |- M3.2.1 打开文件9 Z- m7 A! g4 m1 l2 s$ Y6 B
3.2.2 IDA的配置
! G: E9 P/ p6 W" q4 t3 L3.2.3 IDA主窗口界面7 q4 Y9 L7 e7 M) T& i" G
3.2.6 交叉参考
7 Y+ G3 F, Y$ x( v3.2.7 参考重命名; E2 G( d! c$ }3 |9 {/ V! A; f. d
3.2.8 标签的用法2 J! \0 ]% A# c
3.2.9 进制的转换
8 d! q( b5 ]! n( n. r9 K3.2.10 代码和数据转换1 _' y: D7 V3 c1 `+ |# l& b. o
3.2.11 字符串: Q6 Y& _# R0 v" m; C5 |3 m+ Y: |
3.2.12 数组9 m+ E, z& L$ X& C1 }  }
3.2.13 结构体; O3 a' |% u5 T8 j& u
3.2.14 枚举类型
  j3 D" X5 u7 g4 [* i4 B' o5 \( B9 @3.2.15 堆栈变量
" ]/ r/ n4 j  T. y/ ^3 ?% w3.2.16 IDC脚本
* ?9 |2 {' y$ v% R! q1 s* M3.2.17 FLIRT) C/ T8 F, M2 c& x$ Z: b# w* O
3.2.18 插件
1 L6 e! i% z  N. Z! e3.2.19 其他功能  M# O! n/ ^  c# k. A) I
3.2.20 小结- g& o. b0 [2 E) W- U
3.3 可执行文件的修改4 }2 o- S$ f6 F& Z" U
3.4 静态分析技术应用实例
; v% x. e- ]$ c( d; q" ?3.4.1 解密初步. Q9 ]' _& Y" B5 `5 Z  I' [# N/ O
3.4.2 逆向工程初步+ }9 R1 b) |, C$ S
, ]& }, u9 n3 P) c' S
第4章 逆向分析技术; ?3 h* X& f7 t  u$ t+ V+ O
! i4 U0 o* P3 P. v
4.1 启动函数: F8 Q2 k0 u, D
4.2 函数
' H- h! m  P+ }; F" K+ X7 u1 _4.2.1 函数的识别- Y7 Y* _# E3 n9 _5 ~2 Q% v: S7 Q
4.2.2 函数的参数- V0 d. N9 C: K; ?5 A& K7 n$ G
4.2.3 函数的返回值
( U" t+ A0 [9 A7 B% O+ q) \
  O1 _7 h  g3 z0 L4.3 数据结构
! k, z2 a- F7 m% E4.3.1 局部变量! j' @! E. G# c" A  C
4.3.2 全局变量+ _3 y: d0 q. i
4.3.3 数组
& B: p( K2 X+ C6 r4.4 虚函数
+ f$ ^2 G/ m( M, S; s4 I' p4.5 控制语句
7 ~: [7 k( A4 h/ g$ O3 C$ v4.5.1 IF-THEN-ELSE语句
+ B) A; A0 a+ f+ L. s4.5.2 SWITCH-CASE语句1 g) y  i& k: n! A/ w
4.5.3 转移指令机器码的计算
' u7 V: h: j6 Z% t- f  m4.5.4 条件设置指令; m/ ]' |9 L* l
4.5.5 纯算法实现逻辑判断: {: \& W0 ~+ d: r6 g* r& A! X
4.6 循环语句
, z0 E: y. e) v! u" m$ ?/ @. I" M+ a( z' P" E- L# W$ `# z4 E, g; w
4.7 数学运算符5 A. w9 F3 b& O# f  k; A
4.7.1 整数的加法和减法
: E9 D1 x$ m% F$ g1 v+ i; U: ?4.7.2 整数的乘法0 s1 T( ^, k" U) B* w
4.7.3 整数的除法# n# X) s0 ~! k) x6 X2 j

5 F1 [; a# n3 n: t' h4 @4.8 文本字符串
6 f# x7 _3 d7 o) H2 n4.8.1 字符串存储格式
' U. x; j* i) o6 v$ m4.8.2 字符寻址指令
" h/ e1 Q" P- o$ \! v9 P4.8.3 字母大小写转换, n& F; x; o! Y) H/ H+ X
4.8.4 计算字符串的长度
7 S4 P  {6 B+ j$ p* L4 n4.9 指令修改技巧
5 Q; `8 M9 P' t5 E+ `7 p9 r0 F3 j5 r' E6 O
第3篇 解密篇& q$ b4 A# |4 Q8 ]# n) P& ~9 H9 E

3 J$ O9 x9 l+ I; D8 i第5章 常见的演示版保护技术
: f' I4 s; }) I' J; g  t) j# H6 c
6 F' s! u. ]7 B. u. g! X5.1 序列号保护方式, Q0 A3 [+ z/ c" k, v* o. ~0 @7 Z
5.1.1 序列号保护机制
8 R1 L! v8 D6 o% |" n3 D1 }; f$ ?. a# C5.1.2 如何攻击序列号保护* x# x! n- @1 p
5.1.3 字符串比较形式& A) [, F6 o. o, E, b
5.1.4 注册机制作
2 r- @2 ?. @# q# Q( x5.2 警告(NAG)窗口" j/ n; }# w2 W% N+ L# x  i
0 X( z1 x+ e% r! o
5.3 时间限制
' g8 f# s; ]9 W) f/ G3 C( Y5.3.1 计时器( Z; q% O+ B( d  B$ E6 B
5.3.2 时间限制6 s) Z# M2 \- }3 ~; o
5.3.3 拆解时间限制保护. z% Q4 ^& N" Y) J+ R9 k$ ?5 Y9 @

' C8 b/ H) N1 F5 o/ A0 Q5.4 菜单功能限制
' N8 _  l1 L# j5.4.1 相关函数4 s% J- g6 k' k
5.4.2 拆解菜单限制保护
0 M$ c, \, w2 M- n) m2 @1 O0 w* o9 ?+ U/ y2 J/ E" F
5.5 KEYFILE保护
* \$ n; v" e7 w. o3 m5.5.1 相关API函数
% o, p$ S  n6 V5.5.2 拆解KeyFile保护$ ~: t( c1 n' {" G

  |; I3 C1 `" Q/ Y5 V) Y& l6 g5.6 网络验证
$ Y3 u( J* ?  B5 w) e( [+ ~5.6.1 相关函数( O: A: m1 ]# @2 M4 B, Q  F. {
5.6.2 网络验证破解一般思路
! y( ^8 y8 _1 j3 q5 A
8 |: U; N& o& B5.7 CD-CHECK
3 ^: T! C! y% d4 `0 J5.7.1 相关函数& `" P; ?2 a- x. e
5.7.2 拆解光盘保护
& @* P! ]) j3 s9 h
8 X6 y9 r- x" k" T; C% `5.8 只运行一个实例% G$ B7 [1 J4 K% q7 ]
5.8.1 实现方案, y3 n0 n7 ^6 A- ]$ Y
5.8.2 实例% g  x8 l9 l. Q
5.9 常用断点设置技巧$ x' x( O/ A0 j5 }" w

) |$ O1 C, r; p. k第6章 加密算法
2 ^( P! [5 D$ J1 f0 c+ k; w' c0 f
# `+ }) `% d+ c, f6.1 单向散列算法9 k( v5 d, Z; Q* @3 _
6.1.1 MD5算法
* V1 r0 N1 Q+ N# W8 u/ i( D6.1.2 SHA算法. Z0 ?+ p4 k7 X: U# ^5 a/ v
6.1.3 小结) {) c$ x$ g8 C
8 Q8 Q4 {4 k. I# {9 r+ z. t, h
6.2 对称加密算法
  |# _/ @$ B. k) _" U$ ^1 [( X9 k6.2.1 RC4流密码
+ c7 d" V. b5 ?; B! S6.2.2 TEA算法. D5 U# C; \8 ^
6.2.3 IDEA算法
3 H& W+ i! K4 }6.2.4 BlowFish算法
% j  {% O" q7 J5 F2 o9 _0 C6.2.5 AES算法) v; }7 e( X/ z8 B. s  g2 {
6.2.6 对称加密算法小结8 ]$ L. F+ c" `

! ?' R" l) z& M3 h% f6 i6.3 公开密钥加密算法$ m+ F* E7 L9 I7 n5 C
6.3.1 RSA算法
: X) l6 |% N# ?  e7 \# a5 x, J4 g+ T+ Q6.3.2 ElGamal公钥算法( J4 s# ~) ~: J/ X0 `9 B0 K
6.3.3 DSA数字签名算法
0 H% \9 o3 u* C1 _# Y6.3.4 椭圆曲线密码编码学3 z; P' R5 Y5 t" q- Z
* ^  n" [" j7 V" B+ D; Q
6.4.1 CRC32算法
1 b- {5 x* D! l8 ^1 C7 y! l6.4.2 Base64
5 R9 k( L  `  W- g2 \$ B6.5 常见加密库接口及其识别/ u+ Y& }+ J, M% C- u
6.5.1 Miracl大数运算库! I% c) b5 t: y
6.5.2 FGInt
9 L4 b* s& R* s( O9 y6.5.4 其它加密算法库介绍7 i1 C; ]; K+ A. F9 I
+ H) h2 D9 [8 ]: _
第4篇 语言和平台篇1 b  `( W. y/ w2 O

% m6 E5 q( A7 ?. {( i) n2 Z) S5 ?第7章 DELPHI程序  d6 _. v8 T9 C. i
; A+ Y! M' e3 t5 s0 X. [6 z$ B
7.1 认识DELPHI
' B4 S0 K4 x7 X7 g5 L# h7.2 DEDE反编译器
- _# t" \: I. |) J8 \7.3 按钮事件代码
7 @( W! f8 [* I) s7.4 模块初始化与结束化6 `) j- S1 ]2 w

: x% m6 `6 S* R: F; E第8章 VISUAL BASIC程序% E1 C5 u$ @, s. C# ~1 t3 \5 {4 c

+ r/ R4 A: I$ w$ G5 T8.1 基础知识/ \: K- e( Y" K& N
8.1.1 字符编码方式
. a" ^$ x2 X% V$ A6 n8.1.2 编译模式
! d3 s& t/ e8 C/ D- F% g, q
: q3 P; r6 |& u# r8.2 自然编译(NATIVE)$ _4 v% T$ a3 K& e* s) M4 k
8.2.1 相关VB函数2 Z+ m5 k: c* }- J. E( Y. ~& P5 v( I. p0 {
8.2.2 VB程序比较方式$ \3 M2 y7 K3 `, {' v6 p8 a
5 ^, q5 \" O) ^2 W
8.3 伪编译(PCODE)(cyclotron编写)
+ D! a4 w" i  s4 C8.3.1 虚拟机与伪代码8 ?$ \& Q* p2 i# R4 g+ b  K& m
8.3.2 动态分析VB P-code程序" [' T" |: z8 e2 A
8.3.3 伪代码的综合分析
4 v* E& ^. Z, o; h2 e: l) w8.3.4 VB P-code攻击实战$ Z9 j; ], C, Q
* s: t% O* d5 ~5 P* E$ y/ W
第9章 .NET平台加解密(tankaiha 编写)
1 d5 I" N8 C/ y4 N* l  B1 @% q) ]5 J: e2 P- q: O/ ?" E
9.1 .NET概述2 S+ t* f0 o( \& b
9.1.1 什么是.Net% N8 Y  ^& ^1 M) w0 [& ^
9.1.2 几个基本概念
, W) X& X" X0 l. a' c$ T5 S& |9.1.3 第一个.Net程序
3 w! K: U1 K3 o6 Y3 B) J
# l* v4 p& u6 \9 y0 [1 t9.2 MSIL与元数据, ]$ T4 Y1 d) B7 H2 K" [. j
9.2.1 PE结构的扩展
) m2 h: o9 J% s2 m# H7 d6 j9.2.2 .Net下的汇编MSIL
8 P7 c2 C/ A' ~2 u+ r4 U9.2.3 MSIL与元数据的结合6 {- W* w, f8 n& S) S/ D, X  P

7 S. y0 q8 n  R4 |; ]. k6 D" `8 P6 k9.3 代码分析技术/ Q# E: U0 b, e+ d8 K* G
9.3.1 静态分析
7 P( n9 z9 ?. \9.3.2 动态调试
( Z- q+ a  ^% f+ M2 b9.3.3 代码修改' y" s/ M( i3 S, D& k6 n

0 U# t% q3 h+ g) m5 X9.4 代码保护技术及其逆向- u" x# X9 q2 t5 K; Q
9.4.1 强名称
; N1 O) R( E: p: X/ a9.4.2 名称混淆
( y# l8 @4 N- C. N9 ?9.4.3 流程混淆3 b7 [7 V% O6 U' s) e
9.4.4 压缩
" B" D' O& \3 f( C! n; d3 w9.4.5 加密
7 k% C7 y: @8 T& m$ S: d, x9.4.6 其它保护手段  V' A  e, Q4 O, V8 T7 w  C
4 ~1 W8 m$ X1 Q8 D/ O, k7 G2 Z
9.5 深入.NET: C1 C' H1 ^' n! c* G0 q
9.5.1 反射与CodeDOM9 S8 \* d# `  h0 u
9.5.2 Unmaganed API
, F1 S, h( m; M7 i9.5.3 Rotor、MONO与.Net内核
% R1 P* n, c; X# l# E# O! d5 I. h# n0 w( b$ i/ @
第5篇 系统篇
+ |' E. C$ k6 F+ h& e( g+ m7 v
' n$ _! H: E, x$ Q" Z) ^: S& E+ B第10章 PE文件格式
) b; q. Z3 n/ M
9 b) G  I( V2 ], ]$ j* R10.1 PE的基本概念
/ I7 g2 Z( M4 U10.1.1 基地址
- P( o8 E5 z( A$ S+ n10.1.2 相对虚拟地址
5 L9 B7 L9 r" a+ D10.1.3 文件偏移地址$ E0 Y' k: d) h3 Y" M- z* P# h
10.2 MS-DOS头部
- O, [$ T6 z9 ^. r
0 N  ^4 R7 p1 j10.3 PE文件头
% T. C. _. b6 g6 o5 d, S( I  [10.3.1 Signature字段
! m1 m4 z9 b: P* W) p10.3.2 IMAGE_FILE_HEADER 结构* {& p3 \  K: t* j$ E2 v! I1 k
10.3.3 Optional Header. C: z' A/ L5 m3 e/ C

5 H& `. {! x% u/ b" ]10.4 区块" `- C4 |! j6 X
10.4.1 区块表: W, |' t' f) i/ ~+ f: L& H
10.4.2 各种区块的描述# S- S' m$ T9 L
10.4.3 区块的对齐值3 J' e4 M' Z1 }7 ]0 r0 h% |" b$ ^
10.4.4 文件偏移与虚拟地址转换' e4 \- s2 J6 W) a" @& ^; ?- C) g

. h! U' G1 R$ F8 v0 ?- D10.5 输入表
# x- c* X3 N# v: M) m6 S# _10.5.1 输入函数的调用
0 y0 O) [( e- x) M/ o10.5.2 输入表结构# w2 E! R5 G1 s
10.5.3 输入地址表& j  x# N2 V! Q; U" |& f
10.5.4 输入表实例分析  b7 @! ]2 K% {6 g" R
10.6 绑定输入% x; x, ^4 \& q& v" o
4 F: W' i, h9 |/ s$ J
10.7 输出表
% x# J/ Y7 B* \4 m  {7 l$ ~7 Y" C% M6 C10.7.1 输出表结构
1 z- O2 v- n7 ^( b10.7.2 输出表结构实例分析/ u0 \! K+ L6 n4 h
) B& M4 F' l* j, N' v+ R. d
10.8 基址重定位
$ M0 q% U  p& P! @  Y10.8.1 基址重定位概念. r# I' @- m5 I$ \# v2 o
10.8.2 基址重定位结构定义
& {3 T$ C, e! M10.8.3 基址重定位结构实例分析
1 K+ V5 k& V! M/ a
  s& C8 o8 l& O( _8 X2 g3 L10.9 资源' j8 @' e5 E9 Y- [6 M
10.9.1 资源结构5 `, @( u/ \7 m  q
10.9.2 资源结构实例分析( ^& [# {& F( G2 U7 L
10.9.3 资源编辑工具7 _; j9 ?9 c5 ~& I2 a
10.10 TLS初始化8 [2 _7 P  N  b5 S, ~
10.11 调试目录
, Y+ ^1 ?/ A  s- q6 m8 S10.12 延迟装入数据/ t6 L: N9 U/ r0 H0 ~8 [% v; I
10.13 程序异常数据1 Z& w* U# X) ?3 ]5 H+ K
10.14 .NET头部
5 V% t% y! Q; O. l4 l10.15 PE分析工具编写8 `& T9 a/ Q0 G7 I3 X$ x% \
10.15.1 文件格式检查: \1 V, B4 V8 w
10.15.2 FileHeader和OptionalHeader内容的读取
4 Q* C. v2 x  f( w$ v7 Y10.15.3 得到数据目录表信息) Z! J& p7 m& B1 z! U
10.15.4 得到区块表信息0 t% u7 B: i' z. t+ ]) ?
10.15.5 得到输出表信息
# _' C/ F9 ~% ]* k% v10.15.6 得到输入表信息
7 _% o, S" k' D) n- p! K# C& x* T4 s5 q) b
第11章 结构化异常处理
3 |; S8 h, F) w' c  J
& n; o: N: D# K% d8 o11.1 基本概念+ l! E6 V/ C% D+ {% _: o+ L$ V. }
11.1.1 异常列表7 T! }% \# ^5 m: H6 N/ B& Q8 j
11.1.2 异常处理的基本过程
* p6 ?: @: ]: a, ^7 |1 x11.1.3 SEH的分类- I7 ^6 H. s( r7 s! l8 G
2 j- t" f" l4 w. u% s1 O9 {
11.2 SEH相关数据结构
7 ?) N, d5 F, I& u: n. |4 G9 m- _% Z11.2.1 TEB结构0 Q. h( D& a7 ^4 a/ e! @
11.2.2 EXCEPTION_REGISTRATION结构  X' d" O# O9 ]7 x6 S- ~
11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT- f+ r/ w7 n9 t1 d" g8 c0 P# b
11.3 异常处理回调函数
! n3 E+ G( ?" U$ a8 ~2 h  ~" X
' W  {9 [& H5 H  E  T/ z2 A第6篇 脱壳篇
9 p2 G+ M% Z6 n0 q0 H
2 ~+ q1 o! C  j第12章 专用加密软件
  h' H( Y3 B/ q7 O6 L
5 u$ E3 k7 R5 j! w! J; L6 J6 }12.1 认识壳* u, }' A$ e7 k/ W* Z3 V# b8 \8 Y
12.1.1 壳的概念
/ R; f3 P) z9 e  o12.1.2 压缩引擎
9 y6 A6 W) n( p5 q12.2 压缩壳
2 k4 [  u+ L+ u( I. Q12.2.1 UPX- }. m. z+ N" l% M
12.2.2 ASPacK
! e# a0 z" j. D7 j5 x$ t( N$ g8 S* }/ N2 w
12.3 加密壳+ c5 [* g% `) \8 T/ K
12.3.1 ASProtect
" y# I& m3 T  B) s" e' a  G12.3.2 Armadillo7 c6 F) `0 ~2 r7 V& Z
12.3.3 EXECryptor3 _0 _: b$ D3 c1 m& f4 I) V; k6 L
12.3.4 Themida7 Y$ a; Q3 v6 [  q, r2 S( F

5 {7 f& f( Y% M6 x: t3 ~12.4 虚拟机保护软件
( l& `+ |- N8 V5 c; H/ B$ Y* v12.4.1 虚拟机介绍
4 G/ z0 \, M! x% g) Z* D12.4.2 VMProtect简介
+ E5 q" P4 M5 U+ ?$ _) M
9 a/ s$ e- H  b6 t! j3 u6 ~; q第13章 脱壳技术- y, p8 P* f" n5 |
) _& `+ }, K! B" N
13.1 基础知识. v3 l' |& j4 z
13.1.1 壳的加载过程
9 \" Z8 j% C% M! ?( p13.1.2 脱壳机
, J0 ^4 Y9 s' G% r$ a5 F13.1.3 手动脱壳8 i% o8 X- z* A+ R
* R) |# c) x- S8 q. E
13.2 寻找OEP% l3 }' Z& C, l+ E) y, ?5 W! \
13.2.1 根据跨段指令寻找OEP
, k8 }0 q3 f3 g7 \) ?7 y13.2.2 用内存访问断点找OEP5 h) x8 H9 m0 ^& w; M6 P
13.2.3 根据堆栈平衡原理找OEP
9 A* h% F. w2 h13.2.4 根据编译语言特点找OEP- t9 M9 G1 U. t7 L6 P+ r; {" \/ Y
# V3 x: b+ N; \) d% z
13.3 抓取内存映像
. x$ Q, z+ H! M1 ~5 e- q13.3.1 Dump原理! q6 k$ z' @* H% _7 D% V
13.3.2 反DUMP技术
  R+ ?$ E. Q; z: C0 D4 c: g' K/ ^- O* t
13.4 重建输入表! j) a2 P' a7 n4 j% p! W- R7 D
13.4.1 输入表重建的原理8 K8 T$ J! S1 L! Q* {& ?9 t
13.4.2 确定IAT的地址和大小2 E( H" ~3 q0 a+ H$ V# T
13.4.3 根据IAT重建输入表
: a. N: k9 m$ _5 y6 t13.4.4 ImportREC重建输入表; m$ C7 p- |) T- Z2 y: N; p
13.4.5 输入表加密概括: }/ k* I/ f& I$ m! S- C

- H" n0 Y/ X" I, e- y13.5 DLL文件脱壳
- p: u1 `, \1 Q; f2 X8 `# B13.5.1 寻找OEP
  `8 Y# \( ]/ f- I/ n; P13.5.2 Dump映像文件
  W& t* h  ?0 o1 h/ e5 \6 v; a8 c" L13.5.3 重建DLL的输入表3 z5 b8 C& y& a" z+ {  T. V
13.5.4 构造重定位表
* [! l. _9 h/ p3 w13.6 附加数据
8 q* j1 k. J) P* K7 k+ u13.7 PE文件的优化
8 c+ m" G1 z' L# M1 l! g13.8 压缩壳
6 N; U& ?/ X$ z: d/ t13.8.1 UPX外壳6 E0 \$ S+ U4 W8 o+ U
13.8.2 ASPack外壳
- w9 @2 z! T* `7 H, \13.9 静态脱壳- J" S6 Q) S/ T2 W+ J1 |% J8 |
13.9.1 外壳Loader的分析
# o' l# ^! F! _$ L13.9.2 编写静态脱壳器
  e( Y' A! U- |4 \/ T# V13.10 加密壳
$ e) C+ s# M- ^7 M# x* n13.10.1 ASProtect
! ~; V6 o- j; \2 o- N13.10.2 Thmedia的SDK分析: V& d; @" ]! N8 L# x+ |/ S
+ c4 H+ ^# }& O7 L7 L& w
第7篇 保护篇
2 E7 n+ }2 A& z* M- k+ _
) v+ j; L, A: z8 K$ H第14章 软件保护技术
% \+ l& z' _6 n1 C# ?7 u; L  Q4 ^' K' u
14.1 防范算法求逆1 x9 Q$ `( {( d' n/ H5 `# @6 H5 A
14.1.1 基本概念  I8 @* @6 Z* v2 b/ f: z
14.1.2 堡垒战术7 o, _( _0 X( a# W! B7 n  K+ r
14.1.3 游击战术
  R( {' l: e7 t  M& ?% b7 H" ?) B8 Z
# A. c! A, H8 d, R# E: j# [( R0 Z14.2 抵御静态分析
) G/ w4 D# n' \$ p0 H+ ^- G- q14.2.1 花指令
& s5 R6 k, r' P! z0 W14.2.2 SMC技术实现
4 g# h# c1 [7 s3 ]. y$ r14.2.3 信息隐藏3 g4 ^& B. L& X5 {$ L  D
14.2.4 简单多态变形技术" C' b- n3 q" }7 d% B; n
# c4 y1 Q, k& y' F; k5 M
14.3 文件完整性检验
" n, S9 ^6 c2 D' M- v14.3.1 磁盘文件校验实现
7 [% \3 L% e, y) P; q2 _6 w14.3.2 校验和(Checksum), {: l. @1 \& l( Y3 I
14.3.3 内存映像校验" p: c  X  n2 D+ U- J# h' F

! Q% R+ b& s, W- w0 Z  P14.4 代码与数据结合技术
0 J; U  a: d2 h, Y14.4.1 准备工作) }! a" h9 e% [0 J8 C
14.4.2 加密算法选用& a6 N+ d6 ?& F8 E1 Q6 |0 U
14.4.3 手动加密代码
% v9 x8 L: h3 I; I" v/ K. E) g) {% y14.4.4 使.text区块可写, k& f4 O1 t7 o! _
14.5 软件保护的若干忠告5 \/ P4 }* Q1 N. c
- A/ _9 T# B( o& J: @: S; u
第15章 反跟踪技术(forgot编写)
7 }* A! J4 U: ^) |& V
( a8 E5 H; w/ D4 E15.1 由BEINGDEBUGGED引发的蝴蝶效应
0 C" N- c: D0 P7 j# z9 t15.1.1 BeingDebugged
+ I& ^  ^6 v1 b. X( K3 T. \15.1.2 NtGlobalFlag
5 _5 l# E% T5 P* A" t+ v8 t15.1.3 Heap Magic
: Q% @. D1 R( K: J1 E4 }15.1.4 从源头消灭BeingDebugged
- Y, Q" j+ E# [8 [" q" u/ ?! `1 w# u5 {3 N
15.2 回归NATIVE:用户态的梦魇/ ^+ @  G3 t) r
15.2.1 CheckRemoteDebuggerPresent
: E7 P( x* M! j7 U1 y, ?15.2.2 ProcessDebugPort2 p1 ~( v5 `- a& }3 i, \' z; R
15.2.3 ThreadHideFromDebugger- g9 z: L$ Y& u- }$ s1 a
15.2.4 Debug Object& S( C4 G& g% R5 {% ?* Y" R
15.2.5 SystemKernelDebuggerInformation
3 y( n) I8 q7 X15.2.6 Native API% {; U9 P! R1 |. t) }4 v# W
15.2.7 Hook和AntiHook
" H6 L9 b1 C0 U/ ?% S% p7 y7 a3 U  O
15.3 真正的奥秘:小技巧一览( f) R1 t, \, U4 S  t, y( d
15.3.1 SoftICE检测方法
- K8 r: F0 s" }- _15.3.2 OllyDbg检测方法
- M* t% u7 _" b9 J15.3.3 调试器漏洞9 ]2 l/ k9 i8 x0 M6 F3 {, q
15.3.4 防止调试器附加; Y5 n* N, N: F7 S2 _/ H5 k
15.3.5 父进程检测9 U; T( m" {% C: ?: ^2 j, l
15.3.6 时间差+ L7 O1 c( W  J
15.3.7 通过Trap Flag检测. ]# E) y/ q! |* }
15.3.8 双进程保护
% A/ L& L5 G1 b9 [# O) e% `' W& E, R, y: J6 s  G% Q! i, f
第16章 外壳编写基础(Hying编写)+ }% M4 @1 T. x; p* B& u" l
# d& n9 K2 ~/ l1 J# @! D
16.1 外壳的结构
7 j4 j  X- l4 \9 o1 @6 y# b16.2 加壳主程序
6 H0 V( v! n' M  ^& A16.2.1 判断文件是否为PE格式  F4 A  @, K6 P+ U- ?8 H- F
16.2.2 文件基本数据读入
  a% y5 l! c* W' |; C) |16.2.3 附加数据读取
# ]- K1 _7 z" p16.2.4 输入表处理
, P0 ]9 q* n7 {' _; U8 E; I16.2.5 重定位表处理# ~- f6 S. `' o, \5 n% q( C# ^
16.2.6 文件的压缩0 E$ `* A  _/ u3 \6 B. Q
16.2.7 资源数据处理' P: y/ _5 Q0 W5 i9 Y% p0 [# D
16.2.8 区块的融合. @' C7 ]  q( O8 r8 z
) g$ e3 J) X/ ?8 i- u
16.3 外壳部分编写  J  E! Q4 Z& T
16.3.1 外壳的加载过程5 c& {2 J$ w- A  c" E
16.3.2 自建输入表
# e, P: s* B& E$ `& ]9 `4 x16.3.4 外壳引导段
% g0 {0 p( y" s# t  `16.3.5 外壳第二段
9 m, k: M2 R+ M, K# q. g; J16.4 将外壳部分添加至原程序- T1 U+ }+ f0 A2 [1 z
7 ?9 t( C9 O* l4 s+ A$ H5 m* a# a
第17章 虚拟机的设计
" e7 U/ |; P+ k4 b& C8 D; p
$ x6 L2 p8 ~" B; }5 ^7 i17.1 原理
6 i% @' t! q' b& w, k# z17.1.1 反汇编引擎/ D! i7 G+ N1 S, |' T7 d
17.1.2 指令分类) f- F' [& l8 g: O9 p( S

  a! B% d) R* t% i& J5 X4 C( q17.2 启动框架和调用约定
  O2 O1 C6 q' m" @# R17.2.1 调度器VStartVM
, Y9 t# K+ w* A4 c: g! R  C2 Y17.2.2 虚拟环境:VMContext
1 Q2 v3 i5 B' x% L' J+ z0 x17.2.3 平衡堆栈:VBegin和VCheckEsp
$ [7 o6 ~1 v9 i( O1 W3 a+ w5 {0 g8 X  d5 q- c# N/ N
17.3 HANDLER的设计
6 y. l1 K& f* T( N; O17.3.1 辅助Handler
8 V7 d( C: ]0 h5 @$ f; i- ]: u17.3.2 普通Handler和指令拆解
3 q/ ?. a7 h$ `5 v; T17.3.3 标志位问题
; c/ c6 L1 b  S  a+ [6 k17.3.4 相同作用的指令
  [. ]4 y$ ~; b- S  ?17.3.5 转移指令! P3 O6 z0 T) U6 @: J
17.3.6 转移跳转指令的另一种实现, ^" V7 x0 _+ V' h! h$ G
17.3.7 CALL指令
3 F1 ]  e# T( l17.3.8 retn指令
2 J8 q" _: n3 M0 X% V, w& y17.3.9 不可模拟指令+ \6 x: U" o1 p+ n  z) k
9 I9 I8 \$ F7 C* k# n, U3 w
17.4 托管代码的异常处理
2 b  V: H1 Q6 o' P3 t! E( _+ G5 O17.4.1 VC++的异常处理6 D+ q" q, J: G: f$ f3 |% O
17.4.2 Delphi的异常处理  {  V/ ]' r3 E( ?3 n- K% o
17.5 小结4 U+ r2 \: Q. q: h8 H

: S8 z  i9 c7 k" q: I8 U( O4 l第8篇 PEDIY篇& s1 t1 X9 ^$ v3 q. j, {) e

3 |; a; n2 N* d- m第18章 补丁技术
+ t9 b8 E: n0 W) v7 s& J  L0 `9 K
; i# G& z; r& N0 |' a5 b18.1 文件补丁* o/ G4 T" g" V+ B0 T
18.2 内存补丁
1 f1 L* M7 w8 D, D" ^18.2.1 跨进程内存存取机制( ?6 d' M# ?3 O4 K, \6 s4 I
18.2.2 Debug API机制+ s7 ?4 @* e" r- u& f
18.2.3 利用调试寄存器机制/ L$ V& [* A: K- U) j8 Q% B" A% H' \8 D
18.2.4 DLL劫持技术
* a+ l8 A# Y' c+ ?' ?; {. P7 W* S' U! u$ s$ I% `
18.3 SMC补丁技术
8 O& s1 I) ^% a# G18.3.1 单层SMC补丁技术& q# V, `3 \1 f
18.3.2 多层SMC补丁技术$ B9 |# U) l: f7 \8 H. i3 R! j
18.4 补丁工具
2 y4 d; Q1 g5 Q2 z+ {
8 z8 _" v$ y; c0 Q- B8 b第19章 代码的二次开发
% i6 z7 F& S- [# j0 o. {+ r
3 M% u- b" a. Y2 ^$ G: ]' N19.1 数据对齐, i6 p. r0 v- _  B* m8 ~
19.2 增加空间
1 Q: K1 m/ h. z0 S! _! Z8 {19.2.1 区块间隙* b1 k0 @; N- K0 |
19.2.2 手工构造区块
3 e9 w( Y, \# J6 D- m19.2.3 工具辅助构造区块) o1 Z- z$ Y% d3 }* N

* C5 J) I) h5 Z6 Z+ b19.3 获得函数的调用7 Z$ X9 f3 s$ _& `3 n, ~4 L  }- H
19.3.1 增加输入函数3 L) b8 A  Q$ W
19.3.2 显式链接调用DLL, Y2 U. ]) [. H  R
. e% L8 S1 L8 J* p7 |- F/ `
19.4 代码的重定位
. o2 C0 t' D. Z- I4 l1 d# a3 e19.4.1 修复重定位表( l* ]/ c. F4 W+ S) p* g2 a- ~3 E
19.4.2 代码的自定位技术$ G, @. \, N) J0 r* p
19.5 增加输出函数
, z( F7 V- q- D! x$ u0 c- i# X
! I9 A, c8 z' T# w19.6 消息循环
" C4 K  X- r$ {' U19.6.1 WndProc函数
' i+ Y8 K! n# E) y19.6.2 寻找消息循环
6 T6 E2 W" z# t7 |) _5 L1 Y19.6.3 WndProc汇编形式
% E, y8 p7 G, V- F% U1 V
4 x* L* U- T- C# \" t19.7 修改WNDPROC扩充功能7 J- Z  C$ |1 n/ n7 f, o: A/ E% Q( j
19.7.1 扩充WndProc
# Y# {* S' t: b% {5 I8 p19.7.2 扩充Exit菜单功能
$ c* _; f& X3 ]1 w& M19.7.3 扩充Open菜单功能/ q- O' ]/ r$ |* w7 d5 _
; E* }7 N2 e5 F9 J% t! C' i5 e
19.8 增加接口0 k: }0 F6 x! ]6 p2 d4 E1 ?
19.8.1 用DLL增加功能
) o) ]  x: T9 a* {/ o2 B! \' u19.8.2 扩展消息循环8 c) C& e" U5 b7 f- L: ?# U0 ~9 }
. |2 N: i6 t8 A% u: {2 d& g* ^( r
附录
' ^3 r6 T; f/ Z- m0 x& [! j, Q$ U5 `/ z6 s! {$ ^+ x
附录A 浮点指令! k0 a0 x& Q, H
' F4 v  T; N- G: }" j
附录B 在Visual C++中使用内联汇编
7 @6 v) J. A: Z% ]5 O  Z: Y8 @; X4 m4 J& ]
术语表
2 ?" t1 J# Q8 W1 |1 x! p
" f0 t8 X7 v+ L5 \7 a6 ?% P参考文献
5 c$ b+ m8 e* W
# k% n. \- i8 S/ |
最佳答案
1 
发表于 2017-3-1 14:12:52 | 显示全部楼层
   脑子乱了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-16 01:17

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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