鱼C论坛

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

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

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

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

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

x
TB1ivqzKpXXXXcjXXXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

; X! @# O- r/ F% V5 X9 w; p
' u  |. v8 P: F, \$ _: A$ c书名:《加密与解密》(第3版). y  U! t# _7 y* m
作者:段钢3 C) c: z. h8 s* \( @
出版社:电子工业出版社
5 j2 \3 Y2 q1 v6 V& t出版年:2008年7月1日(第1版); ^* L0 H# ^& L, o  g3 Y
定价:59.00元  S7 K2 B0 U( O* ?. q- D
装帧:平装4 v; k( o6 j& D$ V* ?( n. h+ t4 f
ISBN:9787121066443
& o1 K/ m. J2 b" W/ q! `5 v1 u9 w0 H. K6 |; V2 e
购买链接:1 n6 m8 }8 T+ d$ H

! }3 m& x- A5 K) i! D" y7 n
* L5 w! C7 P, P& U" k
亚马逊(Kindle)-> 传送门
) K1 ?2 T/ O  q( v6 I. z
2 E" w& M7 y. t* {: t9 U  B9 l亚马逊 -> 传送门
  p1 p' x/ J2 j1 F2 v
* P; `! ?" w' n3 ^当当网 -> 传送门
/ Z3 L9 H' D8 a" C0 N& v  @1 z) L5 K% S' A) t5 A$ {
京东 -> 传送门' o: g6 b0 y7 q" t& l7 V

( @3 U0 f: O! A! `0 c& T1 Z5 O天猫 -> 传送门
& |) M& ]  O1 {- E
8 U% k, c' \! O+ I# a5 |
  Y+ S3 w7 C+ g$ l1 S内容简介:5 E, `. g1 q9 Y
# M% S" g4 N( G! M' w7 O+ w


: L+ _1 U) Z( [1 k《加密与解密》(第3版)以加密与解密为切入点,讲述了软件安全领域许多基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。读者在掌握《加密与解密》(第3版)的内容,很容易在漏洞分析、安全编程、病毒分析、软件保护等领域扩展,这些知识点都是相互的,彼此联系。国内高校对软件安全这块教育重视程度还不够,许多方面还是空白,而近年来许多企业对软件安全技术人才需求量越来越大。从就业角度来说,掌握这方面技术,可以提高自身的竞争能力。从个人成长角度来说,研究软件安全技术有助于掌握一些系统底层知识。
6 o' X& F2 h8 k# U3 c! W$ ?
4 I+ O$ n6 e' U5 f《加密与解密》由看雪软件安全论众多高手共同打造而成,读者将从《加密与解密》(第3版)中获得许多极具价值的技术,是专业开发人员不可多得的一本好书。
: g0 v+ `4 M% A9 M
6 O3 D9 Y/ q& o  x( R, x9 W2 V2 ^- P
# i% o' u+ d4 Y3 q, P& O0 s目录:
' @& C, p4 I. V3 H% s+ d4 g* C9 {7 p2 e

2 i  Q/ m5 b$ x7 l4 v+ k5 N; Q
第1篇 基础篇. y, [+ g% v% d9 q# A" |/ u
' f$ t# _" H( J4 [! J  u% s
第1章 基础知识! p" L. _  \7 g/ O* Y
4 ~! f6 Y1 l0 @3 |1 q
1.1 文本字符+ y" W, q+ V2 R7 v' F" Q
1.1.1 字节存储顺序- N" ^! e2 r  _
1.1.2 ASCII与Unicode字符集
' b8 q- f& `1 X/ L- F2 t# G* n4 {/ s/ t, G
1.2 WINDOWS 操作系统! d% V: t6 z. r
1.2.1 Win API简介
* g# K2 u  E) P# q! e2 e9 @1.2.2 常用Win32 API函数
. Y' j$ c, o% K) z1.2.3 什么是句柄
' T, \: f- {" s  E0 e! w1.2.4 Windows 9x与Unicode# T5 n& P7 ~6 b2 ]. ^. A. U) ^
1.2.5 Windows NT/2000/XP与Unicode
8 E5 y$ b$ q2 ]- ?* ~- p3 M1.2.6 Windows 消息机制
1 {+ d$ Q5 R6 P* {% e
" |5 f. \# y3 m& R! |. ^) q1.3 保护模式简介8 u* I4 B( x( n
1.3.1 虚拟内存
6 g* r# r1 }; U; S6 Y1.3.2 保护模式的权限级别% k) ?# t; w* Q" G8 j) T5 R
1.4 认识PE格式
: @1 J0 \( M+ i- \5 f( g& {# x+ u  W5 t' W- g
第2篇 调试篇$ e, R% K/ }& O5 E! G3 _( r6 v! S

8 S) ~* Z- t8 F  ]第2章 动态分析技术
9 `# p* \! p9 ]1 [4 O2 @# q. J1 s
2.1 OLLYDBG调试器3 n" U, X' Q' f
2.1.1 OllyDbg界面  n( d4 P) Y6 n8 g& k/ Q
2.1.2 OllyDbg的配置, B! V5 o4 B$ q8 d1 x
2.1.3 加载程序' V  }% T3 W+ C/ @, q  }6 R' ?
2.1.4 基本操作  c' w+ C, Q9 O1 T0 H
2.1.5 断点
, }+ `8 B& P& n3 _% J) E' R2.1.6 插件5 C; O/ }- U& [3 d" c: w
2.1.7 Run trace# r) O9 |; `2 ]' {9 c- z
2.1.8 Hit trace7 r6 A/ }- p! k3 T4 A3 G
2.1.9 符号调试技术/ s+ M( D3 H* I% c. J
2.1.10 OllyDbg常见问题
' e# |2 w$ t/ Y; _2.2 SOFTICE调试器
6 n! k5 u/ f6 s) M0 J2 c+ h
; H6 O$ H! m( G8 \( r第3章 静态分析技术1 [* b5 p$ @/ `# W9 a
& h" [* Y* P, R% x& J/ J. b  V
3.1 文件类型分析. O( l- d7 B2 M. h/ ^0 l
3.1.1 PEiD工具
7 k1 ^0 ]" m6 G4 |" {3.1.2 FileInfo工具/ W$ R" g$ C. r& ~. d

6 M; T% G  E) [, ^2 t3.2 静态反汇编  W( ]/ X; H6 R) m3 i5 @" a
3.2.1 打开文件
/ J+ z" p' K; o/ q1 _3.2.2 IDA的配置
" C! w; `7 Y7 M3.2.3 IDA主窗口界面
# `* P' C' \" r+ Y3.2.6 交叉参考9 j! u  N) |4 V# Y
3.2.7 参考重命名
$ W  i$ p( }, t0 x3.2.8 标签的用法/ x: S. _, d- J) F* r. S
3.2.9 进制的转换9 Z7 J! s/ @+ @4 N5 Y5 \( m3 F; ^
3.2.10 代码和数据转换
. ~  T" g  m$ w3.2.11 字符串2 \. Y# ?; \) m
3.2.12 数组
( `/ \4 T; M) m. C7 Z3.2.13 结构体
3 M# u5 w& r5 T' x2 u3.2.14 枚举类型7 x* f' u5 I! j) B$ d- ^' F. C
3.2.15 堆栈变量
2 Q3 E& @! N4 T2 H% M9 q# Q4 h3.2.16 IDC脚本4 S2 K6 ~4 Y9 A" B7 z8 v$ b" G9 }
3.2.17 FLIRT0 Z" L, R7 H: k
3.2.18 插件3 x- |  h7 A: _0 [( c0 P" y# J& R
3.2.19 其他功能; U1 k) P; b2 n! T* d& p+ z
3.2.20 小结
' [: @* g' p/ ^" D( f% [! ?3 I3.3 可执行文件的修改
  p# a' ^+ e3 @% s/ V3.4 静态分析技术应用实例
$ i9 o0 I; I. v- Z3.4.1 解密初步- l9 d( L% a% Y$ \
3.4.2 逆向工程初步
& p; q5 o* x+ y! n( y
) v/ I6 ?4 B( @第4章 逆向分析技术
$ t  n# P2 k' ^2 d9 ~
2 k" |# m+ G; S6 H3 _3 J4.1 启动函数
3 M. ]3 t* q# K9 Z! U; \4.2 函数/ m! @7 l) J2 e0 D; h( Y
4.2.1 函数的识别& w' p8 n$ y7 [, Z
4.2.2 函数的参数
, P* v& i5 x8 F4.2.3 函数的返回值
, i) M7 S. p- @$ d1 D- e0 T# F: h
4 H2 @9 W: H( L# m4.3 数据结构
4 {/ }6 Z4 n: h4.3.1 局部变量
: c4 a3 I; {- @* d. Z. U4.3.2 全局变量
# q8 v# D/ }5 y; f% T+ c4.3.3 数组
- I* J/ A( Q/ @* B& n- |# Q4.4 虚函数
# v+ Z7 S: E7 ]" l9 k/ @4.5 控制语句% s9 Y! |6 l: R" _  F' L
4.5.1 IF-THEN-ELSE语句( R! B3 K. V8 D0 O8 P5 O
4.5.2 SWITCH-CASE语句
. {% K' i1 A, t" K$ k, m  f$ H4.5.3 转移指令机器码的计算, b/ J1 {! ]7 S. _, v7 d3 H
4.5.4 条件设置指令7 W7 q1 F9 ^$ k& \/ |9 ?+ J
4.5.5 纯算法实现逻辑判断
; F3 y7 i( _! `3 ]- J$ n4.6 循环语句
% W" R# N! A; v0 V" [% w8 z  i( F
8 L6 f, c' R# b# k5 G2 V6 ~6 `4.7 数学运算符
% J# U' J8 g* C4 z4.7.1 整数的加法和减法
, r; B; P. _4 Z6 M: |2 {9 k1 c% ]4.7.2 整数的乘法) w/ j0 y* N2 D) c& @- J
4.7.3 整数的除法- Q. x; y! F9 w

% C0 ^+ \9 j9 s- I; r4.8 文本字符串9 v. u! N3 J8 ~, o
4.8.1 字符串存储格式
4 C7 Z8 y& H! g9 t( ?( ^, W# A4.8.2 字符寻址指令
" Q% {. g# K3 o$ n/ a) Q) R9 q0 o4.8.3 字母大小写转换# v/ h7 h2 n9 g- }' `9 h
4.8.4 计算字符串的长度
0 m) [& \( @6 M; }4.9 指令修改技巧+ o' O+ x3 z+ Z5 L2 }& i

3 n; Y" k7 D& F/ B+ T+ X( |8 f第3篇 解密篇1 W' B- O0 [; |4 m& c0 u7 j

& |2 i+ V0 z; K- w$ |第5章 常见的演示版保护技术
1 @7 m: Z9 ]; t1 c+ I# h% F2 a6 H* y, n  `3 g5 W
5.1 序列号保护方式
# B' K& i1 e: l( s5.1.1 序列号保护机制
$ ?" U1 s7 l0 o* [5.1.2 如何攻击序列号保护
& l) K# h: w& n6 s5.1.3 字符串比较形式0 o& }# u5 O2 {2 ^: N: @0 Z7 a# x
5.1.4 注册机制作  M$ W: Y' x4 o  \" J7 g
5.2 警告(NAG)窗口) O3 ^4 x1 R- h" V8 G! z( ~9 t

7 W5 O- }; d/ k/ H0 Q! H1 |5 u6 T5.3 时间限制
6 T0 ?" p) K! n$ M$ K/ T0 s0 Q5.3.1 计时器
8 U( k1 c% {# \' R. L  x6 ]4 G5.3.2 时间限制
- ?7 ]: z& q5 I  N' C, k2 j+ o6 d5.3.3 拆解时间限制保护
) ]5 r. P8 ]5 t# i3 T. d8 ^/ ^; d. `8 h
5.4 菜单功能限制
% O! w! {7 u( H5.4.1 相关函数: H  P( u" Q! x. N
5.4.2 拆解菜单限制保护* K0 _4 |- ?, Q% |: H9 E* J; h

  j% q% @. R8 M: D5.5 KEYFILE保护
* `- Z/ o$ n7 \$ e- @) ^$ U; s5.5.1 相关API函数" }; x0 k: W! `
5.5.2 拆解KeyFile保护/ m9 E9 b2 L/ M/ U' |& M
1 h! G9 |# `+ ^) E/ J
5.6 网络验证
- p# p, j6 u3 C" S5.6.1 相关函数
+ M7 w( K9 l8 L# V5 Q; Q5.6.2 网络验证破解一般思路
1 A2 r2 j2 }( S6 B. Q" @
3 L7 e5 h4 L6 J$ J1 x5.7 CD-CHECK
$ P& d2 H8 U  T* V3 B4 K; ]/ _- X5 l5.7.1 相关函数1 E5 p: j& C3 f+ c( B/ ?
5.7.2 拆解光盘保护
0 |+ y& _3 T- W9 b8 k& x5 d9 l( Q) F' \5 g0 r3 @
5.8 只运行一个实例5 H: |( g, c- V4 V
5.8.1 实现方案
0 S- C2 ]6 _, S2 a5 v/ ]* W5.8.2 实例5 n' r8 i+ L- e% [  I; ?
5.9 常用断点设置技巧
3 I6 T7 ]9 P- j- [7 X
7 \3 E, r  t. F0 W9 d' {第6章 加密算法
  U* Z) \; x: h3 B8 T+ ^2 |. W. ]  A" S* d* i5 H  T
6.1 单向散列算法: e% S. k) @( G( l6 Z
6.1.1 MD5算法
: f: z0 e& k6 V* s  z9 N' ?6.1.2 SHA算法
. J3 D! j* i: N! ]% K6.1.3 小结
2 T3 c3 f) ?( {. A9 b4 t% B4 V  v6 X! K% x4 f5 ^3 M4 V* i
6.2 对称加密算法6 y/ M5 Y' T& G  C1 D' J
6.2.1 RC4流密码
! _  g7 A5 J5 Y; }6.2.2 TEA算法% p* P& S+ @3 X1 G3 B3 Y+ U9 s
6.2.3 IDEA算法; G, A9 l3 R1 i+ J- f' t. \
6.2.4 BlowFish算法
, j7 |  Z  Q- D) O( \& E" r6.2.5 AES算法- y; V9 D. i  X. j
6.2.6 对称加密算法小结
0 q: p8 U$ u! [. `% p$ b$ H: X2 x. H# k: C  ]
6.3 公开密钥加密算法
4 k, R, @6 u9 f/ h+ U6.3.1 RSA算法
3 F* ], M! F# W6.3.2 ElGamal公钥算法
# b& n! y7 B! C$ M1 W7 _6 ?6.3.3 DSA数字签名算法
  n% t' V/ d1 f3 w$ f% a6.3.4 椭圆曲线密码编码学
9 `3 _' i+ a/ V* \8 r
: ]- h4 z! e' l6.4.1 CRC32算法
+ Q* p  Y) g$ @6.4.2 Base644 k; n  H) K- |& x& M
6.5 常见加密库接口及其识别
' x  e) M2 I$ b* U5 p6.5.1 Miracl大数运算库
4 T# p- T7 S) c; }6.5.2 FGInt8 h9 l( h5 u: C: C; n3 p
6.5.4 其它加密算法库介绍+ ?, W! M9 ]& p* H; c, `! s

7 c/ J  ]' @$ v% t( \. ?6 j0 U' `第4篇 语言和平台篇
% w' B3 p  p+ M% t
9 u1 E4 n2 n9 t- J. `- b& }! U第7章 DELPHI程序( Y* e. d5 c1 n! B2 _  k
  `" W6 ]$ E2 r6 w$ J7 l! K. Y+ i
