鱼C论坛

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

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

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

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

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

x
TB1ivqzKpXXXXcjXXXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
8 O" b& p2 a, K6 u+ y
) Q* b' D4 P" _  t; O6 y
书名:《加密与解密》(第3版)
4 X, I7 [5 h$ ?. p  W/ @1 L作者:段钢
1 e7 a4 v$ p5 q" J& y# i9 \出版社:电子工业出版社* W( D6 b, c1 O( q7 N  ^, p
出版年:2008年7月1日(第1版)/ p2 a  n. e* w0 r; `" E
定价:59.00元/ j  U% n5 [7 R' a% Y9 a! n
装帧:平装0 X4 v7 E1 Q" g$ h0 o- H6 m
ISBN:9787121066443
/ n3 _# ~5 T' j5 f, z' t" [) z; H' L- }1 L2 N9 ?
购买链接:
4 T- j: M- g5 k5 N0 i6 C+ {) {" }' m* [! j5 }6 w$ n


6 v' D& \$ _0 i5 ~. G: |亚马逊(Kindle)-> 传送门8 p1 b" E- r0 W# Q; y; t# Q

% U7 x+ d9 K0 }亚马逊 -> 传送门
0 b  f& y+ D0 S& H9 [5 w. j, x* n9 ^1 T* Q1 {
当当网 -> 传送门2 P  B- C  x" J2 H  h& a4 B- p

2 I( c" P  D# B7 G9 o京东 -> 传送门, Z; ~1 q4 n' k, S8 l* X

; h9 U, B+ F9 G: H& W6 S) F天猫 -> 传送门
% C& g7 m+ m1 Q) s: }7 G7 x6 h" b. H% i: {

7 k; I. _; F4 J; E8 N内容简介:
- {4 N* w" z* @+ k7 L
( U( R, Z# L2 k
- G: k- W2 v! C+ i" D, E
《加密与解密》(第3版)以加密与解密为切入点,讲述了软件安全领域许多基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。读者在掌握《加密与解密》(第3版)的内容,很容易在漏洞分析、安全编程、病毒分析、软件保护等领域扩展,这些知识点都是相互的,彼此联系。国内高校对软件安全这块教育重视程度还不够,许多方面还是空白,而近年来许多企业对软件安全技术人才需求量越来越大。从就业角度来说,掌握这方面技术,可以提高自身的竞争能力。从个人成长角度来说,研究软件安全技术有助于掌握一些系统底层知识。
! ^2 t8 B. @7 G: V6 b$ K! N  a+ r. A& Z; F9 E5 M' s
《加密与解密》由看雪软件安全论众多高手共同打造而成,读者将从《加密与解密》(第3版)中获得许多极具价值的技术,是专业开发人员不可多得的一本好书。7 E1 G+ }& ~2 g) s, G/ v" C
* w7 l9 O# y. N$ g
7 \+ h# ]; c7 X8 G2 I
目录:
! C2 d# g' R; C1 W7 A4 T0 A0 r7 I1 N$ T

0 l3 K  Z6 q0 F. y( @( I
第1篇 基础篇
' {5 G# r9 Z& O& B) j8 t* j
( X3 A- ^* b. s  D) d7 D# \9 n第1章 基础知识7 J% A: q3 u% V  M0 a2 x
& I( w4 R4 a( u$ p
1.1 文本字符
1 I0 z2 ?/ O" q* C  O* |7 Q1 @1.1.1 字节存储顺序1 M! k+ ^3 s6 `! Z/ o
1.1.2 ASCII与Unicode字符集  s! f7 h% P6 _$ k( M2 L

9 ~. U9 Z2 Y7 T4 C& Y* o6 e1.2 WINDOWS 操作系统) {, f; s, K' X' f$ z( T9 A
1.2.1 Win API简介
) V  Y: v, {# {1.2.2 常用Win32 API函数4 D, K; I# `' F7 @. n3 f" l" c2 `) q
1.2.3 什么是句柄
! _  E8 B7 G8 U. }' x5 a: j1.2.4 Windows 9x与Unicode4 g* }8 d) {, w2 }6 ]( Z- P/ K& ?
1.2.5 Windows NT/2000/XP与Unicode
$ p1 k5 P7 t) n! P5 \1.2.6 Windows 消息机制
) h( e1 ~8 R7 K& H5 J% r. ?# [% n8 M9 V0 f$ _6 ^
1.3 保护模式简介3 z+ C: ~& l" ]0 h- ^) `
1.3.1 虚拟内存
' t7 E4 t- [5 F/ j1.3.2 保护模式的权限级别- ~7 P" Y  [% t( F- o( ]
1.4 认识PE格式" D" h; o3 {" ]* a3 y; N- T; b2 L( t

+ q6 r; |  F3 b( f+ _- H第2篇 调试篇9 n* m0 _( K7 s" K$ L8 [. j( J

2 x; G3 {4 a1 Z) `第2章 动态分析技术
, p2 K5 |3 U7 z! b, t/ M4 y( i
7 d! A: z# q+ n0 b. C' Q6 x" R2.1 OLLYDBG调试器
3 @# @" Z/ Y5 F4 x2.1.1 OllyDbg界面
5 d$ }5 M( {6 f' z5 H+ f$ L2.1.2 OllyDbg的配置
- ]9 W2 ~& Q& l  l' a. T2.1.3 加载程序
0 P+ G0 e9 h& b7 w' d% Q2.1.4 基本操作# {& H$ E5 H! V: m
2.1.5 断点) M  Q1 y/ T% S& G7 L& G+ q
2.1.6 插件
3 s' [6 K% b3 f& V8 O2.1.7 Run trace
4 _/ x$ \4 X* a: v8 F' B6 H2.1.8 Hit trace
% U5 }+ t7 ]5 U, t3 X0 V2.1.9 符号调试技术
% ~6 Z: j: D3 O2 T' r3 Y2 o2.1.10 OllyDbg常见问题
! V+ g1 d4 Q& m2.2 SOFTICE调试器. f3 T% x2 |+ |/ c' \* E& _0 L
& ~3 k7 v8 d+ J6 z2 [( P# n, K7 `% S
第3章 静态分析技术: k* d4 b, F! Q6 `

5 I0 G: N5 X) p! [. W5 T3 Y3.1 文件类型分析
+ @: K( |) j6 t4 a1 z3.1.1 PEiD工具
5 \" u  E! o/ f! k6 |) C6 f3.1.2 FileInfo工具
6 j; h6 Z% ?# D3 I! l. N$ c
; o  _' M" B* I9 O3.2 静态反汇编
( d8 V% O3 N( M: `6 q3 ~3.2.1 打开文件1 n6 W. Z! B' Z0 s7 _% U
3.2.2 IDA的配置
+ w" O- O2 o9 C0 Y& w3.2.3 IDA主窗口界面6 j( I, K5 E' b+ h
3.2.6 交叉参考
4 F1 @* `  r" b' c. \8 q3.2.7 参考重命名0 H2 M$ K6 z9 n# E; f8 O' e
3.2.8 标签的用法& P2 Q. b. v6 q7 t/ m
3.2.9 进制的转换
' M9 Q+ [" Z4 T3.2.10 代码和数据转换
( w4 q( V( u% E* V% }1 B1 Z3.2.11 字符串7 I; C) x! a" L" h& E) \5 W( l( g
3.2.12 数组
- L; ~) I1 P  }3.2.13 结构体7 @$ U4 L. {5 b0 d! R3 ~
3.2.14 枚举类型
7 X5 R5 B1 Y  I9 u& C+ u) Y/ ^3.2.15 堆栈变量$ q: d& Q6 v* G! I$ a
3.2.16 IDC脚本( `. j9 D# k. P- T) f6 @: J
3.2.17 FLIRT
, o# c4 a1 {8 y. Y/ R' m# u3.2.18 插件
3 S, L/ M: j7 D: M; [8 O& X3.2.19 其他功能5 v" r0 a, J9 Q1 D7 R
3.2.20 小结
+ ~3 x: G' u& v  [7 W, m. Z3.3 可执行文件的修改
! E6 g& L: w' g4 ^- [. @  V3.4 静态分析技术应用实例3 k* D: P2 b, K* O4 Y# [
3.4.1 解密初步2 M$ F/ P, B2 x
3.4.2 逆向工程初步* G! o( Q0 J8 h

7 s. {% W" ^3 q. U8 Z, V1 S第4章 逆向分析技术$ \; c$ J2 U  Z. ]8 V& e  p

1 H9 V; M: {: B* _& q4 d4.1 启动函数  U; F) C$ O- X( u+ r: ^
4.2 函数
7 @+ @$ H4 J! }( w( d* v% Y! a4.2.1 函数的识别* z4 o& u9 b1 `
4.2.2 函数的参数/ U$ g9 @( k9 ?6 t6 n4 Z( S& w7 L
4.2.3 函数的返回值) J' \% ?+ J% ?

# n+ y, t' g& N4.3 数据结构
" z7 Y7 |/ ]* {( v2 e* c% ?4.3.1 局部变量
6 H7 O7 H  I  e7 v  ], g4.3.2 全局变量
: T( a$ U0 O  q* ]" W4.3.3 数组9 M5 ?* o" U! c: A5 e3 }/ h
4.4 虚函数
1 G0 S# _+ u6 N/ c/ d" R1 L4.5 控制语句
7 c& [, A8 V4 c0 m7 F, `0 V% j4.5.1 IF-THEN-ELSE语句
! Y' A8 k" a9 V) X$ U) ~8 t2 O: j8 @4.5.2 SWITCH-CASE语句
! L& d3 M( G- K' D, @- M  {4.5.3 转移指令机器码的计算
/ g1 ^% x* }6 X& Y  ?+ j8 _2 o4.5.4 条件设置指令
0 j/ h8 s& [% i8 |4.5.5 纯算法实现逻辑判断9 o0 i5 H' ]* o# Q- z5 C' r8 g
4.6 循环语句" Y1 Z& Y* o+ G; [# {* p

1 O4 y! D4 h" {$ k9 i# k! V& {4.7 数学运算符; ^# j, H, S. [% X
4.7.1 整数的加法和减法  v$ D. T0 b! t* t1 l; M
4.7.2 整数的乘法6 Y3 ^! J/ m; L( i
4.7.3 整数的除法
9 M3 p' C: C  p( n* g, v* `3 C! T! R6 }: I2 i
4.8 文本字符串
  {2 ?, f7 Z* J) C9 R2 N4.8.1 字符串存储格式
' r3 A' Y0 i9 ]5 G9 k( }/ ^4.8.2 字符寻址指令
4 M8 r% Y$ `/ J0 o4.8.3 字母大小写转换
, n7 O+ Q2 q  s- y* g4.8.4 计算字符串的长度
4 Q: D+ D" v( g1 ~4.9 指令修改技巧3 O1 ]6 i  H  G

. u& G4 `! z3 Z% K  d第3篇 解密篇( }/ y; Z, h$ x! E9 _1 T* e7 F
0 D1 i0 L, R6 A1 f9 V
第5章 常见的演示版保护技术
. Z. l5 I/ s4 @# O: A5 e3 `) K3 V
" @$ N6 b, @. V0 f- x  x) r6 z( X5.1 序列号保护方式
, J' s  R' ?  p/ S( h5.1.1 序列号保护机制8 l3 C2 O" k, Z2 N
5.1.2 如何攻击序列号保护1 B. Q+ N6 B5 D. q5 p  ~% Y8 g
5.1.3 字符串比较形式
, N" e- i( }8 r1 M& B7 F! s5.1.4 注册机制作
$ U8 @9 x5 `9 N: Y) g' I5.2 警告(NAG)窗口# B! v5 B- N6 Z( T+ n7 }

  P) U( r& G9 ^2 }9 z' c/ N# Y% Y5.3 时间限制  `% m5 K6 o2 y( a8 t; @- g" o
5.3.1 计时器* Q' T, T  R7 @+ |0 E% f4 g# G
5.3.2 时间限制8 y% {4 p# b( l
5.3.3 拆解时间限制保护" m8 Y! ^9 I' N
# y) D3 h2 G6 P
5.4 菜单功能限制
* b# r1 w. s& y/ T3 k& d5.4.1 相关函数
7 J! M1 Z: b! C6 k9 ?5.4.2 拆解菜单限制保护
5 x1 b0 I# d) z7 V! W, R! n2 M
! {* ^# _+ y0 R5.5 KEYFILE保护
9 d) X' z$ t1 z5.5.1 相关API函数
1 _/ `9 h- z7 ~8 s9 a8 p) ?7 u5.5.2 拆解KeyFile保护6 n: H! J8 t3 ~: V! _
( I, A. \0 s) |1 l
5.6 网络验证
: P7 _" b1 w0 }# ^1 N7 T/ ~5.6.1 相关函数+ c9 l! w% c' V$ ~3 @  @! V
5.6.2 网络验证破解一般思路* n  Q' F* ?* n) i% a8 z( S& X$ `

/ u; y; x  L8 ?9 g  p5.7 CD-CHECK
, H1 M; W. ^8 {4 ~; U+ n/ N5.7.1 相关函数
, [0 b/ F7 P" L" w7 o6 M* M5.7.2 拆解光盘保护% R. \6 K$ ?( C+ l/ y; {- \+ K
$ m$ J8 B6 d; P2 _5 L1 ^/ s2 W
5.8 只运行一个实例" Z' X  T& U2 C; Z+ f% d; S3 V
5.8.1 实现方案
+ m7 z; G$ b' D, F' r. q: n, I5.8.2 实例
5 a! L* \* N7 Z; E% W5.9 常用断点设置技巧+ B* R; i! N4 W  {3 e- Y0 s
/ ~5 [( X1 _- m; @, ]) D
第6章 加密算法* e  f* z! }. q7 N; _0 y

$ [7 t8 S( C& ~# ~! J' ]1 u6.1 单向散列算法
4 D5 ~2 b' t0 E' u8 d6.1.1 MD5算法
/ M2 {* q. W4 A/ a; D) i3 ]6.1.2 SHA算法
8 d: W3 J( r+ J5 C( o6.1.3 小结- V' T- v/ _  `
! b5 Y; J) A7 L1 f+ M$ Y* v
6.2 对称加密算法
* z6 r; z9 H" ?6 w% L6.2.1 RC4流密码2 y( v- r0 \' C
6.2.2 TEA算法# _8 |# n. |( P* |  F
6.2.3 IDEA算法
! ?8 r3 c3 h9 V; T7 r" Z6.2.4 BlowFish算法
! F) D, x6 h* P8 [+ q* i6.2.5 AES算法5 L( q2 y% h! m; V
6.2.6 对称加密算法小结. V  K1 a+ a4 }& i
5 I$ e6 E# Z' g  Q# W* ~* r$ p
6.3 公开密钥加密算法
0 J4 E$ H5 D+ r) l3 k6.3.1 RSA算法8 v/ L$ T" D  m" T
6.3.2 ElGamal公钥算法
3 w9 T% h/ t7 I) U, v6.3.3 DSA数字签名算法* }* P  K) s& B( w* A
6.3.4 椭圆曲线密码编码学: }; S4 ]8 b' W. A3 g7 l

! }. Y& v" o6 o4 H3 [' z8 Q2 f7 Y6.4.1 CRC32算法
1 d0 I* C* i3 M) q1 A: d/ ?5 x3 M6.4.2 Base64
2 j5 V7 q- z- D- F  V5 F  }6.5 常见加密库接口及其识别
; A1 n5 b$ w0 t6.5.1 Miracl大数运算库
5 @) `) o2 K+ p8 n* Z$ v  o* @6.5.2 FGInt
7 H0 h! u2 a$ C9 ]2 R6.5.4 其它加密算法库介绍
: ]% H9 Z/ Z& k' X" J- i/ S
$ G# P2 [: q! o# f* C1 W4 N第4篇 语言和平台篇
* ?/ `" F  J  Z
7 e; B7 X; F6 x  t" |" [第7章 DELPHI程序" w0 `9 U7 a" k. ^( x$ @6 M% P

( u" m7 Y6 p: Y/ w7.1 认识DELPHI$ n% D( c8 H$ O# y0 y% C
7.2 DEDE反编译器
* \2 o4 r+ r) X* ?7.3 按钮事件代码0 i! V+ Y0 \; u/ m/ y2 c3 G! n
7.4 模块初始化与结束化
* n* D, F: f2 k: P9 O+ m& u& V5 |* m& y% Q6 Q
第8章 VISUAL BASIC程序
# h3 c4 h+ H; v* b8 Z
8 |" x4 u7 p. U/ V5 }" {8.1 基础知识. T1 A4 \7 L# r- D% A: C
8.1.1 字符编码方式
" o) l) y6 m% g3 z# v8.1.2 编译模式1 X" P. O# l6 l, R; M8 V

! A8 `# _; Z2 O+ `' j8.2 自然编译(NATIVE)
: g- U0 c' }* b8.2.1 相关VB函数
" `2 Q" @( c1 q0 B- Z. d8.2.2 VB程序比较方式6 _- ~1 C5 k6 f8 g3 {5 ^

( ?( B% }$ L% r" p) ]+ G8 f" U3 J8.3 伪编译(PCODE)(cyclotron编写)
) o  T  ~! }+ h6 g4 u4 f; n+ v9 {8.3.1 虚拟机与伪代码
  c% |* W- v, O8.3.2 动态分析VB P-code程序
0 ^+ J/ @! u/ S/ P. E+ T" U9 Z8.3.3 伪代码的综合分析4 @4 i, f0 Q: ?+ D' T
8.3.4 VB P-code攻击实战' f9 d6 ^& A6 N
& Q4 P3 B) b/ d: Y! d
第9章 .NET平台加解密(tankaiha 编写)
! c+ r3 \& p: k& g& P- r
  _) \4 S- R" g& [, s3 Q" H9.1 .NET概述2 @# D7 }. P/ n
9.1.1 什么是.Net
5 Y3 P/ C5 r( X% y9.1.2 几个基本概念8 h4 H) }' s0 _8 m4 u
9.1.3 第一个.Net程序4 l! [# G9 G( g6 B$ h5 J  _+ X

& N! y5 @% x2 ?) I( @# S* C9.2 MSIL与元数据% o5 j* X4 v: A, C
9.2.1 PE结构的扩展
4 n5 w5 c, }; r9.2.2 .Net下的汇编MSIL
" r( v7 m) u" e* S! d# T9.2.3 MSIL与元数据的结合
4 w; L: q' s4 ^$ y
" C* Z4 R: F  L! F- {3 }. b9.3 代码分析技术
$ Z7 ^( q3 J# A' l1 P5 m1 X0 Q- A9.3.1 静态分析3 Z+ b$ T) n3 o. Q- s& V) {  u7 e
9.3.2 动态调试/ C" p# l& `+ j
9.3.3 代码修改; g- Y2 h4 u, b: v9 \3 A3 N* x+ g
# D- D6 `. P$ B8 }- |  U# p
9.4 代码保护技术及其逆向
, Q7 [3 b# R  k& p; b/ o3 f9.4.1 强名称
& v  z, ^& s! h9.4.2 名称混淆, ^/ |3 i8 R& g- u8 _2 K3 I" [
9.4.3 流程混淆0 C- o' e% ?3 Q3 P
9.4.4 压缩
6 ^% ?& I6 Z  q$ f# Y9 G* r9.4.5 加密; L8 Z) L( R" C  @% a/ l. H
9.4.6 其它保护手段
  H' f! T1 f5 Z; t& r# v& B7 j# o* H$ A  m7 e7 p& g& b  @
9.5 深入.NET
; `# t3 ~0 S; N' N0 _$ m9.5.1 反射与CodeDOM
) e: ~( ]4 i  W9.5.2 Unmaganed API# d# p9 r3 J  ^9 O- @
9.5.3 Rotor、MONO与.Net内核+ G8 n% q. J# F: e. _8 G

2 Y* w, i( c6 u$ a  w. x* m第5篇 系统篇4 s$ p$ v: g  m' `5 C8 A3 Z

+ z$ }9 w# ~/ w9 P# s8 H第10章 PE文件格式( Z5 S) d+ @7 k. ^9 M' L2 h9 h
# ?: a4 {. f, f, }$ s% u: ]. R
10.1 PE的基本概念
7 v( L6 |4 D$ Y4 N0 Y( `. j10.1.1 基地址' Y4 f8 J" a4 N, f
10.1.2 相对虚拟地址5 M4 o( ]7 B5 U# L# m: s
10.1.3 文件偏移地址
! j7 |: i' F" i* I10.2 MS-DOS头部: ^$ x2 }+ e. H0 }- n
, U" J" a8 ?& |3 P' h: k
10.3 PE文件头
! t) Y3 [* S( f) s10.3.1 Signature字段  e0 D, ]5 v6 v8 ]4 G
10.3.2 IMAGE_FILE_HEADER 结构
% ~; q9 s# U# m4 T10.3.3 Optional Header
' q( V: A% e  G
" M3 }& x* A. q, t' P  `+ a10.4 区块
, e  H1 y5 V* e$ r* h9 j/ y10.4.1 区块表6 N  e- i% P8 P  n% i
10.4.2 各种区块的描述& w, I4 c% v0 r8 w" V* J
10.4.3 区块的对齐值5 }0 u' B: p$ v$ e% \
10.4.4 文件偏移与虚拟地址转换  A2 t3 \5 {* a$ W, X- }. v% }

: R4 D% ^  r' M) E10.5 输入表
. C- a* x" u; \8 C" d. y8 N10.5.1 输入函数的调用
$ m8 j9 H. L. L4 ^8 N* P& [$ |: s  @10.5.2 输入表结构
- I) I% O! i' C( C+ X10.5.3 输入地址表* k; }4 n5 |& j5 I+ Y; N; n# n* d
10.5.4 输入表实例分析  v5 V3 H; F4 v
10.6 绑定输入9 h  n1 F6 D" c
; [# C3 X$ P1 j- k! l
10.7 输出表
' \; l  G: k  H- f6 D0 I2 m' J10.7.1 输出表结构7 b: a3 p3 {% [) o5 j
10.7.2 输出表结构实例分析% g# v/ W- O- E# m# b" F3 ^; b

9 u" o$ z+ R) b2 P10.8 基址重定位$ {* \9 _* o4 V! K, s
10.8.1 基址重定位概念
5 B" ]$ |6 K& _* c! D9 a10.8.2 基址重定位结构定义* U2 l0 ?8 J( I4 K0 l& p2 o/ l
10.8.3 基址重定位结构实例分析
3 R4 O# |# J4 L- i* _+ l: R
6 T9 Q2 z3 ^% T+ s0 ~& N& |10.9 资源7 Z2 p' S' T- F9 v3 v: P) L
10.9.1 资源结构
; ^' [. F3 k, A1 M  X8 z/ C1 R: l2 f10.9.2 资源结构实例分析
: V3 }8 a' [. H9 z+ B8 r' d! j. {10.9.3 资源编辑工具
. D. a0 g* N4 V: I1 X8 |10.10 TLS初始化% e# S) F4 q6 c8 S# x$ `
10.11 调试目录
6 d2 E+ W) r. T4 G; s10.12 延迟装入数据; A5 x0 J! L# Y1 R, q2 y; j. J5 N
10.13 程序异常数据
6 X% j3 G( B& |, E2 V# Q10.14 .NET头部
, }% L, X: p- W7 t) x! h10.15 PE分析工具编写" d1 A  {, P1 w  T1 N; I0 v4 D
10.15.1 文件格式检查
& @# S9 i* g5 o; B10.15.2 FileHeader和OptionalHeader内容的读取0 ^3 h" F2 [" n$ L. [, H+ ]
10.15.3 得到数据目录表信息
: S/ T, ]4 M3 A! l) d* S10.15.4 得到区块表信息& ]* O$ m/ M% Y- @: ^$ i9 P! N" M( O
10.15.5 得到输出表信息
$ L% R/ G2 n) p& J- w* u10.15.6 得到输入表信息9 R* p5 m8 Z7 S& E0 b7 r' _
* b. r, M/ U/ B9 {# d, N7 H! D
第11章 结构化异常处理
. M, \. X% |! f' E% g6 O7 ~
7 _1 O; {" V2 n2 u! ^: R$ j# o11.1 基本概念$ M1 d, r* D6 @
11.1.1 异常列表
: ?' R. {/ _. I  M  E: h' J11.1.2 异常处理的基本过程% y4 z* B! C: I# `* O+ H
11.1.3 SEH的分类$ y+ \  l+ i: G$ k. ?
4 q2 _* {; n. F4 f* k0 i
11.2 SEH相关数据结构: `! }0 ?' x" E, v
11.2.1 TEB结构& c4 |5 F' Z- D) T6 ]2 Z8 j3 h
11.2.2 EXCEPTION_REGISTRATION结构
$ E) ?2 {8 S/ z% N, A5 ]1 R' F- X11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT0 Q! x! j. }. ~; a5 l* m- ~* d# p
11.3 异常处理回调函数
) O* r3 o  A- R$ {! I& @
% b( P- @) m; j4 G. p( k$ l, `第6篇 脱壳篇
6 @8 z4 y  U% ~) K6 e9 y
1 u5 p6 I5 T, U. F0 m第12章 专用加密软件
, S% ^& S9 d+ k' Y) G9 j  j& Z6 u, v+ v9 G6 Z
12.1 认识壳, E" v2 A; F6 Z$ ^
12.1.1 壳的概念
  \' @# o) L# |- f12.1.2 压缩引擎
% o9 A  x9 ~+ A; H* K* Q12.2 压缩壳
7 o4 l: u2 [% a! C6 d: p1 Y: _3 U/ w' u12.2.1 UPX( y" Y# y( f* d; E" [# I6 B7 y
12.2.2 ASPacK( r' g$ j0 ]* \4 N2 \; M2 W  V6 J' e
4 `& _4 L$ ^2 C5 O2 }9 u
12.3 加密壳, t" a5 U9 u# Q7 {2 D( H% X
12.3.1 ASProtect$ |1 D9 r+ g0 V7 X
12.3.2 Armadillo
' A1 x$ B; I6 ?- E, i' v12.3.3 EXECryptor* f8 K2 ?- z5 }, ]0 D2 h1 [+ P
12.3.4 Themida9 P3 n$ R- [) A2 e

$ D( m/ V$ x+ H6 i; @12.4 虚拟机保护软件1 E$ d5 h' a& E) b6 `9 V
12.4.1 虚拟机介绍
2 F, e. F- M$ d& A" D; L12.4.2 VMProtect简介5 d# R- m8 g, }8 r8 R9 j) U
1 \. p) ?+ \: Y2 W6 z  |
第13章 脱壳技术
+ |7 A' A9 h; n& ], o
  F3 @4 A1 g% |9 S13.1 基础知识
2 |3 d. _- y2 R. X8 m; p' c0 E$ _8 P13.1.1 壳的加载过程7 Z* b, i7 y0 A" e5 C' `
13.1.2 脱壳机
( v7 \( Z. \" S' y* d7 T: F1 i, ~4 J13.1.3 手动脱壳
+ u# e' a# Q1 W) m7 S1 v; }% ?$ C& C
13.2 寻找OEP
: b' E* k" z: N13.2.1 根据跨段指令寻找OEP6 t+ C+ b% Y4 S" F' s
13.2.2 用内存访问断点找OEP6 j. T1 y- r/ p; D/ A' f0 ~7 ~
13.2.3 根据堆栈平衡原理找OEP/ r8 D1 f* Y7 B; \  M
13.2.4 根据编译语言特点找OEP1 p* ?9 Z7 a7 h, d+ N3 x% Q! h: i
, ~( v4 L" \) `$ V' X
13.3 抓取内存映像! |; o4 F( }6 i5 i/ e$ q
13.3.1 Dump原理9 y" Y- ]/ l+ J) C
13.3.2 反DUMP技术( S( h5 t8 G. G1 K: y: S
9 ~7 w! j0 a! v0 C( @1 _6 I
13.4 重建输入表
/ G# w9 A: P1 Q2 v13.4.1 输入表重建的原理- j* P7 n5 g$ V2 Y
13.4.2 确定IAT的地址和大小. ?8 s! V. M; r7 H2 G
13.4.3 根据IAT重建输入表1 A5 ?5 N) o; f: c" W5 a
13.4.4 ImportREC重建输入表
1 Q- U' z* V4 f* m9 H13.4.5 输入表加密概括
( H4 e, n' {" V+ q4 A' Z; I/ `" C8 r7 [( F/ U) {
13.5 DLL文件脱壳
% l- Q3 U  Z8 S, n9 l$ O4 z& S+ m& F8 `13.5.1 寻找OEP
. U3 v) c$ c! }+ m3 I4 d  j13.5.2 Dump映像文件- k: E, q9 ^& f7 t8 P1 A* l) m
13.5.3 重建DLL的输入表- v; Z" y; f! k+ d2 w6 s0 \
13.5.4 构造重定位表* {0 m" O' ^. }  U7 M+ b0 L2 X
13.6 附加数据' |+ S2 [6 {& o  P+ R8 H0 K
13.7 PE文件的优化& a0 }; G+ W; J, F8 k" R& C
13.8 压缩壳1 t0 Y  t) i6 y) T# V+ [
13.8.1 UPX外壳
( `$ m! _: a2 z4 G) O1 o) J13.8.2 ASPack外壳. w8 `) f  z" d* r0 p( }- @; W4 F
13.9 静态脱壳
) E$ v% k  E! K8 x13.9.1 外壳Loader的分析3 e1 H* s1 z- A
13.9.2 编写静态脱壳器/ v1 w5 R% m7 X$ d' `5 a6 Y
13.10 加密壳: q# L: X) G2 @4 k0 g; u  H
13.10.1 ASProtect. t2 _# P# {) g# L+ D  r3 I% {
13.10.2 Thmedia的SDK分析5 Y1 c6 M% w6 P$ V0 |. ]
/ L- Z- ?1 T1 [5 h
第7篇 保护篇
$ r+ [3 ?  q" `: c7 Z* j0 ~, Z
/ n$ p( R6 {$ i5 D# ~* t; T第14章 软件保护技术' L' ]& @, m* T7 D1 A1 J8 V

0 w5 V; o) `1 t* d; R14.1 防范算法求逆% V3 k7 R" o  e7 R
14.1.1 基本概念# A4 F6 a9 E7 P8 D' y
14.1.2 堡垒战术
: P; d  q) ]' D- K* U6 d+ O14.1.3 游击战术+ T9 e5 K, v6 c0 N  a7 J. P
0 W# _7 f) D2 i& D; R8 S
14.2 抵御静态分析' ^$ d5 I2 ?9 K5 k6 n+ c8 H
14.2.1 花指令
6 i/ D( p* d- }. P% `14.2.2 SMC技术实现
& c8 r! [  \, l/ ~! d+ K14.2.3 信息隐藏/ C7 @0 e' d% Y4 W2 B
14.2.4 简单多态变形技术
' L* k, J; Q) _: |8 U2 B; q! v
8 a; N4 T  y! c14.3 文件完整性检验
2 A- s% m3 _" d8 C$ m5 b' A14.3.1 磁盘文件校验实现
& I& |& ?7 B2 c% t% E14.3.2 校验和(Checksum)3 \# W6 |: G# f/ _% u$ e) E2 P
14.3.3 内存映像校验: S6 @; H4 C8 Y9 v, q9 _* e5 e$ }

3 b& c$ t3 l3 [4 [7 K% M14.4 代码与数据结合技术( g, K8 @  f3 e% q6 {3 }7 C
14.4.1 准备工作
* l0 f  d. r0 k* `14.4.2 加密算法选用* f, a+ d7 I0 E5 @+ d/ b* B0 g- k2 f
14.4.3 手动加密代码
5 V% d2 }  ~$ k; I( S; l, P14.4.4 使.text区块可写; P# [  l' C  q5 x& ]/ G
14.5 软件保护的若干忠告
; T0 X, ?- b& }& ]8 p, a: D3 [. y, x
第15章 反跟踪技术(forgot编写)
, {' Q2 g8 a0 P9 E7 @& y- G
4 v4 D6 Z  d4 k/ u' `15.1 由BEINGDEBUGGED引发的蝴蝶效应2 I: H! m5 w+ K( H8 i0 E
15.1.1 BeingDebugged
" C1 A9 I! ~2 z* m15.1.2 NtGlobalFlag6 J5 q4 R  O% i; v* Z
15.1.3 Heap Magic' v& F; v* k. j2 K5 b9 B9 d
15.1.4 从源头消灭BeingDebugged
+ G0 b+ {  m  f4 [* M2 R# m* m" B$ l3 ~( Z/ W8 Q0 w2 c
15.2 回归NATIVE:用户态的梦魇
+ n+ B; B3 E2 _: e  h15.2.1 CheckRemoteDebuggerPresent
* E. _9 i* B/ [) n15.2.2 ProcessDebugPort; p; S! Q! h3 h
15.2.3 ThreadHideFromDebugger
4 Y2 G) ^9 B! q15.2.4 Debug Object
+ }, n- R( q# M$ I  ]15.2.5 SystemKernelDebuggerInformation
/ W5 b; Y8 _9 L  W( I; p15.2.6 Native API0 D& p1 J  k: ]0 ~
15.2.7 Hook和AntiHook
/ V% a1 Z: T6 P! h/ v0 m; p; A1 l! i% C
15.3 真正的奥秘:小技巧一览
' J  h- r0 H4 a5 ~! `; v15.3.1 SoftICE检测方法
" U' @4 k; j  |4 n; t8 N15.3.2 OllyDbg检测方法2 k4 f1 _+ B! K- f
15.3.3 调试器漏洞
5 \- e; D1 l7 p+ D* `15.3.4 防止调试器附加
7 o5 P) c7 W! k4 ]; q8 |15.3.5 父进程检测
8 `  U0 _& {9 }0 M+ n( D, }15.3.6 时间差; ?( v& o( y- k5 [% ?; F
15.3.7 通过Trap Flag检测% C5 a" S; c5 {4 F! V& N
15.3.8 双进程保护
; \$ r( V: d# e7 q5 r8 R
& H* L. t) k( p第16章 外壳编写基础(Hying编写). H4 }: M  {$ K" x- t6 S: T
2 \; C9 Z/ J9 g5 g9 T$ C
16.1 外壳的结构
/ Z4 H: t( g% m' Z1 S2 O16.2 加壳主程序
: j3 s, T& m3 \16.2.1 判断文件是否为PE格式9 A  v3 ?! w% i
16.2.2 文件基本数据读入
/ u1 @" t2 ^/ {6 P+ X16.2.3 附加数据读取
8 {$ t) M4 Z( O  M* S# X4 ?16.2.4 输入表处理
" ~, q) L* B+ y) T- K! _! B9 {5 h16.2.5 重定位表处理
8 _, l* r3 f  O* g) ^16.2.6 文件的压缩# @" b! Z( X) ^# S5 f5 ]9 c
16.2.7 资源数据处理- {( {6 ]' Q& v# V( T
16.2.8 区块的融合/ F1 E& U  U1 K6 E$ ~* R' Z

# g: B3 U3 R( f4 [9 a+ n16.3 外壳部分编写4 w" G) u5 E  y0 H+ ~- a0 l
16.3.1 外壳的加载过程
+ L4 L& a$ V' B) U' m# _16.3.2 自建输入表: N6 a  T; E& {/ e0 Q  }% `  D
16.3.4 外壳引导段
' o+ R7 o; H: T0 @' e* r) F; p16.3.5 外壳第二段
1 T% |+ O+ u  ~: |3 a7 N* Y: C16.4 将外壳部分添加至原程序- v1 @" o$ F- \. p, W2 T$ }# n4 w% {* X

% V% D6 i0 i% V6 F$ j第17章 虚拟机的设计
7 X+ w: Q6 R' d8 N4 P: w( s8 ^4 o
; o( O* @; f! G7 L$ g$ M17.1 原理2 j% ~( [3 y5 [7 o0 I; c/ R! }; {8 T
17.1.1 反汇编引擎8 a9 @) u( }9 c; N
17.1.2 指令分类* q3 U4 q% m2 A/ O" D  u& Y
! o1 o8 O" R3 K: _5 V
17.2 启动框架和调用约定% T$ P8 W0 P' }5 I5 d. Y, P* T
17.2.1 调度器VStartVM
" s. g5 t7 _& a) w! O7 @5 [: ]17.2.2 虚拟环境:VMContext1 @! v+ y' e& V0 [/ W
17.2.3 平衡堆栈:VBegin和VCheckEsp; p/ I! W, A2 T* j) r4 }
/ i! a6 o, o) }0 D' c
17.3 HANDLER的设计
# l5 e, e& ]% [7 Y- D9 K/ Q17.3.1 辅助Handler
0 ]! |: a! S& z0 O1 s17.3.2 普通Handler和指令拆解8 }3 t: N# @: B: Z& P0 X
17.3.3 标志位问题: k. h& ?, t$ u. ^
17.3.4 相同作用的指令) V9 O* ]. T! |7 V3 p
17.3.5 转移指令' Z$ k" Z) b9 s0 e% O% \( F/ @/ C
17.3.6 转移跳转指令的另一种实现
5 E1 T+ @+ h, s" b' m" P: f4 I+ F17.3.7 CALL指令
2 Z7 l* v0 E+ G- D17.3.8 retn指令
. j# g9 [% X5 e8 B  V17.3.9 不可模拟指令
  e3 U  _- b0 |+ c" U4 K! `; T: _% j
5 R. k. m7 ^' j+ `: [% K17.4 托管代码的异常处理$ U, Q4 S% ?3 U3 g) q- Q
17.4.1 VC++的异常处理
4 }  X$ H, f* J17.4.2 Delphi的异常处理3 L9 d7 ?) W  M7 e' j# ^2 C: m
17.5 小结. C( z1 q0 Q$ e( Q  x

  }0 M8 J' d2 F0 F1 o第8篇 PEDIY篇
) Y; u6 W4 V. s1 O/ O- Q0 P( |$ J- L- T; _5 _; p
第18章 补丁技术. V! M) y- |/ u/ Y

: K1 T0 N2 R5 U18.1 文件补丁
, l6 ]* Y9 b& d: w& ^5 h5 B; C18.2 内存补丁
1 ], O8 [! P( t2 S$ t18.2.1 跨进程内存存取机制
+ G8 X* T, F: Z& a: s$ k18.2.2 Debug API机制. G. v3 k7 f' i/ F
18.2.3 利用调试寄存器机制8 {) N, K4 ?. {* p& J" D
18.2.4 DLL劫持技术& m% `7 H6 q2 }% x! g. h& w1 Z% i
3 x' ]5 I( _! d7 H# t
18.3 SMC补丁技术
% a: B% `5 K& H9 }* G* l18.3.1 单层SMC补丁技术
& `3 e$ e+ X3 t- n/ E/ s18.3.2 多层SMC补丁技术9 ^7 h2 W( S- a; U+ |0 I7 x  x
18.4 补丁工具
! J' Q  [$ \& r. M  b# K5 ?1 |( R+ d* |0 T% c; Q% \8 M4 k
第19章 代码的二次开发
  z2 W0 O. l. w, a* v9 q9 X; c, H1 f
19.1 数据对齐
! b: y' m5 g9 v" I" D2 \  I/ b19.2 增加空间
3 |- Y( X$ A7 l3 C& X. `19.2.1 区块间隙
; ~" U/ m! h1 Q19.2.2 手工构造区块! p) `/ J, X! r' S
19.2.3 工具辅助构造区块- X: t8 t) L1 ]& F% a& t5 c* D5 @
8 {: N. z; d( ]. |; |
19.3 获得函数的调用$ \% O- l2 A3 X2 p( K- T
19.3.1 增加输入函数+ ]( y  K1 Z7 r/ n, }$ [$ O3 ?* n3 z
19.3.2 显式链接调用DLL5 I( k& h) V8 u6 H8 X

- W1 w) V! ~' x- e8 p1 L19.4 代码的重定位7 k) B) K# u3 u/ s; o4 m
19.4.1 修复重定位表
; f9 z' q" F1 o" x9 t2 _19.4.2 代码的自定位技术
( q5 g* k+ l& q/ I19.5 增加输出函数2 R8 x6 V9 L# l: o3 @4 s* R

- F# R3 W4 P" \( _1 R19.6 消息循环- ?- G( o! L4 }6 ~9 R6 ^+ f- e
19.6.1 WndProc函数$ d2 A( a( }, T) e' B# L. |, D
19.6.2 寻找消息循环4 ^& N; `1 i7 B4 w7 d
19.6.3 WndProc汇编形式! J, _' f. O1 g! r

$ h7 e5 _$ w, w; @. |4 y1 M: T19.7 修改WNDPROC扩充功能
8 s& U- H! X1 z+ L0 `' Q, ?2 a# A19.7.1 扩充WndProc
! b/ `6 m* f3 n  o3 [% v19.7.2 扩充Exit菜单功能5 E6 W8 Y) |  t& Z5 u& @; o' H5 P
19.7.3 扩充Open菜单功能
9 F0 f- s. T, p  V- S* `9 h! f5 P$ `% b/ p2 k
19.8 增加接口
5 A5 E/ z+ ]  z, I" \19.8.1 用DLL增加功能! n- ^5 z2 _7 z2 c; X, v8 M
19.8.2 扩展消息循环
( h" f2 Z& g% d9 @- u* K$ U! L7 H- S+ f; E( ?/ S% d$ A7 f
附录
4 y: @7 y9 c5 y6 V9 l, E
- M3 T3 \9 \2 F9 q7 E附录A 浮点指令
2 _0 m% \3 m% h
5 `8 |/ ~) \! h附录B 在Visual C++中使用内联汇编
: M6 Q$ K0 k# e, R& c1 _; o( K0 u2 k. U( g
术语表; g2 n6 {' s8 Q. f* w

9 ]! y: [, g1 p% x' t4 Z3 \参考文献- V) H) e/ ]6 q0 |3 S

. z- @8 _4 c! i& {
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

  1. ; E! D& E7 h" w0 T) n- }$ S8 L
复制代码

/ o" i7 H2 T! x, C( N
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 18:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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