本书介绍软件的加密与解密技术,在详细讲述加密解密技术的同时,还介绍了相应的实现原理,以使读者能够对加密解密技术有更深入的了解,从而更好地提高自己的编程水平。全书共分为10章,包括反汇编调试的静态与动态分析、暴力破解共享软件、补丁技术及其工具、加壳/脱壳技术和反编译语言程序等内容。
本书内容丰富,图文并茂,叙述深入浅出,适用于对加密解密技术有兴趣的读者;同时可作为加密解密课程教材或参考书,也适用于软件开发从业人员及编程爱好者参考。
第1章 加密VS解密——大碰撞
1.1 认识加密技术
1.1.1 数据加密的基本概念
1.1.2 加密技术及其相关问题
1.2 加密VS解密:矛与盾的关系
1.3 常见软件加密保护技术
1.3.1 常见软件加密保护技术
1.3.2 加密解密的相关概念
1.3.3 关于注册码
1.4 熟悉汇编语言的几条常用命令
第2章 代码分析技术及代码指令
2.1 为什么要学习代码分析技术
2.1.1 初识PE格式文件
2.1.2 文件偏移地址与虚拟地址转换
2,1.3 如何寻找程序的入口点(OEP)
2.1.4 如何转储程序
2.1.5 如何修复输入表
2.1:6 直接调用引入表函数
2.2 加密解密中常用的基础知识
2.2.1 经常见到的名词
2.2.2 常用命令介绍
2.3 熟悉加密解密中常用的代码指令
2.3.1 条件设置指令
2.3.2 浮点运算与浮点指令
第3章 认识软件分析技术
3.1 静态分析技术及流行工具
3.1.1 什么是静态分析
3.1.2 程序类型分析工具
3.1.3 资源编辑器工具
3.1.4 反汇编分析工具
3.2 动态分析技术及流行工具
3.3 注册表分析技术及流行工具
3.3.1 注册表编辑:工具Regedit
3.3.2 注册表照相机RegSn叩
3.3.3 注册表监视工具RegMon
3.3.4 注册表监视工具Regshot
3.3.5 注册表文件监视工具FileMonitor
第4章 静态分析软件与文件编辑工具
4.1 静态分析软件W32Dasm
4.1.1 对选择的文件进行反汇编
4.1.2 保存反汇编文本文件
4.1.3 反汇编源代码的基本操作
4.1.4 复制汇编代码文本
4.1.5 装载32位的汇编代码动态调试
4.1.6 运行、暂停或终止反汇编程序
4.1.7 对程序实行单步跟踪
4.1.8 设置激活断点
4.1.9 偏移地址和虚拟地址转换
4.2 W32Dasm秘技放送
4.2.1 让W32Dasm中的中文字符正确显示
4.2.2 揭秘序列号保护
4.2.3 突破CD-Check光盘的检测保护
4.2.4 破解功能限制的滞碍
4.2.5 让Nag窗口安静地走开
4.2.6 突破时间限制
4.3 静态分析软件IDAPro
4.3.1 1DAPro的主窗口和菜单配置
4.3.2 如何打开/装载文件
4.3.3 注释与交叉参考
4.3.4 如何查找字符串
4.3.5 参考重命名
4.3.6 标签与进制的转换
4.3.7 手动识别代码和数据
4.3.8 数组和结构体
4.3.9 枚举类型与堆栈变量
4.3.10 1DC脚本控制器
4.3.11 输出反汇编代码
4.4 可执行文件编辑工具
4.4.1 Hiew使用简介
4.4.2 UltraEdit使用简介
4.4.3 HexWorkshop使用简介
4.4.4 WinHex使用简介
4.4.5 eXeScope使用简介
第5章 动态分析软件及其应用
5.1 动态分析软件SofiICE
5.1.1 SoftICE安装后的配置
5.1.2 SoftlCE的调用
5.1.3 认识SoftlCE窗口界面
5.1.4 SoftlCE中的组合键与常用命令
5.1.5 使SoftlCE在程序的入口处停下来
5.1.6 如何实现多次跟踪
5.1.7 修改代码的属性
5.2 动态分析软件TRW2000
5.2.1 TRW2000的安装与配置
5.2.2 认识TRW2000的窗口
5.2.3 认识TRW2000的命令和常用键
5.2.4 TRW2000经典步骤
5.2.5 反汇编分析中的经典句式
5.3 动态分析软件011yDbg
5.3.1 认识OllyDbg界面
5.3.2 OllyDbg的基本操作
5.3.3 OllyDbg的常用菜单命令
5.3.4 如何用OllyDbg设置断点
5.4 SmartCheck与Keymake使用简介
5.4.1 SmartCheck使用介绍
5.4.2注册机编写器Keymake使用介绍
第6章 暴力破解技术及其工具
6.1 暴力破解基础
6.1.1 暴力破解的原理
6.1.2 为什么要使用暴力破解
6.1.3 对使用暴力破解的软件分类
6.1.4 暴力破解的几个条件
6.1.5 暴力破解思维浅析
6.1.6 文件补丁方式暴破方法
6.1.7 内存补丁方式暴破方法
6.1.8 用到的汇编指令机器码
6.1.9 动态改变条件跳转指令的执行方向
6.2 如何制作词典文件
6.2.1 自制词典文件——万能钥匙Xkey
6.2.2 自制词典文件——Txt2Dic
6.3 暴力破解实例
6.3.1 完美破解UnFoxAll
6.3.2 暴力破解Foxmail的本地口令
6.3.3 暴力破解CB-CAD3.52
6.3.4 使用KERNEL32.DLL破解
第7章 补丁技术及其工具
7.1 为什么要给程序打补丁
7.1.1 认识补丁文件的组成
7.1.2 补丁的分类
7.2 认识补丁工具
7.2.1 补丁制作工具CodeFusion
7.2.2 内存补丁制作工具R!SC'sPatcher.
7.3 补丁技术的应用
7.3.1 开始程序分析
7.3.2 确定配置方案
7.3.3 制作补丁程序
7.3.4 如何为程序添加功能
7.3.5 可执行文件的加密研究
7.4 SMC技术大揭秘
7.4.1 认识SMC函数
7.4.2高级补丁技术
7.5 用CrackCode2000制作注册机
7.5.1 寻找注册码
7.5.2 内存直接寻址法
7.5.3 寄存器间接寻址法
7.5.4 DecompileWinhelp注册机的写法-
7.5.5 CrackCode的加强模式
第8章 加壳/脱壳技术研究
8.1 加壳/脱壳知识基础
8.1.1 什么是壳
8.1.2 为什么要加壳
8.1.3 如何为程序加载壳—
8.2认识几款加壳工具
8.2.1 ASPack及其使用方法
8.2.2 UPX及其使用方法
8.2.3 PEcompact及其使用方法
8.2.4 ASProtect及其使用方法
8.2.5 tElock及其使用方法
8.2.6 幻影(DBPE)及其使用方法
8.3 脱壳软件使用介绍
8.3.1 脱ASPack壳的软件
8.3.2脱UPX壳的软件
8.3.3 脱PECompact壳的软件
8.3.4 ProcDump使用简介
8.3.5.UN-PACK软件使用介绍
8.4 如何进行手动脱壳
8.4.1 确定入口点(OEP)
8.4.2 抓取内存映像文件
8.4.3 重建PE文件
8.4.5 使用ImportREC进行手动脱壳
8.4.6 如何将可编辑资源重建
8.5 加深一点对壳的理解
8.5.1 侦壳应用实例
8.5.2 软件加壳/脱壳入门级实例
第9章 反编译语言程序
9.1 对FoxPro程序的反编译
9.1.1 如何解密FOX加密的程序
9.1.2反编译工具UnFoxAll
9.2 揭开VisualBasic程序的保护机制
9.2.1 WKTVBDE调试工具
9.2.2 VisualBasic程序中常用的中断
9.3 用DeDe解密Delphi程序
9.3.1 DeDe反编译调试工具
9.3.2 破解远程控制程序
9.4 解密InstallShield安装脚本
9.4.1 如何直接解压lnstallShield
9.4.2 解密InstaltShield压缩
第10章 加密解密高手真经
10.1 有关编程的相关技术资料
10.1.1 VXD、KMD、WDM基本概念
10.1.2 实现程序的白删除
10.1.3 用硬件信息实现共享软件的安全注册
10.2 光盘的加密与解密技术
10.2.1 光盘加密流技术
10.2.2 使用CD-Protector软刊:加密光盘
10.2.3 使用FreeLock加密数据光碟光盘加密流技术
10.2.4 破解加密光盘
10.2.5 加密MP3光盘破解手记
10.2.6 利用FileMonitor对付隐藏目录的加密光盘
10.2.7 如何制作隐藏目录、超大文件
网络的发展无疑极大地推动了共享软件的发展,但共享软件的蓬勃发展也无疑造就了另外一个行业的发展,那就是加密解密。尤其是人们知识产权意识的不断加强和有关方面法律法规的不断完善,更多学习计算机的人都对加密解密技术有浓厚的兴趣,并要求学习、掌握加密解密技术,因此,这也是我们编写本书的初衷。
我们的目的不是要教会大家如何破解别人的软件,更反对将这一技术用于非法目的,而是要大家学会如何通过跟踪软件了解别人的编程思路,从容分析它的程序原理,从而写出自己更好的程序。
为照顾初学者,本书经过精心编排,尽力做到以图例讲解代替大段大段枯燥的代码说教,使得各个层面的读者,甚至是那些从未接触过汇编和没有多少编程基础的读者也能够在阅读完本书后轻松入门。
而对于电脑加密解密高手来说,阅读本书的意义却另有不同。不断地探索未知,是每一个“高手”心目中永远的诱惑。作为一个加密解密爱好者,则注定了自己与未知的对抗,而不能掌握一些必要的软件加密解密技术,将是自己心中永远的痛。
为方便广大读者的阅读,本书完全采用图例步骤式的讲解方法,使得图文能够紧密结合,尽可能地减少了长篇累牍的枯燥代码,理论讲解深入浅出,同时强调应用技能的快速掌握,使得本书简单易读。
本书凝聚众多网际高手的加密解密经验与技巧,并在对其加密解密思想或操作步骤进行重新整理的基础上,进行了进一步的深化和剖析,从而使得这些高深的加密解密技术不再遥不可及。
我们相信,有这样一本书置于你的案头,那许许多多在你过去看来难于登天的事情,你会突然发现却原来如此简单。
本书由众多经验丰富的高校教师编写,并得到了众多网友的支持,在此一并表示衷心的感谢。本书的编写情况是:樊瑞负责第1章,张蕾负责第2章,齐伟负责第3章,周义德负责第4章,武新华负责第5、6、7章,安向东负责第8章,张海峰负责第9、10章;武新华、周义德统稿。
我们虽满腔热情,但限于自己的水平,书中的疏漏之处在所难免,欢迎广大读者批评指正。
最后,需要提醒大家的是:
根据国家有关法律规定,任何破解他人软件程序用于商业目的的行为都属于违法行为,希望读者在阅读本书后最好不要使用本书中介绍的破解技术对某些软件进行盗版制作,否则后果自负。