图书介绍

加密与解密 第3版PDF|Epub|txt|kindle电子书版本网盘下载

加密与解密 第3版
  • 段钢编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121066443
  • 出版时间:2008
  • 标注页数:544页
  • 文件大小:188MB
  • 文件页数:568页
  • 主题词:电子计算机-密码术

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

加密与解密 第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一篇 基础篇2

第1章 基础知识2

1.1 文本字符2

1.1.1 字节存储顺序2

1.1.2 ASCII与Unicode字符集2

1.2 Windows操作系统4

1.2.1 Win API简介4

1.2.2 常用Win32 API函数5

1.2.3 什么是句柄7

1.2.4 Windows 9x与Unicode7

1.2.5 Windows NT/2000/XP与Unicode8

1.2.6 Windows消息机制9

1.3 保护模式简介10

1.3.1 虚拟内存10

1.3.2 保护模式的权限级别11

1.4 认识PE格式12

第二篇 调试篇16

第2章 动态分析技术16

2.1 OllyDbg调试器16

2.1.1 OllyDbg界面16

2.1.2 OllyDbg的配置18

2.1.3 加载程序19

2.1.4 基本操作20

2.1.5 断点30

2.1.6 插件38

2.1.7 Run trace39

2.1.8 Hit trace40

2.1.9 符号调试技术40

2.1.10 OllyDbg常见问题42

2.2 SoftICE调试器43

第3章 静态分析技术44

3.1 文件类型分析44

3.1.1 PEiD工具44

3.1.2 FileInfo工具45

3.2 静态反汇编45

3.2.1 反汇编引擎45

3.2.2 IDA Pro简介46

3.2.3 IDA的配置46

3.2.4 IDA主窗口界面48

3.2.5 交叉参考49

3.2.6 参考重命名49

3.2.7 标签的用法50

3.2.8 进制的转换50

3.2.9 代码和数据转换51

3.2.10 字符串51

3.2.11 数组53

3.2.12 结构体53

3.2.13 枚举类型57

3.2.14 堆栈变量58

3.2.15 IDC脚本59

3.2.16 FLIRT62

3.2.17 插件63

3.2.18 其他功能63

3.2.19 小结64

3.3 可执行文件的修改64

3.4 静态分析技术应用实例67

3.4.1 解密初步67

3.4.2 逆向工程初步69

第4章 逆向分析技术71

4.1 启动函数71

4.2 函数72

4.2.1 函数的识别72

4.2.2 函数的参数73

4.2.3 函数的返回值78

4.3 数据结构80

4.3.1 局部变量80

4.3.2 全局变量81

4.3.3 数组83

4.4 虚函数84

4.5 控制语句86

4.5.1 IF-THEN-ELSE语句86

4.5.2 SWITCH-CASE语句87

4.5.3 转移指令机器码的计算89

4.5.4 条件设置指令(SETcc)91

4.5.5 纯算法实现逻辑判断92

4.6 循环语句93

4.7 数学运算符94

4.7.1 整数的加法和减法94

4.7.2 整数的乘法94

4.7.3 整数的除法95

4.8 文本字符串97

4.8.1 字符串存储格式97

4.8.2 字符寻址指令98

4.8.3 字母大小写转换98

4.8.4 计算字符串的长度99

4.9 指令修改技巧99

第三篇 解密篇102

第5章 常见的演示版保护技术102

5.1 序列号保护方式102

5.1.1 序列号保护机制102

5.1.2 如何攻击序列号保护104

5.1.3 字符串比较形式105

5.1.4 注册机制作106

5.2 警告(Nag)窗口111

5.3 时间限制113

5.3.1 计时器113

5.3.2 时间限制114

5.3.3 拆解时间限制保护114

5.4 菜单功能限制115

5.4.1 相关函数115

5.4.2 拆解菜单限制保护116

5.5 KeyFile保护116

5.5.1 相关API函数116

5.5.2 拆解KeyFile保护117

5.6 网络验证121

5.6.1 相关函数121

5.6.2 网络验证破解一般思路121

5.7 CD-Check126

5.7.1 相关函数127

5.7.2 拆解光盘保护128

5.8 只运行一个实例128

5.8.1 实现方法128

5.8.2 实例129

5.9 常用断点设置技巧129

第6章 加密算法131

6.1 单向散列算法131

6.1.1 MD5算法131

6.1.2 SHA算法136

6.1.3 小结139

6.2 对称加密算法139

6.2.1 RC4流密码140

6.2.2 TEA算法141

6.2.3 IDEA算法144

6.2.4 BlowFish算法151

6.2.5 AES算法155

6.2.6 对称加密算法小结167

6.3 公开密钥加密算法167

6.3.1 RSA算法168

6.3.2 ElGamal公钥算法173

6.3.3 DSA数字签名算法179

6.3.4 椭圆曲线密码编码学(Elliptic Curve Cryptography)180

6.4 其他算法186

6.4.1 CRC32算法186

6.4.2 Base64编码187

6.5 常见的加密库接口及其识别188

