Reverse Engineering


Zend Extension Manager 是一个 Zend 公司用于统一管理该公司出品的各种 Zend 扩展的 Zend 扩展。一般来说 Zend 扩展都是高度依赖 Zend Engine 版本的,但是 Zend Extension Manager 却可以不依赖任何具体版本的 PHP 运行库,并且会根据不同的运行环境自动加载不同产品相应版本的 Zend 扩展。相信通过学习 Zend Extension Manager 的实现会对我们统一开发部署 Zend 扩展提供一些帮助。

附件就是 Zend Extension Manager v1.2.0 版本的源代码和 VC++ 工程文件。源码是根据 ZendOptimizer-3.2.8-Windows-i386 中的 ZendExtensionManager.dll 逆向出来的。编译出来的 ZendExtensionManager.dll 可完全替代原始文件(事实上也没有任何区别)。

点击下载源码

这份代码转换自 OllyDbg 的反汇编引擎。我只转换了反汇编器部分,而没有转换汇编器部分。这本来是用于我自用某个程序的一部分,但是后来见到了 pvDasm,觉得 pvDasm 代码结构上的设计更为合理,因此决定采用 pvDasm 的引擎(当然还得转换为 Delphi 代码 Frown )。不过使用 Ollydbg 的引擎也有另外一个好处:就是反汇编出来的代码和在 Ollydbg 里面是一样的,我们会很感到很亲切。Laughing

大家各取所需吧。

 点击下载

作为目前最优秀 Delphi 反编译器(其实称之为针对 Delphi 的反汇编器会更为恰当些),DeDe 已经有三年没有更新了。 随着越来越多的 Delphi 程序员开始转到 BDS2006,它也似乎有点力不从心了。除了不能正确识别高于 Delphi 7 编译的程序的编译器版本外,还有以下几个方面有待改进:

1、缺乏对应的 VCL 符号识别文件。这本应该在设计时考虑到的,但制作相应版本 VCL 符号文件却异常困难。似乎除了作者自己外,他人很难操刀;

2、Dump DCU 引擎比较古老,现在已经有新版本出来了;

3、对 Delphi 窗体可视化编辑也不太好,对中文字符串也不能正确显示。

4、整个反汇编项目不能保存。下次只能重新“处理”;

所幸网上流传有 DeDe 较早版本(v3.10,DeDe 最新版本为 3.50)的源代码,可供我们瞻仰学习一番。希望我能彻底读懂 DeDe 源代码,因为它的源代码实在太难读了~Cry