《加密与解密》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:段钢编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2003
  • ISBN:7505386484
  • 页数:520 页
图书介绍:软件保护工作是维护软件开发人员利益的必要手段,是软件开发过程中的重要环节。为了跟上技术发展的步伐,全面讲述了Windows平台下的最新软件加密与解密技术及相关解决方案,采用循序渐进的方式,从基本的跟踪调试到深层的拆解脱壳,从浅显的注册码分析到商用软件保护。全书共分为3个部分。第一部分介绍与加密和解密技术相关的基础知识。第二部分全面讲述最新的软件加密与解密技术及方法,如序列号,MD5,SHA,CRC,RSA,ELGamal等。第三部分主要介绍利用各种最新工具进行加密与解密的技巧,以及一些大型软件保护实例。

第1章 基础知识 1

1.1 文本编码方式 1

1.2 Windows API函数 2

1.2.1 Win API简介 2

1.2.2 什么是句柄 4

1.2.3 常用Win32 API函数 4

1.3 Windows与Unicode 7

1.3.1 Windows9x与Unicode 7

1.3.2 Windows2000/XP与Unicode 9

1.4 Windows消息机制 9

1.5 Windows注册表 12

1.5.1 注册表的逻辑结构 12

1.5.2 注册表相关函数 13

1.5.3 注册表分析软件 15

1.6 保护模式简介 17

1.6.1 虚拟内存 18

1.6.2 保护模式的权限级别 19

第2章 代码分析技术 21

2.1 认识PE格式 21

2.1.1 PE格式 21

2.1.2 文件偏移地址与虚拟地址转换 23

2.2 代码指令 25

2.2.1 转移指令机器码的计算 25

2.2.2 条件设置指令 28

2.2.3 指令修改技巧 29

2.2.4 浮点指令 30

2.3 逆向分析技术 33

2.3.1 函数 33

2.3.2 循环 37

2.3.3 控制语句 38

2.3.4 全局变量 38

2.3.5 字串初始化 39

第3章 静态分析技术 40

3.1  文件类型分析 40

3.1.1 Filelnfo工具 40

3.1.2 PEiD工具 41

3.2 资源 42

3.2.1 资源黑客的使用 42

3.2.2 eXeScope的使用 44

3.3 W32Dasm使用介绍 44

3.3.1 准备工作 44

3.3.2 操作步骤 46

3.3.3 代码清单的阅读 52

3.4 IDA Pro使用简介 57

3.4.1 IDA文件 58

3.4.2 IDA配置文件 58

3.4.3 IDA菜单选项配置 60

3.4.4 打开文件 62

3.4.5 IDA主窗口界面 63

3.4.6 注释 64

3.4.7 交叉参考 64

3.4.8 查找字符串 65

3.4.9 参考重命名 65

3.4.10 标签的用法 66

3.4.11 进制的转换 67

3.4.12 手工识别代码和数据 67

3.4.13 数组(Arrays) 68

3.4.14 结构体(Structures) 68

3.4.15 枚举类型(Enumerated Types) 70

3.4.16 堆栈变量 71

3.4.17 IDC脚本 72

3.4.18 FLIRT 77

3.4.19 插件 78

3.4.20 输出 79

3.4.21 小结 80

3.5 文件编辑工具 80

3.5.1 Hiew使用 80

3.5.2 HexWorkshop使用 85

3.5.3 WinHex使用 87

3.6 静态分析技术应用实例 88

3.6.1 解密初步 88

3.6.2 逆向工程初步 89

第4章 动态分析技术 92

4.1 SoftICE调试器 92

4.1.1 安装 92

4.1.2 调试窗口简介 99

4.1.3 窗口操作 102

4.1.4 SoftICE配置 105

4.1.5 SoftICE常用命令简介 111

4.1.6 SoftICE调试技术 115

4.1.7 SoftICE的符号调试技术 123

4.1.8 断点 132

4.1.9 SoftICE远程调试 139

4.1.10 IceDump和NticeDump的使用 144

