《加密与解密 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:段钢编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2005
  • 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 Windows 9x与Unicode 7

1.3.2 Windows 2000/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 FileInfo工具 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 O11yDbg界面 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 ElGamal算法 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 Visual 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文件头(IMAGE_NT_HEADERS) 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在Windows 2000/XP下隐藏SoftICE 348

10.5反跟踪实例 349

10.5.1 Anti-SoftIICE 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 Vbox 4.03版本 454

13.2.2 Vbox 4.2版本 456

13.2.3 Vbox 4.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