6.5.1 Miracl大数运算库189

6.5.2 FGInt190

6.5.3 其他加密算法库介绍191

第四篇 语言和平台篇194

第7章 Delphi程序194

7.1 DeDe反编译器194

7.2 按钮事件代码197

7.3 模块初始化与结束化197

第8章 Visual Basic程序200

8.1 基础知识200

8.1.1 字符编码方式200

8.1.2 编译模式200

8.2 自然编译(Native)201

8.2.1 相关VB函数201

8.2.2 VB程序比较方式201

8.3 伪编译206

8.3.1 虚拟机与伪代码206

8.3.2 动态分析VB P-code程序208

8.3.3 伪代码的综合分析211

8.3.4 VB P-code攻击实战213

第9章 .NET平台加解密218

9.1 .Net概述218

9.1.1 什么是.Net218

9.1.2 几个基本概念218

9.1.3 第一个.Net程序219

9.2 MSIL与元数据220

9.2.1 PE结构的扩展220

9.2.2 .Net下的汇编MSIL226

9.2.3 MSIL与元数据的结合228

9.3 代码分析技术230

9.3.1 静态分析230

9.3.2 动态调试232

9.3.3 代码修改234

9.4 代码保护技术及其逆向235

9.4.1 强名称235

9.4.2 名称混淆238

9.4.3 流程混淆241

9.4.4 压缩243

9.4.5 加密247

9.4.6 其他保护手段253

9.5 深入.Net254

9.5.1 反射与CodeDOM254

9.5.2 Unmaganed API256

9.5.3 Rotor、MONO与.Net内核258

第五篇 系统篇262

第10章 PE文件格式262

10.1 PE的基本概念263

10.1.1 基地址264

10.1.2 相对虚拟地址264

10.1.3 文件偏移地址265

10.2 MS-DOS头部265

10.3 PE文件头266

10.3.1 Signature字段266

10.3.2 IMAGE_FILE_HEADER结构267

10.3.3 IMAGE_OPTIONAL_HEADER结构268

10.4 区块272

10.4.1 区块表272

10.4.2 各种区块的描述274

10.4.3 区块的对齐值276

10.4.4 文件偏移与虚拟地址转换276

10.5 输入表278

10.5.1 输入函数的调用278

10.5.2 输入表结构279

10.5.3 输入地址表(IAT)281

10.5.4 输入表实例分析281

10.6 绑定输入285

10.7 输出表286

10.7.1 输出表结构287

10.7.2 输出表结构实例分析288

10.8 基址重定位289

10.8.1 基址重定位概念289

10.8.2 基址重定位结构定义290

10.8.3 基址重定位结构实例分析291

10.9 资源292

10.9.1 资源结构292

10.9.2 资源结构实例分析295

10.9.3 资源编辑工具297

10.10 TLS初始化297

10.11 调试目录297

10.12 延迟装入数据298

10.13 程序异常数据299

10.14 .Net头部299

10.15 编写PE分析工具300

10.15.1 文件格式检查300

10.15.2 FileHeader和OptionalHeader内容的读取300

10.15.3 得到数据目录表信息302

10.15.4 得到区块表信息302

10.15.5 得到输出表信息303

10.15.6 得到输入表信息304

第11章 结构化异常处理306

11.1 基本概念306

11.1.1 异常列表306

11.1.2 异常处理的基本过程307

11.1.3 SEH的分类308

11.2 SEH相关数据结构308

11.2.1 TEB结构308

11.2.2 EXCEPTION_REGISTRATION结构311

11.2.3 EXCEPTION_POINTERS、EXCEPTION RECORD、CONTEXT313

11.3 异常处理回调函数312

第六篇 脱壳篇316

第12章 专用加密软件316

12.1 认识壳316

12.1.1 壳的概念316

12.1.2 压缩引擎317

12.2 压缩壳317

12.2.1 UPX318

12.2.2 ASPack318

12.3 加密壳318

12.3.1 ASProtect318

12.3.2 Armadillo319

12.3.3 EXECryptor320

12.3.4 Themida320

12.4 虚拟机保护软件321

12.4.1 虚拟机介绍321

12.4.2 VMProtect简介321

第13章 脱壳技术324

13.1 基础知识324

13.1.1 壳的加载过程324

13.1.2 脱壳机326

13.1.3 手动脱壳326

13.2 寻找OEP326

13.2.1 根据跨段指令寻找OEP326

13.2.2 用内存访问断点找OEP330

13.2.3 根据堆栈平衡原理找OEP331

13.2.4 根据编译语言特点找OEP332

13.3 抓取内存映像332

13.3.1 Dump原理332

13.3.2 反Dump技术(Anti-Dump)334

13.4 重建输入表336

13.4.1 输入表重建的原理336

13.4.2 确定IAT的地址和大小337

13.4.3 根据IAT重建输入表338

13.4.4 ImportREC重建输入表340

13.4.5 输入表加密概括344

13.5 DLL文件脱壳345

13.5.1 寻找OEP345

13.5.2 Dump映像文件347

