加密与解密
1. 软件的加密与解密
一款优秀的软件,技术秘密往往成为被盗取的重点。
软件的加密与解密是矛与盾的关系。
加密:维护商业利益,不断寻求各种有效的技术来保护软件版权,推迟软件被解密的时间;
解密:受盗版所带来的高利润趋势、个人兴趣,不断开发新的解密工具。
理论上,没有无法解密的保护。
2. 软件逆向工程
逆向工程:根据已有的产物和结果,通过分析来推导出具体的实现方法。
软件的逆向工程:可执行程序 -> 反编译 -> 源代码。
逆向工程的内容:
- 软件使用限制的去除或功能的添加
- 软件源代码的再获得
- 硬件的复制和模拟
现在的逆向工程,真实目的就是再利用。个人可以学习别人的编程技术及技巧,公司窥探别人的商业软件密码或开发与之兼容的软件。
逆向工程是一门优雅的技术。
3. 逆向分析技术
在软件汉化或解密的过程中,首要问题对软件进行分析。
分析的途径和策略:
- 通过软件使用说明和操作格式分析
- 静态分析技术
- 对反编译得到的程序清单进行分析。
- IDA。
- 动态分析技术
- 对各模块的技术细节分析。
- OllyDbg、WinDbg。
- 注意:1. 对软件进行粗跟踪;2. 对关键部分进行细跟踪。