4.2 TRW2000调试器 150

4.2.1 安装 150

4.2.2 配置 150

4.2.3 输出信息(Export)的装载 151

4.2.4 TRW2000操作 151

4.2.5 条件断点 153

4.2.6 符号调试 154

4.3 OllyDbg调试器 154

4.3.1 OllyDbg界面 154

4.3.2 基本操作 156

4.3.3 实例 157

4.4 常见问题小结 158

第5章 软件保护技术及其弱点 160

5.1 序列号保护方式 160

5.1.1 序列号保护机制 160

5.1.2 如何攻击序列号保护 162

5.1.3 字符处理代码分析 164

5.1.4 注册机制作 167

5.1.5 浮点数 172

5.2 警告(Nag)窗口 175

5.3 时间限制 177

5.3.1 计时器 177

5.3.2 时间限制 179

5.3.3 拆解时间限制保护 180

5.4 菜单功能限制 182

5.4.1 相关函数 182

5.4.2 拆解菜单限制保护 183

5.5 Key File保护 183

5.5.1 相关API函数 183

5.5.2 拆解Key File的一般思路 185

5.5.3 文件监视工具FileMon 185

5.5.4 拆解KeyFile保护 187

5.6 CD-Check 192

5.6.1 相关函数 192

5.6.2 拆解光盘保护 194

5.7 只运行一个实例 194

5.7.1 实现方案 195

5.7.2 实例 196

5.8 常用断点设置技巧 196

5.9 关于软件保护的一般性建议 197

第6章 加密算法 199

6.1 单向散列算法 199

6.1.1 MD5算法 199

6.1.2 SHA算法 201

6.1.3 CRC算法 203

6.2 公开密钥算法 206

6.2.1 RSA算法 206

6.2.2 EIGamal算法 212

6.2.3 DSA算法 217

6.3 对称算法 218

6.3.1 BlowFish算法 218

6.4 其他算法 221

6.4.1 Base64编码 221

6.4.2 Crypto API 222

6.5 小结 224

第7章 反编译语言 225

7.1 Viual Basic程序 225

7.1.1 Visual Basic字符编码方式 225

7.1.2 VB3和VB4反编译 226

7.1.3 动态分析VB3和VB4程序 226

7.1.4 动态分析VB5和VB6程序 229

7.1.5 SmartCheck调试工具 236

7.1.6 伪编译(P-code) 241

7.2 Delphi/C++Builder程序 250

7.2.1 认识Delphi 250

7.2.2 DeDe反编译器 250

7.2.3 断点 256

7.3 Java程序 257

7.3.1 JVM指令系统 258

7.3.2 JVM寄存器 258

7.3.3 JVM堆栈结构 258

7.3.4 JVM碎片回收堆 258

7.3.5 JVM存储区 259

7.4 InstallShield反编译 262

7.4.1 安装文件构成 262

7.4.2 脚本语言反编译 262

7.4.3 IS解密 263

第8章 PE文件格式 265

8.1 PE文件结构 265

8.1.1 PE的基本概念 265

8.1.2 DOS插桩程序 267

8.1.3 PE文件头(IMAGENTHEADERS) 268

8.1.4 块表(The Section Table) 274

8.1.5 各种块(Sections)的描述 276

8.1.6 输入表(Import Table) 277

8.1.7 绑定输入(Bound Import) 284

8.1.8 输出表(Export Table) 285

8.1.9 基址重定位表(Base ReloCation Table) 287

8.1.10 资源 290

8.1.11 PE格式小结 292

8.2 PE编辑工具 292

8.2.1 LordPE使用简介 292

8.2.2 PEditor使用简介 295

第9章 增加PE文件功能 296

9.1 数据对齐 296

9.2 增加区块(Section) 296

9.2.1 手工构造区块 297

9.2.2 工具辅助构造区块 298

9.3 增加输入函数 298

9.3.1 手工增加 298

9.3.2 工具辅助 299

9.4 增加DLL文件 300

9.5 窗口函数 301

