第1章 壳的基础知识
1.1 壳的概念. 目的和作用
1.1.1 壳的概念
1.1.2 加壳的目的和作用
1.2 常用加壳软件及使用方法
1.2.1 ASPack
1.2.2 UPX
1.2.3 PECompact
1.2.4 其他
1.3 常用侦壳软件及使用方法
1.3.1 Language 2000
1.3.2 FileInfo
1.3.3 PEiDentifier
1.3.4 其他软件
第2章 脱壳
2.1 常用脱壳软件及分类
2.2 专用脱壳软件及使用方法
2.2.1 脱ASPack壳软件
2.2.2 脱UPX壳软件
2.2.3 脱PECompact壳软件
2.3 通用脱壳软件及使用方法
2.3.1 ProcDump
2.3.2 GUW32
2.3.3 UN-PACK
第3章 解密预备知识
3.1 机器码与ASCII码
3.2 十六进制编辑器
3.2.1 UltraEdit32
3.2.2 WinHex
3.3 汇编基本指令
3.4 解密常见修改
3.4.1 解密时经常修改的指令
3.4.2 两种不同情况的不同修改方法
3.5 注册表相关知识
3.6 保护模式的权限级别(Ring0与Ring3)
第4章 软件分析技术综述
4.1 常见软件加密保护技术简介
4.2 解密的等级与常用工具
4.3 静态分析及工具
4.3.1 静态分析
4.3.2 静态分析的工具
4.4 动态分析及工具
4.5 注册表分析及工具
4.5.1 注册表编辑工具Regedit
4.5.2 注册表照相机Regsnap应用指南
4.5.3 注册表监视工具Regmon使用指南
4.5.4 注册表监视工具RegShot使用指南
4.5.5 文件监视工具File Monitor使用指南
4.6 标志位
第5章 静态分析
5.1 W32Dasm简介
5.2 可执行文件比较工具
5.2.1 File Compare 32
5.2.2 CodeFusion Wizard Version 3.0
5.2.3 Tola's Patching Engine 1.8
5.3 可执行文件修改工具
5.3.1 Hiew
5.3.2 UltraEdit32
5.3.3 ExeScope
5.4 静态分析实例
5.4.1 CD-Check光盘检测保护
5.4.2 序列号保护
5.4.3 姓名与注册码保护
5.4.4 Nag窗口
5.4.5 时间限制
第6章 动态分析
6.1 SoftICE使用指南
6.1.1 安装SoftICE
6.1.2 配置SoftICE
6.1.3 使用SoftICE
6.2 TRW2000使用介绍
6.3 用TRW2000解密
6.4 用TRW2000解密的步骤和解密经典句式
6.5 用W32Dasm辅助解密
6.6 搜索“S”法解密
6.7 关于?和d
6.8 汇编初学者的好助手——r命令
6.9 用TRW2000解密Visual Basic程序
6.10 keymake的使用方法
6.11 用SmartCheck解密Visual Basic程序
6.11.1 配置SmartCheck
6.11.2 用SmartCheck解密Visual Basic程序实例
第7章 用WinHex解密
7.1 解一般程序
7.2 解Visual Basic程序
第8章 加解密进阶基础知识
8.1 堆栈. 函数与变量
8.1.1 堆栈
8.1.2 识别函数与变量
8.2 条件断点
8.3 常用断点设置
8.4 常用断点API函数原型
8.5 W32Dasm使用进阶
8.6 利用输出信息
8.7 釜底抽薪法
8.8 浮点操作
8.8.1 解密范例
8.8.2 浮点常用命令说明
8.9 防解密的一般技巧
第9章 OllyDbg使用指南
9.1 OllyDbg简介及常用命令
9.2 一般程序的应用
9.2.1 应用实例一
9.2.2 应用实例二
9.3 Visual Basic程序的应用
9.4 快速解密程序
9.5 VB P-Code程序的应用
9.6 用OllyDbg设置断点
9.7 一些使用经验
第10章 IDA Pro的使用
10.1 两种方法的解密步骤
10.2 IDA与W32Dasm的比较
第11章 Nag窗口
11.1 解密Nag窗口的常用方法
11.2 解密Nag窗口工具软件
11.2.1 对话框清除工具DlgKill(DialogBox Killer)
11.2.2 NaGKiLL
第12章 算法入门与Visual Basic程序保护机制
12.1 一般程序算7法分析和注册机制作
12.2 Visual Basic程序的保护与解密
12.2.1 用SmartCheck追踪算法
12.2.2 用TRW2000追踪算法
12.2.3 VBAPI函数
12.2.4 Visual Basic常用中断
12.2.5 Visual Basic常用解密方法(TRW或SoftICE)
12.2.6 解除Visual Basic程序功能限制的方法
12.2.7 如何更好地保护你的Visual Basic程序
12.3 注册机制作辅助工具
12.3.1 注册机生成器
12.3.2 注册机编写器
12.4 Visual Basic相关函数
第13章 加密算法分析及密码学算法
13.1 预备知识与本章的一些约定
13.2 一般加密算法
13.2.1 基本运算
13.2.2 解方程等
13.3 密码学加密算法
13.3.1 散列密码系统
13.3.2 XOR32
13.3.3 MDx(Message-Digest Algorithm)
13.3.4 SHAx(Secure Hash Algorithms)
13.4 对称密码系统
13.4.1 Blowfish算法
13.4.2 DES算法
13.4.3 公钥密码系统
13.4.4 ECC算法体系
13.4.5 ElGamal算法
13.5 算法还原和keygen制作
13.5.1 正向分析
13.5.2 逆向分析
13.5.3 整体分析
第14章 其他常见保护方法与对策
14.1 Key文件保护
14.1.1 应用实例一
14.1.2 应用实例二
14.1.3 应用实例三
14.2 功能限制(灰菜单或灰按钮)
14.3 时间限制
14.4 光盘保护
14.5 广告窗口
第15章 用DeDe解密Delphi程序
15.1 DeDe的使用方法
15.2 DeDe初级篇
15.3 DeDe中级篇
15.4 DeDe高级篇
第16章 不同语言程序的解密特点
16.1 C++程序
16.1.1 C++程序常用断点设置
16.1.2 用SmartCheck解密C++程序
16.2 InstallShield
16.2.1 设法直接解压
16.2.2 脚本反编译, 研究序列号计算规则
16.3 PowerBuilder程序
16.4 FoxPro程序
16.4.1 伪编译
16.4.2 UnFoxAll
16.4.3 ReFoxReFox
第17章 手动脱壳
17.1 PE文件格式分析
17.1.1 简介
17.1.2 PE文件框架结构
17.1.3 PE首部
17.1.4 块表
17.1.5 引入函数表
17.1.6 引出函数表
17.1.7 资源
17.1.8 重定位
17.1.9 加载运行PE文件的步骤模拟
17.1.10 小结
17.2 寻找入口点(OEP)
17.3 转储程序
17.4 修复输入表
17.4.1 修复输入表的方法
17.5 几个脱壳实例
17.5.1 实例一
17.5.2 实例二
17.6 Petite脱壳分析
17.7 ASProtect脱壳分析
17.7.1 ASProtect脱壳总结(部分适用于其他壳保护)
17.7.2 应用实例一
17.7.3 ASProtect跟踪技巧——SEH深入剖析
17.7.4 应用实例二
17.8 Armadillo脱壳分析
17.8.1 应用实例一
17.8.2 应用实例二
第18章 VB P-Code保护与解密技术
18.1 PCode工作原理
18.2 exdec静态反编译
18.2.1 去Nag窗口
18.2.2 序列号
18.2.3 VB P-Code程序破解纲要
18.3 WKTVBDebugger动态调试
第19章 Anti技术
19.1 antl-debuggers技术探讨
19.2 FrogsICE使用指南
第20章 软件狗
20.1 软件狗加密的可靠性
20.2 Sentinel狗
20.3 TDSD狗
20.4 ROCKEY狗
20.5 TDMD狗
20.6 深思3狗简介
20.6.1 口令
20.6.2 数据
20.6.3 代码
20.7 破解软件狗的几种技巧
第21章 补丁技术
21.1 写静态补丁
21.2 动态补丁
21.3 SMC技术
21.4 高级补丁技术
第22章 磁盘保护与解密
22.1 KeyDisk(密钥)研究
22.2 用TR解密KEY盘保护
22.3 软磁盘超级磁道分析拷贝软件SCS
22.4 XingCopy2000 Pro
22.5 磁盘仿真软件
22.5.1 Simu97
22.5.2 WDST的使用
第23章 Windows资源与汉化技术
23.1 Windows资源及资源修改软件
23.2 用ExeScope汉化
23.3 用UltraEdit汉化软件
23.4 字符串替换器
23.5 汉化技巧
第24章 Java保护与解密技术
24.1 直接用十六进制编辑器解密
24.2 用解密Java的工具软件解密
附录A 有关资料