Decompiler-VB.Net
CN
登录
VBReFormer Gen2 引擎从零重写,完整支持 P-Code,在线工作室进入公开测试。 阅读公告 →
源代码丢失

您丢失了 VB6 应用程序的源代码。以下是可以恢复的内容。

磁盘损坏、开发者离职、备份版本太旧:只剩下编译后的程序。VB6 反编译器能从中恢复的比人们预期的多得多,但并非全部。本页在您安装任何软件之前,告诉您具体能恢复哪些。

VBReFormer Pro (Gen2) — VB6 代码
VB6 代码 放大

您是否遇到以下情况?

硬盘坏了

开发机已经报废,但 EXE 仍在用户那里运行。

开发人员离职了

他带走了项目,或者没人知道他把项目放在哪里。

外包方不见了

编写该应用的公司已不存在,源代码从未交付。

备份太旧了

找到的源代码已与生产环境中运行的版本不一致。

您需要什么

只需要编译后的文件:由 Visual Basic 5 或 6 生成的 .exe、.dll、.ocx 或 .scr。别无其他。无需知道它是编译成 P-Code 还是本机代码:VBReFormer 会自动识别并同时支持两者。

  • P-Code 反编译,VB5 与 VB6
  • 原生 x86 代码反编译,VB5 与 VB6
  • UPX 压缩的二进制文件:无需运行即可解压
  • 随后支持 ASPack、MPRESS 和 PECompact 即将推出

能恢复什么

窗体和控件,及其全部属性,包括图片:任何情况下都完整恢复。

资源、字符串、对库和第三方控件的引用、项目结构:一个可在 IDE 中重新打开的 .vbp。

VBReFormer Pro (Gen2) — 设计视图
设计视图 放大

过程的代码:条件、循环、调用、赋值、控件访问,重建为可读的 Visual Basic,P-Code 和原生代码皆可。覆盖率页面逐程序测量了这具体意味着什么。

VBReFormer Pro (Gen2) — 类型与 API
类型与 API 放大

80%

的项目无需修改即可在 VB6 中重新编译

1,158 / 1,164

条已定义的 P-Code 指令被翻译为 Visual Basic

100%

的窗体及其属性在任何情况下都能恢复

无论是我们还是任何人,都永远无法恢复的内容:局部变量名和注释,编译器并未保留它们。恢复的代码可读且可重新编译;但不会与原始代码逐字一致。

能恢复多少代码:在 207 个程序上的实测

SETUP1.EXE

人人可验证:SETUP1.EXE

一个源代码随 VB6 提供的 Microsoft 程序:任何人都可以对比。

136 → 227

导出的过程数,从第 1 代到 V7

22 / 24

随机抽取并对照源代码阅读的过程:V7 更忠实

项目恢复之后

它重新成为一个普通项目:您可以在原来的 IDE 中打开、阅读和维护它。

  • 修复错误或调整业务规则,然后重新编译
  • 使用 Standard 版自带的 x86 和 P-Code 反汇编器阅读机器码
  • 借助 Professional 版的调用图和交叉引用,从头到尾跟踪程序
  • 为一个已无人完整了解的应用编写文档
VBReFormer Pro (Gen2) — 调用图
调用图 放大

如何着手,先免费试用

  1. 1

    在免费版中打开二进制文件,或将其拖入在线工作室,无需安装。您会看到项目结构、完整的窗体和反编译代码的预览。

  2. 2

    凭证据判断:预览显示的是引擎从您的二进制文件(而非示例)中重建的内容。如果您看到的值得购买许可证,就购买;如果不值得,您分文未花。

  3. 3

    有了许可证,即可导出完整项目并在 Visual Basic 6 中重新打开:约 80% 的项目无需修改即可重新编译。二进制文件无法确定的值会变成对 VBRF_ValeurInconnue() 的调用,可通过搜索找到。

详细文章:区分 P-Code 与原生代码,以及从何入手

费用

试用免费。只有当您在自己的二进制文件上看到的结果值得时才需付费。

免费版

完整窗体、项目结构和代码预览

0 €

推荐

Standard

找回您的源代码

79 € 每用户

Professional

Standard 加分析工具

229 € 每用户

查看许可证与价格

常见问题

P-Code 和原生代码有什么区别?

VB6 可编译为 P-Code(由虚拟机执行的伪代码)或原生代码(x86 机器指令,默认设置)。自第 2 代(VBReFormer 7)起,同一引擎可将两者都反编译为可读的 Visual Basic:1,164 条已定义的 P-Code 指令中有 1,158 条得到翻译,这一测量结果已发布在覆盖率页面上。上一代仅重建原生代码。

可执行文件中哪些能找回,哪些永久丢失?

Visual Basic 在运行时需要的一切都在文件中,都能找回:窗体、类、模块和控件的名称,事件处理程序,公共类成员,接口属性,运行时调用,API 声明。编译器丢弃的内容任何工具都无法找回:注释、局部变量和参数的名称、被其值替换的命名常量,以及 .bas 模块中过程的名称。平均而言,90% 的源代码可以找回;缺失的部分就是这些文件中不存在的元素。

反编译后的代码能在 Visual Basic 6 IDE 中重新编译吗?

可以:实际使用中,约 80% 的项目无需修改即可重新编译。导出会写入 IDE 所需的文件头(VERSION、Attribute VB_Name),缺少这些文件头 VB6 会拒绝该文件。无法确定的值绝不会被编造:它会变成对 VBRF_ValeurInconnue() 的调用,VB6 可以接受,也可以通过搜索找到。二进制文件中没有的内容会在导出说明中注明并解释原因。

如果反编译在我的二进制文件上不起作用怎么办?

这正是免费版的用途:它让您在购买前就在您自己的文件上看到可以提取什么——窗体、资源、项目结构。我们始终建议先试用。由于许可证是即时交付的数字内容,销售是最终的;如果遇到技术问题,我们的支持团队将与您一起寻找解决方案。

我的文件会被保存吗?

您的二进制文件不会被保留:分析后随会话一并删除

反编译程序合法吗?

合法,前提是您拥有该软件的权利——典型情形是重建自己丢失的源代码——或处于互操作性的法律框架之内。您必须持有对被分析程序的必要权利。

VBReFormer 能反编译 .NET、VB.NET 或 C# 吗?

不能。VBReFormer 处理 Visual Basic 5 和 6:.exe、.dll、.ocx 和 .scr。.NET 程序集需要 .NET 反编译器;我们在博客上对比了几款。

希望我们代劳?

我们从您的二进制文件恢复项目,在 IDE 中重新打开,并交付可直接维护的项目,附带一份说明恢复内容的报告。报价前对二进制文件进行免费评估。

申请免费评估
VBReFormer Pro (Gen2) — VB6 代码
VBReFormer Pro (Gen2) — 类型与 API
VBReFormer Pro (Gen2) — 设计视图
VBReFormer Pro (Gen2) — 调用图