9.6 增加菜单功能 304

9.6.1 扩充WndProc 305

9.6.2 Exit菜单 305

9.6.3 Open菜单 306

9.6.4 Save菜单 309

9.7 用DLL增加功能 313

9.7.1 创建DLL文件 313

9.7.2 调用DLL函数 313

9.8 修复基址重定位表 314

9.9 增加输出函数 317

9.10 扩充输出函数功能 318

第10章 反跟踪技术 319

10.1 结构化异常处理 319

10.1.1 异常列表 319

10.1.2 SEH异常处理 320

10.1.3 异常信息 322

10.1.4 系统异常调试程序 325

10.1.5 异常处理回调函数 327

10.2 反调试技术 330

10.3 花指令 339

10.4 反-反调试技术 344

10.4.1 SuperBPM 344

10.4.2 FrogsICE 344

10.4.3 在Windows2000/XP下隐藏SoftICE 348

10.5 反跟踪实例 349

10.5.1 Anti-SoftICE 349

10.5.2 Anti-Spy 350

10.5.3 Anti-DeDe 351

第11章 加壳与脱壳 353

11.1 认识壳 353

11.1.1 壳的概念 353

11.1.2 壳的加载过程 354

11.2 加壳工具 355

11.2.1 ASPack 356

11.2.2 UPX 357

11.2.3 PECompact 357

11.2.4 ASProtect 358

11.2.5 tElock 359

11.2.6 幻影(DBPE) 359

11.3 专用脱壳软件 359

11.3.1 ASPack 360

11.3.2 UPX 360

11.3.3 ASProtect 361

11.4 通用脱壳软件 361

11.4.1 ProcDump使用简介 362

11.4.2 File Scanner使用简介 368

11.5 手动脱壳 369

11.5.1 查找入口点 369

11.5.2 抓取内存映像文件 372

11.5.3 重建输入表 375

11.5.4 ImportREC使用指南 379

11.5.5 Revirgin使用指南 385

11.5.6 重建可编辑资源 389

11.6 压缩保护的壳 389

11.6.1 ASPack的壳 389

11.6.2 PECompact的壳 394

11.6.3 PE-PaCK的壳 397

11.6.4 Petite的壳 401

11.7 加密保护的壳 403

11.7.1 ASProtect加密保护 403

11.7.2 tElock加密保护 416

11.8 DLL文件 423

11.8.1 ASPack的壳 424

11.8.2 PECompact的壳 427

11.8.3 UPX的壳 431

11.8.4 ASProtect的壳 434

11.8.5 tElock的壳 435

11.9 脱壳小结 437

第12章 补丁技术 439

12.1 补丁原理 439

12.1.1 文件补丁 439

12.1.2 内存补丁 441

12.2 补丁工具 443

12.2.1 文件补丁工具 443

12.2.2 内存补丁工具 445

12.3 SMC补丁技术 445

12.3.1 单层SMC技术 446

12.3.2 多层SMC技术 447

12.3.3 SMC函数 449

第13章 商用软件保护技术 451

13.1 软件狗(Dongles) 451

13.1.1 软件狗介绍 451

13.1.2 软件狗厂商 452

13.1.3 软件狗的弱点 453

13.2 Vbox保护技术 454

13.2.1 Vbox4.03版本 454

13.2.2 Vbox4.2版本 456

13.2.3 Vbox4.3版本 458

13.3 SalesAgent保护技术 459

13.3.1 从“现在购买(BUY NOW)”入手 459

13.3.2 暴力去除SalesAgent的保护 461

13.4 SoftSENTRY保护技术 462

13.5 TimeLOCK保护技术 464

13.6 Flexlm保护 466

13.6.1 License文件格式 466

13.6.2 设置环境变量 468

13.6.3 Flexlm Server 469

13.6.4 FlexGen工具用法 470

13.6.5 利用FlexLm SDK解密 472

附录A 浮点指令 477

附录B SoftICE指令手册 480

附录C TRW2000指令手册 517

参考文献 520