7.1 认识DELPHI
# h, F# \1 w5 F! o3 Q1 z7.2 DEDE反编译器
) P9 J' i  W  z: L! k; l7.3 按钮事件代码' D' `; j9 F3 W5 S) o8 m  C# ~
7.4 模块初始化与结束化
) |9 _  V0 ?1 Z. i; ?! r* p0 z* t1 q; U+ B# l; _
第8章 VISUAL BASIC程序0 G2 M% [: I3 }
, q+ v  d% w6 T" v( Y
8.1 基础知识
, Y0 o9 x8 r! b/ l  a8.1.1 字符编码方式
+ ?" O* ]' u3 h  _0 y8.1.2 编译模式. N2 K' ^9 [- {/ E& n) s1 a. }0 o. b

4 Z7 ?) ]$ L  I8 ?) D; V8.2 自然编译(NATIVE)0 Y& ~$ [$ T5 ]9 N, H6 D
8.2.1 相关VB函数: N  \) _6 m0 j$ ]! h* P* W' F3 U% c+ j
8.2.2 VB程序比较方式
0 j# C  e! j, ~  b% U
. I5 C7 k1 C: e, ]/ k- I+ {9 ~8.3 伪编译(PCODE)(cyclotron编写)
, J, E  Z- j" g6 a3 i# g6 T8.3.1 虚拟机与伪代码( p2 W: g+ e) e' F! ~2 \* u# \
8.3.2 动态分析VB P-code程序
7 i6 K+ r, B2 l/ e  v# t8.3.3 伪代码的综合分析
( H) x4 e' L0 x8 V, f* v8.3.4 VB P-code攻击实战% p& n4 |9 \1 C) M5 w

$ g  f2 m6 s4 l7 b第9章 .NET平台加解密(tankaiha 编写)
- Y3 }# Q% R$ ^7 r/ i) V8 ^' A' n2 l6 l3 r+ t( u4 y
9.1 .NET概述( z! n# a$ }$ D, d% D, ^
9.1.1 什么是.Net: p) Z2 y' M# E: k, B0 B
9.1.2 几个基本概念
) N2 C' v5 @0 E* Q9 G) ]7 ~9.1.3 第一个.Net程序
3 y2 T: D  \- y4 o& S9 ?7 t0 z, a' Q2 w9 v
9.2 MSIL与元数据; ?% F. |, o  U6 ~; y4 O$ U
9.2.1 PE结构的扩展7 y* t% s( V+ o5 k% p
9.2.2 .Net下的汇编MSIL" v% X7 [/ k4 W& T3 |9 l) f
9.2.3 MSIL与元数据的结合
9 C, o' \6 V% v' u$ e7 U# b7 J7 k0 |/ Y3 Q3 |4 @) a
9.3 代码分析技术
9 f9 `! |3 r9 w* H4 s; |& U: T9.3.1 静态分析
2 N- C" ~' y( X+ h" T* t6 i9.3.2 动态调试
& E0 t+ [9 j4 [& l, q. ^9.3.3 代码修改
) K0 B/ I% e7 Z" e- H2 R  d9 O+ c- T7 i! N
9.4 代码保护技术及其逆向; P* c0 _8 o7 t+ P0 @; {/ P( }# [" r
9.4.1 强名称
: ]" f+ S7 G6 [" O# \. N3 Y9.4.2 名称混淆
  C- f& e, O, G- R1 F9.4.3 流程混淆3 A2 a- G' j2 q0 p6 H' S7 K& x
9.4.4 压缩$ a4 Z5 r% T8 v' ~( C8 I/ ^. @
9.4.5 加密
( Z% l$ f% R' \1 j9.4.6 其它保护手段8 ?  _" ?6 b- Q% u3 C

/ S+ M7 L& v& H9 J6 _" F7 |9.5 深入.NET% {- @8 ?/ j- I/ G8 _, i
9.5.1 反射与CodeDOM
7 I( R9 ?! ?& T' {+ l8 m* r9.5.2 Unmaganed API/ Y* Q8 P1 Q2 L0 A
9.5.3 Rotor、MONO与.Net内核" Z7 V8 q6 p9 a+ r- D$ T# I

, m. M$ w3 V2 G% o! x/ }第5篇 系统篇
% w; U+ `# ]0 {; p# E
# L+ L/ w- U; r6 n9 q第10章 PE文件格式
) X. v% x1 u! _  ^1 Z) s
) ^0 G! M* |# C8 O/ N10.1 PE的基本概念: ]  ^1 `! F$ s* K9 F9 ?* J, J
10.1.1 基地址
& P6 w3 c2 k0 m. Q10.1.2 相对虚拟地址/ x. ^5 y7 n+ d; R" ]: m
10.1.3 文件偏移地址7 P5 d6 ?& T5 E: j+ b* V& x
10.2 MS-DOS头部
; z6 }% Q& u& M) u6 d
5 M# s+ |2 r( g! `. X2 x5 w2 S5 O10.3 PE文件头6 f) T- j3 X. D) y
10.3.1 Signature字段
  r* B0 H( g1 @; m- f10.3.2 IMAGE_FILE_HEADER 结构
) ?  N$ y9 y6 b5 E9 `8 C" D10.3.3 Optional Header( f4 }9 Y) u: _9 m# @1 R! z

$ p% l+ h- {6 K% R% J2 a$ W9 p10.4 区块
; C; t' k& C& r% v10.4.1 区块表0 h  C% y7 v9 [. Y  C
10.4.2 各种区块的描述
8 |! v6 L# J5 c) T4 i% N) W$ Q10.4.3 区块的对齐值- v1 Z+ \& d! T0 O" Q% Z
10.4.4 文件偏移与虚拟地址转换
8 a6 F5 n- M3 h5 Y) x# D
" b5 q0 u" @  S$ g7 x0 S10.5 输入表
; i  s% ?/ d9 h& B: e10.5.1 输入函数的调用
! {! T# l0 l7 k- _10.5.2 输入表结构
/ C9 f8 x2 y( X/ B9 ]& L10.5.3 输入地址表
2 |1 T+ v% u# W10.5.4 输入表实例分析, G! y# A' g6 y7 U. E
10.6 绑定输入
# A) d9 a/ L( t5 y) t
* U7 k  `/ ~3 R3 n) P5 W0 D10.7 输出表3 h& I$ q; `! \. E
10.7.1 输出表结构2 f$ r5 _9 Q( l: \& Z) B
10.7.2 输出表结构实例分析
" X7 r4 R2 R# v9 s- z4 s" o9 G6 P9 U) v/ P  E
10.8 基址重定位
0 M* P6 L7 U) Z: D10.8.1 基址重定位概念
2 E: d$ L' A( P' p- t2 `10.8.2 基址重定位结构定义1 W0 Y6 V. N& R
10.8.3 基址重定位结构实例分析- T& I; y0 v  ~1 l* s
/ i# g- }' e/ q1 q
10.9 资源
- T' J, B" `- y. f/ ~# d4 h' t2 j10.9.1 资源结构
% t; J! d) l: M9 s- Q10.9.2 资源结构实例分析* ^) @) D3 C' B' F6 l  U7 x
10.9.3 资源编辑工具
3 W5 r; P9 G) z0 r2 d' J10.10 TLS初始化: u0 f* Q) p, H5 Y
10.11 调试目录: `' a+ _2 B/ o/ O; ?
10.12 延迟装入数据/ D' J( s9 m. X0 ]( l3 \
10.13 程序异常数据" r) ~( `9 o! N
10.14 .NET头部, Q2 F3 F, _  J2 R) _
10.15 PE分析工具编写
% [" i; Z7 w* X, ~/ H10.15.1 文件格式检查# W# _" ^$ y% L; p' Z% N% ]+ H
10.15.2 FileHeader和OptionalHeader内容的读取* ^0 }9 k: t7 V* @
10.15.3 得到数据目录表信息" J) a, l9 {& Y" @9 ~/ B5 B
10.15.4 得到区块表信息! M9 }8 T" y, p9 R
10.15.5 得到输出表信息
4 m" y4 c* M: ]/ M) Z$ {10.15.6 得到输入表信息
! p0 G- U: E, F$ M9 v
9 U& N/ O& s/ ~" ^2 O第11章 结构化异常处理, N2 c# f* L( {" O
: _! {. J' B+ e1 t0 D( w
11.1 基本概念/ s+ ~! E# e, U- p9 _) P* u' W/ W
11.1.1 异常列表
, |5 Y* n8 R) \& {11.1.2 异常处理的基本过程9 n: x: F/ `' v
11.1.3 SEH的分类
& t- P5 q0 S3 L! a3 p6 _1 C2 q3 @# l! }9 P0 G% V1 |. \! t7 V0 h
11.2 SEH相关数据结构; s0 u* F9 e8 F3 ~  `
11.2.1 TEB结构% J2 {, ~/ Z+ b
11.2.2 EXCEPTION_REGISTRATION结构" A4 [( N. q  F1 l$ e
11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT* t+ ^# t/ z' V- q/ C
11.3 异常处理回调函数/ \' G+ U  h3 h, b( g$ D5 Z

0 S# O* G5 K- l* m# p第6篇 脱壳篇
  r+ \; [. T$ }& d9 j3 g% F5 ~( [# p: \7 m
第12章 专用加密软件
8 P$ J  S; E5 u3 q: G5 c/ ^4 x
* F* U0 v! f; I3 W) Q& z2 Q12.1 认识壳
, g. r" Q. c3 E8 t& k12.1.1 壳的概念
; Y4 W+ M. [+ P1 @12.1.2 压缩引擎
; b* E, k, t! w' P" Q- T7 T, t12.2 压缩壳; I9 I: A! k8 v0 s$ g
12.2.1 UPX7 c/ X4 N  U. o( r4 V5 \
12.2.2 ASPacK% v4 G" K, I) t, ~" X6 n

, {. e' A4 B  ~7 [$ K12.3 加密壳
6 Z2 C9 O& g, F/ i" V12.3.1 ASProtect
0 ?; u( Q0 B; j7 y12.3.2 Armadillo
& N' _- k/ W8 \7 K12.3.3 EXECryptor
- T1 P7 J7 x/ s. a1 m: \12.3.4 Themida3 C& f* u4 T1 E; o7 c- ?

: z& M% {" Q1 u* ]4 V12.4 虚拟机保护软件2 ^$ R  m3 \# q9 H
12.4.1 虚拟机介绍
# B2 G: s; C; c7 f: k12.4.2 VMProtect简介
& s) n. T5 K- v
1 ~$ T  P5 `$ T4 d7 B+ R2 q- H' [第13章 脱壳技术5 ?0 w1 w  \# n. @$ n2 h0 Y, J
6 _9 v7 h$ f; j' U. n: P
13.1 基础知识
5 |1 M, }) d; o, X3 ~2 Z13.1.1 壳的加载过程  O5 i& q% E* y6 h. W
13.1.2 脱壳机& |5 ~* Z( w- h0 s1 n6 z* v" Z
13.1.3 手动脱壳
* h1 B$ H% a" j0 q$ v& `4 b) y2 r' i. H
* W. [, c+ i  u& E13.2 寻找OEP6 w/ t3 d4 Q( }& l9 f6 w% c
13.2.1 根据跨段指令寻找OEP2 M& k3 s. C6 K9 m: J
13.2.2 用内存访问断点找OEP
4 g$ T( ?8 u# i! Q. U+ t' `) l" v13.2.3 根据堆栈平衡原理找OEP
- w+ p3 g5 Z4 _! ^3 R13.2.4 根据编译语言特点找OEP
/ @( n5 R) M8 f+ \2 S- B
+ I' L. Z' n/ o2 q5 I13.3 抓取内存映像; \8 e% e" K# C) w- [3 s9 x5 j
13.3.1 Dump原理0 d( y' ?* e" Z7 v. R5 }
13.3.2 反DUMP技术
( [- n+ ?  M* ]+ v
0 e' [7 {, N. J% ~9 Z0 D; n13.4 重建输入表
2 l# O) C  a# T5 V( k  Q13.4.1 输入表重建的原理) B6 p. ]% x% |1 y7 T
13.4.2 确定IAT的地址和大小
  W' ]  k- r( [8 X13.4.3 根据IAT重建输入表
5 i9 x9 X  |+ \" L/ }+ W  }- m13.4.4 ImportREC重建输入表# y( \0 S4 r% L" G3 B/ n5 {  A+ C9 j
13.4.5 输入表加密概括
& A" \3 I' G# s: e5 R7 |
6 n4 p, x- u' P# s9 a4 Z% H# [  a13.5 DLL文件脱壳8 Z/ F" U: R! X, c
13.5.1 寻找OEP
2 D3 I5 ?% H0 x. R+ A' v13.5.2 Dump映像文件
1 [3 L6 ?8 i" D2 c2 t+ S1 N13.5.3 重建DLL的输入表. B) |. F* M+ x8 l' c. T
13.5.4 构造重定位表; M/ ]- q& F3 D5 h3 R# n! z) e
13.6 附加数据
1 R- B& @/ G* ?4 u- t/ d& V13.7 PE文件的优化
& B) s- B# K4 y$ _13.8 压缩壳
/ Y9 C- T, D; f/ M& h13.8.1 UPX外壳
) u7 i% k7 r' T13.8.2 ASPack外壳
2 M! D4 j$ ~' x5 Z13.9 静态脱壳( E8 n5 Y, o  \' o3 \* {8 f8 {8 k7 i
13.9.1 外壳Loader的分析
$ R9 [/ K" U6 c9 X4 D+ Q13.9.2 编写静态脱壳器% z5 _! G* W5 ]( n6 G+ g
13.10 加密壳
6 |8 a( |) v) D* l13.10.1 ASProtect
( M% ?1 @# a: O# n9 C13.10.2 Thmedia的SDK分析' B( M: C( W  _. r5 d

  O; f5 |: b; G第7篇 保护篇7 ~: Y6 A& Z  I$ u8 Q9 b

( f# s3 ^4 I0 p" W8 t+ Z2 Y+ f第14章 软件保护技术4 [/ b2 t' E, j8 W
5 h5 t1 k& C" m0 K9 U$ U
14.1 防范算法求逆
/ @  B* ~1 W" Y7 q9 S/ m( t14.1.1 基本概念
7 f! Y7 f; j/ S9 T7 S14.1.2 堡垒战术
- }, r( I5 Q; \" {; k7 i: I, T! q14.1.3 游击战术
/ k. a5 A1 j2 Q% D
! \' y0 V  z& q14.2 抵御静态分析
2 F0 x- r$ k: i  z14.2.1 花指令. X$ l7 o2 z* k) T% I1 q
14.2.2 SMC技术实现
% r/ H8 P/ R8 M14.2.3 信息隐藏
) R# {' c5 P" g4 a1 ~7 K6 k4 ]# N14.2.4 简单多态变形技术
' X! K( A6 T  I: l$ X
9 R, A4 J, ]3 h5 R, y) a5 z3 |# Y14.3 文件完整性检验5 ~* Y2 t7 v( ?& l: E' `0 r$ Q
14.3.1 磁盘文件校验实现" T- K. i! D5 |% E! g+ G
14.3.2 校验和(Checksum)9 O' Q- M2 s9 U. v7 u9 {# Z+ ~
14.3.3 内存映像校验
2 m/ `0 f; M4 r( f5 G7 x* K3 ]+ u9 a9 w
14.4 代码与数据结合技术- C( t( E/ Z+ V  `, b7 j
14.4.1 准备工作
9 V+ X6 f6 _% G" Y4 I5 o14.4.2 加密算法选用! ~/ |3 z4 |6 }9 S
14.4.3 手动加密代码
2 N$ B$ O% W# v8 J) f! Y. r14.4.4 使.text区块可写
- g. ^0 M* c! @+ X7 m* [; ^7 U4 k14.5 软件保护的若干忠告
! q/ o8 K! a' p/ ]1 \, t) {
" S0 [, @0 t, r4 {& n3 C6 E第15章 反跟踪技术(forgot编写). N7 \* y$ ^. B+ D

: F# @4 i4 _$ n' c8 e15.1 由BEINGDEBUGGED引发的蝴蝶效应' F- Y7 Q/ d; N. Y
15.1.1 BeingDebugged
- @. R. r+ g8 D4 a$ E9 G  G15.1.2 NtGlobalFlag# F7 O; a# @) e3 V
15.1.3 Heap Magic4 n& P; w1 l; K& m
15.1.4 从源头消灭BeingDebugged
! Q' Q2 m3 f5 \* P
# i" N- M5 m. l$ Y6 ?! @$ H15.2 回归NATIVE:用户态的梦魇
, V& W% L0 R1 v) Z9 ]8 f. n" f15.2.1 CheckRemoteDebuggerPresent/ K6 A7 o$ ^9 E3 I
15.2.2 ProcessDebugPort5 Q. F& [5 |* a" a* \  S3 m
15.2.3 ThreadHideFromDebugger
4 S+ v& N  ~" g& Q. a: r15.2.4 Debug Object
  Y4 ^& z! e2 |6 x- m: H15.2.5 SystemKernelDebuggerInformation
6 `- H% a# `. B' m7 _15.2.6 Native API
  Q" |  e0 q0 t  O0 h5 _+ d15.2.7 Hook和AntiHook
0 h+ d0 {0 U* v; U. ?, s: z. M
& D' _+ D+ w* c) `2 M15.3 真正的奥秘:小技巧一览
3 u* F+ G5 ~" \/ U; k15.3.1 SoftICE检测方法: D- I% [, z: g. ^1 `; q
15.3.2 OllyDbg检测方法% b# n/ Q4 j( C2 N6 W6 ?
15.3.3 调试器漏洞
2 [1 O  V/ r  f/ G1 f6 Q7 T. ?- M15.3.4 防止调试器附加% v2 J' t; J9 p/ J( x* b
15.3.5 父进程检测
. _& j( W( o5 I' A; o3 L15.3.6 时间差+ Y' }0 J7 e) ^. f* C" r2 K8 B
15.3.7 通过Trap Flag检测
* f! t5 a" P3 }  a' o( X15.3.8 双进程保护0 p# z/ T" O! z0 p# d. \$ z  K& M: L

( j, q6 S; E; I第16章 外壳编写基础(Hying编写)/ n# C: A! x* K. q4 `. w

) d. v" ?% Y9 N6 \  H2 l16.1 外壳的结构1 S5 _/ r* v5 W! u
16.2 加壳主程序) `0 K/ T; e' b6 G1 ^
16.2.1 判断文件是否为PE格式1 G( J3 b8 G" B7 M) V$ w, I* z
16.2.2 文件基本数据读入! I" |6 ]1 C/ q+ }( Q8 h
16.2.3 附加数据读取
; s6 l6 s/ ~, N3 l+ |6 o( j1 w. {16.2.4 输入表处理! N9 v# y/ ?1 w& k1 E- E
16.2.5 重定位表处理
, P! J+ I. H( A16.2.6 文件的压缩
! ]  F1 T% n* Q1 _. y0 q. [16.2.7 资源数据处理
& Q8 Y9 F0 e1 t16.2.8 区块的融合
) `2 `- }& z6 u" y! M  S
+ m3 a- M7 G' Q1 L$ \4 A16.3 外壳部分编写
0 ?  t# ~! V2 u# ]: a2 q2 B16.3.1 外壳的加载过程1 d  ^6 h  d0 }  g& w, x" ^
16.3.2 自建输入表
! t/ o& K+ g; @4 W16.3.4 外壳引导段
2 g% ?) b$ |- k5 i$ ?  G2 P5 ]5 j16.3.5 外壳第二段
8 X1 P, u1 t7 L. T5 y+ L: `( C16.4 将外壳部分添加至原程序
0 x0 [0 @0 u0 W1 B0 L* [! G
+ M. k+ _# D3 ]/ ]* r4 r* r3 F) Z第17章 虚拟机的设计3 i$ h! g0 e1 R, R$ H; b5 b
; e9 i9 _# x4 z9 d1 P
17.1 原理: ^  |( Q; b* `; Q
17.1.1 反汇编引擎- ^/ V0 h0 V$ A, W: b6 }% P8 m
17.1.2 指令分类8 @( P8 r' }* ?2 V/ k6 m- a$ \
1 K9 i( \! h  S0 M% A
17.2 启动框架和调用约定$ m- d" q" W2 m2 t% `' m
17.2.1 调度器VStartVM
# K+ \9 d! D4 n) Z5 U17.2.2 虚拟环境:VMContext
/ F' w/ b" f9 ~' k" }+ I17.2.3 平衡堆栈:VBegin和VCheckEsp
) O$ Z+ Y: L9 g. P. L
* {2 o; G8 z5 R3 F" F8 L2 H9 P1 n17.3 HANDLER的设计
; m- F" ]% i! N5 ~# u( U% k8 x17.3.1 辅助Handler8 A) {1 @% e: b& B* R. G
17.3.2 普通Handler和指令拆解  R  ]& G! N2 v% D, N
17.3.3 标志位问题- L2 \$ U$ ^. ^. a+ G; n1 }
17.3.4 相同作用的指令
! A0 T5 G3 T8 n0 C3 V- B4 F7 H( Q17.3.5 转移指令9 k$ b. n* @7 A8 O. [
17.3.6 转移跳转指令的另一种实现" G5 ~+ E7 g# U4 v) W, m
17.3.7 CALL指令
# R+ J9 p* B: Z2 X  W17.3.8 retn指令0 c  j. H9 O. ?. S7 X- f
17.3.9 不可模拟指令
+ q8 f$ f9 l; ~7 T
: e, W: ~; d8 X: O17.4 托管代码的异常处理
4 h* p/ b' S& r- j9 C1 v1 U17.4.1 VC++的异常处理( [: }, e) M4 q1 Y4 i
17.4.2 Delphi的异常处理
# K! {/ [4 l- O4 k17.5 小结6 @: v: z% w3 ^* t) t3 t1 W

3 l1 ?& J9 d7 r1 f5 D* J! r- R第8篇 PEDIY篇
" {) c4 F) z" P8 p2 [& e
% H  D: s' K. ^  z* [# g2 G第18章 补丁技术
. \7 o  W/ m& \  J% O
. T4 ~# A' E3 v4 y5 T+ m  }) y18.1 文件补丁# e& Q3 M4 i6 o" C4 j1 b
18.2 内存补丁
  {! C5 N; J3 b( b0 e. A18.2.1 跨进程内存存取机制
9 C4 G/ k" W$ U/ ]) D; n+ j; \18.2.2 Debug API机制
: U5 @+ D4 _3 f- ~9 s% e* f# s18.2.3 利用调试寄存器机制
0 s8 n6 a! J; [9 D1 c; Q18.2.4 DLL劫持技术% M* o, Z- d+ r6 Q& e$ n- ~

: T+ o& t/ ]% K( a4 R18.3 SMC补丁技术1 c9 p- g. M- S& {
18.3.1 单层SMC补丁技术
$ g% @7 i8 o5 {$ i6 u18.3.2 多层SMC补丁技术
9 i3 V' A! f4 v! m0 U2 z& J! K7 H18.4 补丁工具
) H  U$ I' h* A2 m+ W& O5 R% U
* ~1 M. T8 i5 ~第19章 代码的二次开发6 }& E- T2 V( R. `+ p) D. u' B

7 t. H' o; K5 E. f" X5 J" }19.1 数据对齐
, y  _) ]# q, j3 L3 O4 ^19.2 增加空间# T0 H. B, E9 a: s+ U! V( @
19.2.1 区块间隙* _0 c6 s9 c7 U
19.2.2 手工构造区块7 I* U: Y1 d5 ^. ^4 k
19.2.3 工具辅助构造区块5 O% Z' ?; F7 \* r
8 V" [1 S7 o8 q+ K% Z, z
19.3 获得函数的调用& A2 s' @" y" ~1 k
19.3.1 增加输入函数9 F" {* K3 i# M3 o) m& H
19.3.2 显式链接调用DLL' I, a8 O, y9 n. F: Z1 |5 P

2 P; U0 Z- P  [* d  m" G# q% p19.4 代码的重定位
) C7 B( E' W1 v# L# E$ ~, w19.4.1 修复重定位表
# N( o% c9 `) l' K19.4.2 代码的自定位技术
, n* z% n, h) B19.5 增加输出函数
! C7 v2 t# }5 g% J$ }/ a2 ]  S: Y# s/ l, O- O  [
19.6 消息循环
! V: K5 K, ~$ g; e# \1 v& w& ^( a19.6.1 WndProc函数
) T/ k8 q) y5 Z% t0 @5 y19.6.2 寻找消息循环
" W" a8 `+ H5 H0 d) Y19.6.3 WndProc汇编形式
- j  g( j' y9 E" K6 \2 x$ @- K' a9 h/ C% L/ S
19.7 修改WNDPROC扩充功能- w3 i5 g: u: \/ s
19.7.1 扩充WndProc
% p" y) m. E6 C  C* u19.7.2 扩充Exit菜单功能, u4 C" c. p2 D- |
19.7.3 扩充Open菜单功能3 Y8 o  g8 W! b( y9 F

2 U4 O8 A5 S" }  w19.8 增加接口9 p" j5 S' ?4 a; L- k1 C8 i
19.8.1 用DLL增加功能) K! ~; o* n* o
19.8.2 扩展消息循环- h+ @+ o3 `  ?# [0 A* G% q- d
1 k2 e% Z1 |0 ^, Y
附录
6 _' W+ i1 r; Q) u: ~" c: r* E+ X$ y- W9 n
附录A 浮点指令
5 r6 c# t+ z& e  k3 c# a! F. A3 S" l& S/ q1 F( L% \& M
附录B 在Visual C++中使用内联汇编
2 Y, ]% B, F+ w/ x% r6 P6 ^1 j$ v/ J1 Z: |- T! i9 n
术语表9 s+ N0 g% r" b6 j$ U1 ~
# I3 H- G. R1 B  h4 {
参考文献8 T5 Y0 ?% V4 `) ?1 c4 {
. w1 e+ B9 Z& J
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

  1. # i& ^7 b* V2 ^
复制代码

# V* }. K9 A( I
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 14:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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