第1章 加密解密技术基础 1
1-1 什么是加密/解密技术 1
1-1-1 从密码学开始讲起 1
1-1-2 加密技术概述 2
1-1-3 数据加密的基本概念 3
1-1-4 为什么要进行加密/解密 4
1-1-5 加密技术的发展趋势 5
1-2 加/解密的相关概念 5
1-3 软件加密保护技术与密码破解方式 10
1-3-1 常见软件的加密保护方式 11
1-3-2 注册码 14
1-3-3 破解密码的常用方法 15
1-4 熟悉汇编语言的几条常用命令 16
1-5 如何解密经过加密的软件 17
第2章 几种常见软件的加密技术 19
2-1 什么是口令加密技术 19
2-1-1 口令加密技术概述 19
2-1-2 对软件的起始簇号实施口令加密 20
2-1-3 用口令加密可执行文件 20
2-2 揭开激光加密技术的神秘面纱 25
2-3 软件自毁技术的实现设计 26
2-3-1 自毁软件的基本原理 27
2-3-2 如何设计实现软件自毁 27
2-4 给自己的软件养一只看门狗——软件狗加密技术 31
2-4-1 什么是软件狗加密技术 31
2-4-2 加密狗的性能和一般特点 33
2-4-3 使用软件狗加密技术的弱点 33
2-5 用逆指令流技术为自己加把锁 35
2-6 一颗定心丸——伪随机数加密技术 35
第3章 静态分析软件与文件编辑工具 39
3-1 如何对软件进行静态分析 39
3-1-1 了解静态分析的步骤 39
3-1-2 软件文件类型的侦察分析工具 40
3-1-3 资源编辑器工具 44
3-2 静态分析软件W32Dasm 49
3-2-1 对选择的文件进行反汇编 50
3-2-2 保存反汇编文本文件 51
3-2-3 反汇编源代码的基本操作 51
3-2-5 复制汇编代码文本 57
3-2-5 装载32位的汇编代码动态调试 57
3-2-6 在调试器中运行、暂停或终止反汇编程序 58
3-2-7 对程序实行单步跟踪 59
3-2-8 设置和激活断点 59
3-2-9 偏移地址和虚拟地址转换 60
3-3 W32Dasm静态分析破解实例 61
3-3-1 让W32Dasm中的中文字符正确显示 61
3-3-2 用W32Dasm破解LeapFTP 63
3-4 静态分析软件IDA Pro 67
3-4-1 IDA Pro的主窗口和菜单配置 68
3-4-2 如何打开/加载文件 70
3-4-3 注释与交叉参考 71
3-4-4 如何查找字符串 71
3-4-5 参考重命名 72
3-4-6 标签与进制的转换 72
3-4-7 手动识别代码和数据 74
3-4-8 数组和结构体 74
3-4-9 枚举类型与堆栈变量 75
3-4-10 IDC脚本控制器 76
3-4-11 输出反汇编代码 78
3-5 可执行文件编辑修改工具 79
3-5-1 Hiew使用简介 79
3-5-2 UltraEdit使用简介 82
3-5-3 HexWorkshop使用简介 87
3-5-4 WinHex使用简介 90
3-5-5 eXeScope使用简介 90
第4章 动态分析软件及其工具 93
4-1 为什么要对软件进行动态分析 94
4-2 动态分析软件SoftICE的使用 95
4-2-1 SoftICE安装后的配置 95
4-2-2 SoftICE的调用 98
4-2-3 认识SoftICE窗口界面 99
4-2-4 SoftICE中的组合键与常用命令 101
4-2-5 使SoftICE在程序的入口处停下来 108
4-2-6 如何实现多次跟踪 108
4-2-7 修改代码的属性 109
4-3 动态分析软件TRW2000使用简介 111
4-3-1 TRW2000的安装与配置 111
4-3-2 认识TRW2000的窗口 113
4-3-3 认识TRW2000命令和常用键 115
4-3-4 使用TRW2000破解经典步骤 120
4-3-5 反汇编分析中的经典句式 122
4-3-6 使用TRW2000动态分析破解LeapFTP 124
4-4 动态分析软件OllyDbg使用简介 126
4-4-1 认识OllyDbg界面 127
4-4-2 OllyDbg的基本操作 129
4-4-3 OllyDbg的常用菜单命令 131
4-4-4 如何用OllyDbg设置断点 133
4-5 SmartCheck与Keymake使用简介 134
4-5-1 SmartCheck使用介绍 134
4-5-2 注册机编写器Keymake使用介绍 136
第5章 常见软件的保护与破解 144
5-1 保护与破解技术概述 144
5-2 揭秘软件的注册保护 145
5-2-1 剖析序列号或注册码 145
5-2-2 破解实战一:用UPX脱壳目标程序 148
5-2-3 破解实战二:实现检测合法性 150
5-2-4 破解实战三:KeyFile注册保护的破解 153
5-3 突破CD-Check的检测保护 158
5-3-1 CD-Check检测的保护与破解原理 158
5-3-2 破解实战一:揭秘CD光盘保护的Crackme 158
5-3-3 破解实战二:揭秘游戏软件的CD-Check类型保护 162
5-4 破解功能限制的滞碍 165
5-4-1 功能限制方式的保护与破解原理 166
5-4-2 实战破解一:突破注册码的功能限制 166
5-4-3 实战破解二:使用软件Demo版里禁用的某些菜单选项 168
5-5 让Nag窗口安静地走开 171
5-5-1 Nag窗口的保护与破解原理 171
5-5-2 破解实战一:Nag窗口类型的保护与破解 172
5-5-3 破解实战二解除WWMAIL 2.40烦人的Nag窗口 174
5-6 突破越来越少的时间限制 176
5-6-1 时间限制的实现原理 176
5-6-2 为软件设置个使用期限 177
5-6-3 制软件运行的次数 179
5-6-4 破解实战一:时间限制的保护与破解 179
5-6-5 破解实战二:突破30天的时间限制 181
第6章 揭开加密软件那神秘的壳 183
6-1 加壳/脱壳知识基础 183
6-1-1 什么是壳 183
6-1-2 为什么要加壳 183
6-1-3 如何为程序加载壳 184
6-2 认识几款加壳工具 187
6-2-1 ASPack其使用方法 187
6-2-2 UPX其使用方法 189
6-2-3 PEcompact及其使用方法 189
6-2-4 ASProtect及其使用方法 190
6-2-5 tElock及其使用方法 190
6-2-6 幻影(DBPE)及其使用方法 191
6-3 脱壳软件使用介绍 192
6-3-1 脱ASPack壳的软件 192
6-3-2 UPX壳的软件 193
6-3-3 脱PECompact壳的软件 194
6-3-4 ProcDump使用简介 194
6-3-5 UN-PACK软件使用介绍 196
6-4 如何进行手动脱壳 197
6-4-1 确定入口点(OEP) 198
6-4-2 抓取内存映像文件 198
6-4-3 重建PE文件 198
6-4-4 使用ImportREC进行手动脱壳 198
6-4-5 如何将可编辑资源重建 204
6-5 加深对壳的理解 205
6-5-1 壳应用实例 205
6-5-2 软件加壳脱壳入门级实例 206
6-5-3 如何脱掉EXE、DLL文件的壳 208
第7章 强力攻击(暴力破解)技术及工具 213
7-1 什么是强力攻击(暴力破解)技术 213
7-1-1 强力攻击(暴力破解)技术的实现原理 214
7-1-2 为什么要使用强力攻击(暴力破解)技术 214
7-1-3 使用暴力破解软件的分类 215
7-1-4 实施强力攻击(暴力破解)的几个条件 216
7-1-5 强力攻击(暴力破解)思维浅析 219
7-1-6 文件补丁方式爆破方法 220
7-1-7 内存补丁方式爆破方法 222
7-1-8 用到的汇编指令机器码 224
7-1-9 动态改变条件跳转指令的执行方向 226
7-2 如何制作词典文件 227
7-2-1 自制词典文件——万能钥匙XKey 227
7-2-2 自制词典文件——Txt2Dic 230
7-3 如何进行字典攻击 230
7-4 穷尽密钥搜索攻击简介 232
7-5 查表攻击技术简介 232
7-6 时间存储权衡攻击 232
7-7 几个暴力破解的示例 234
7-7-1 完美破解UnFoxAll 234
7-7-2 暴力破解Foxmail的本地口令 237
7-7-3 暴力破解CB-CAD3.52 239
7-7-4 使用KERNEL32.DLL破解 243
第8章 反编译编程语言程序 246
8-1 对FoxPro程序的反编译 246
8-1-1 如何解密FOX加密的程序 246
8-1-2 反编译工具UnFoxAll 247
8-2 揭开VisualBasic程序的保护机制 249
8-2-1 WKTVBDE调试工具 249
8-2-2 VisualBasic程序中常用的中断 255
8-3 用DeDe解密Delphi程序 257
8-3-1 DeDe反编译调试工具 257
8-3-2 破解远程控制程序 259
8-4 解密InstallShield安装脚本 260
8-4-1 如何直接解压InstallShield 261
8-4-2 解密InstallShield压缩 261
第9章 应用软件加密解密技术 264
9-1 加密解密PDF文件 264
9-1-1 如何加密PDF文件 264
9-1-2 利用EncryptPDF破解PDF加密文件 267
9-1-3 利用Advanced PDF Password Recovery破解PDF加密文件 268
9-1-4 利用PDF Password Remover解除PDF文件口令 269
9-2 Word文件的加密解密 270
9-2-1 利用Word自身功能进行加密 270
9-2-2 利用AOPR解密Word文档 271
9-2-3 Advanced Word 2000 Password Recovery 273
9-2-4 风语文件加密软件 274
9-2-5 Word Document Password Recovery 274
9-2-6 Word Password Recovery 275
9-2-7 Word97/2000/XP密码查看器 276
9-3 Excel文件加密解密 276
9-3-1 Excel自身功能 276
9-3-2 Advanced Excel 2000 Password Recovery 278
9-3-3 Excel Password Recovery 278
9-3-4 办公文件密码恢复程序 279
9-3-5 EXCEL97/2000/XP密码查看器 279
9-3-6 Excel Key 279
9-3-7 Signature 995 280
9-4 WPS文件加密解密 281
9-4-1 WPS文件的加密过程 281
9-4-2 如何解密WPS文件 282
9-5 宏加密解密技术 283
9-5-1 使用宏进行加密 283
9-5-2 解除宏密码 285
9-6 破解 Foxmail的邮箱加密 286
9-6-1 月影Foxmail邮件转换/密码恢复器 286
9-6-2 Advanced Mailbox Password Recovery 287
9-7 加密解密WinZip压缩文件 287
9-7-1 使用WinZip加密 288
9-7-2 利用Advanced ZIP Password Recovery探测口令 288
9-7-3 Advanced Archive Password Recovery 289
9-7-4 Ultra Zip Password Cracker 289
9-8 加密解密WinRAR压缩文件 290
9-8-1 用WinRAR加密文件 290
9-8-2 Advanced RAR Password Recovery 291
9-8-3 使用RARKey解开WinRAR口令 291
9-8-4 RAR Password Recovery 292
9-9 EXE文件的加密解密 292
9-9-1 用ASPack对EXE文件进行加密 293
9-9-2 用tElock对EXE文件进行加密 294
9-9-3 用EXE加口令对EXE文件进行加密 296
9-10 MS SQL Server密码破解 297
9-10-1 实现本地用户的账户登录 297
9-10-2 通过文件拷贝获得相关数据 298
9-10-3 多功能密码破解软件 298
9-11 如何探测FTP的密码 300
9-11-1 使用流光探测FTP口令 300
9-11-2 使用网络刺客Ⅱ探测FTP口令 301
9-11-3 使用流光针对专门的账户进行穷举探测 303
9-12 冲破Foxmail的密码封锁 304
9-12-1 使用Foxmail账户的口令保护 304
9-12-2 删除Account.stg文件解密法 305
9-12-3 通过建立新账号破解Foxmail口令 305
9-12-4 通过Foxmail口令破除专家的解密法 306
9-12-5 通过修改Foxmail的解密法 307
9-13 SAM密码的快速破解实现 308
参考文献 310