13.5.3 重建DLL的输入表348

13.5.4 构造重定位表349

13.6 附加数据351

13.7 PE文件的优化353

13.8 压缩壳356

13.8.1 UPX外壳356

13.8.2 ASPack外壳359

13.9 加密壳363

13.9.1 ASProtect363

13.9.2 Themidia的SDK分析367

13.10 静态脱壳372

13.10.1 外壳Loader的分析372

13.10.2 编写静态脱壳器377

第七篇 保护篇380

第14章 软件保护技术380

14.1 防范算法求逆380

14.1.1 基本概念380

14.1.2 堡垒战术381

14.1.3 游击战术382

14.2 抵御静态分析383

14.2.1 花指令383

14.2.2 SMC技术实现385

14.2.3 信息隐藏390

14.2.4 简单的多态变形技术391

14.3 文件完整性检验392

14.3.1 磁盘文件校验实现392

14.3.2 校验和(Checksum)393

14.3.3 内存映像校验393

14.4 代码与数据结合技术395

14.4.1 准备工作396

14.4.2 加密算法选用397

14.4.3 手动加密代码397

14.4.4 使.text区块可写399

14.5 软件保护的若干忠告399

第15章 反跟踪技术401

15.1 由BeingDebugged引发的蝴蝶效应401

15.1.1 BeingDebugged401

15.1.2 NtGlobalFlag405

15.1.3 Heap Magic407

15.1.4 从源头消灭BeingDebugged412

15.2 回归Native:用户态的梦魇413

15.2.1 CheckRemoteDebuggerPresent413

15.2.2 ProcessDebugPort414

15.2.3 ThreadHideFromDebugger416

15.2.4 Debug Object419

15.2.5 SystemKernelDebuggerInformation423

15.2.6 Native API425

15.2.7 Hook和AntiHook430

15.3 真正的奥秘:小技巧一览433

15.3.1 SoftICE检测方法433

15.3.2 OllyDbg检测方法435

15.3.3 调试器漏洞437

15.3.4 防止调试器附加438

15.3.5 父进程检测440

15.3.6 时间差440

15.3.7 通过Trap Flag检测441

15.3.8 双进程保护441

第16章 外壳编写基础442

16.1 外壳的结构442

16.2 加壳主程序443

16.2.1 判断文件是否为PE格式443

16.2.2 文件基本数据读入443

16.2.3 附加数据读取445

16.2.4 输入表处理445

16.2.5 重定位表处理448

16.2.6 文件的压缩450

16.2.7 资源数据处理453

16.2.8 区块的融合457

16.3 外壳部分编写457

16.3.1 外壳的加载过程458

16.3.2 自建输入表458

16.3.3 外壳引导段459

16.3.4 外壳第二段462

16.4 将外壳部分添加至原程序467

第17章 虚拟机的设计471

17.1 原理471

17.1.1 反汇编引擎472

17.1.2 指令分类472

17.2 启动框架和调用约定473

17.2.1 调度器VStartVM473

17.2.2 虚拟环境:VMContext474

17.2.3 平衡堆栈:VBegin和VCheckEsp474

17.3 Handler的设计475

17.3.1 辅助Handler475

17.3.2 普通Handler和指令拆解476

17.3.3 标志位问题477

17.3.4 相同作用的指令478

17.3.5 转移指令478

17.3.6 转移跳转指令的另一种实现479

17.3.7 call指令480

17.3.8 retn指令481

17.3.9 不可模拟指令481

17.4 托管代码的异常处理482

17.4.1 VC++的异常处理482

17.4.2 Delphi的异常处理486

17.5 小结490

第八篇 PEDIY篇492

第18章 补丁技术492

18.1 文件补丁492

18.2 内存补丁493

18.2.1 跨进程内存存取机制493

18.2.2 Debug API机制495

18.2.3 利用调试寄存器机制498

18.2.4 DLL劫持技术501

18.3 SMC补丁技术505

18.3.1 单层SMC补丁技术505

18.3.2 多层SMC补丁技术506

18.4 补丁工具508

第19章 代码的二次开发510

19.1 数据对齐510

19.2 增加空间510

19.2.1 区块间隙510

19.2.2 手工构造区块511

19.2.3 工具辅助构造区块512

19.3 获得函数的调用512

19.3.1 增加输入函数513

19.3.2 显式链接调用DLL514

19.4 代码的重定位514

19.4.1 修复重定位表514

19.4.2 代码的自定位技术516

19.5 增加输出函数517

19.6 消息循环518

19.6.1 WndProc函数518

19.6.2 寻找消息循环519

19.6.3 WndProc汇编形式520

19.7 修改WndProc扩充功能521

19.7.1 扩充WndProc521

19.7.2 扩充Exit菜单功能522

19.7.3 扩充Open菜单功能522

19.8 增加接口525

19.8.1 用DLL增加功能525

19.8.2 扩展消息循环526

附录A 浮点指令528

附录B 在Visual C++中使用内联汇编534

术语表542

参考文献544

热门推荐