产品
VBReFormer,面向您的 VB5 和 VB6 应用程序的原生代码与 P-Code VB 反编译器
第 2 代:最强大的原生代码和 P-Code 反编译。引擎对机器码和 P-Code(VB6 的两种编译模式)进行解释,而不是匹配模式。它找回 EXE、DLL 或 OCX 的源代码、窗体和资源,并重建一个可在 IDE 中打开的项目。在一个 9.35 MB 的参考二进制文件上:写出 1,976 个过程,0 个空过程体,0 个错误标记,耗时 12 秒。
受到以下机构的信赖
以及五大洲的公共机构、国防实验室和大学
反编译代码示例
Private Sub Form_Load()
Dim nRetVal As Long
Dim sBuffer As String
nRetVal = GetProfileStringA(
"Settings", "Language", "EN",
sBuffer, 255)
If nRetVal > 0 Then
Me.Caption = sBuffer
End If
End Sub
最强大的原生代码和 P-Code 反编译器
第 2 代反编译器不匹配模式:它解释代码——包括寄存器、虚拟内存和 FPU 栈——然后将其翻译回可读的 Visual Basic。它同样处理原生代码和 P-Code(VB6 的两种编译模式),其输出以原始源代码为基准进行测量。
- 对机器码进行抽象解释,取代模式匹配
- 1,164 条已定义的 P-Code 指令,1,158 条翻译为 VB6
- 重建运行时调用(MSVBVM60.dll)
- 15,680 个 Win32 API 声明、6,442 个常量、422 种类型
- 类型推断、找回的名称、数组边界、Select Case 跳转表
- 覆盖四种 VB6 优化配置并分别测量
90% 的源代码平均得以找回。局部变量名和私有符号不存储在二进制文件中,不计入此数字。
在一个 9.35 MB 的参考二进制文件上测量,并与其原始源代码对比
| 第 1 代 | Gen2(V7) | |
|---|---|---|
| 导出时写出的过程 | 1 799 | 1 976 |
| 源代码非空而过程体为空 | 229 | 0 |
| 呈现代码中残留的错误标记 | 1 129 | 0 |
| 呈现为“As Unknow”的签名 | 75 014 | 0 |
| 打开 → 写出项目 | ≈ 88 s | 12 s |
测试集的 149 个项目中有 121 个可在 Visual Basic 6 IDE 中原样重新编译。
一张许可证涵盖两代产品:VBReFormer 7(Windows 10 和 11)与第 1 代(Windows XP 至 11)均可从同一账户下载。
逐函数查看覆盖率围绕反编译器:分析与导航
呈现的代码配有相应工具:x86 和 P-Code 反汇编器、调用图和控制流图、符号清单、全局重命名、十六进制视图。引擎读取的内容与它合成的内容始终区分开来。
界面设计提取
即使没有原始项目文件,VBReFormer 也能从您的已编译二进制文件中提取每一个可视化设计构件。
- 提取 VB 项目文件(.vbp)
- 提取窗体和控件(.frm、.ctl、.pag)
- 提取二进制资源(.frx、.ctx、.pgx)
- 识别所有外部 COM、OLE 和 ActiveX 组件
- 提取嵌入的图像和图标
重建输出
Form1.frm — main form extracted
Form1.frx — binary resources
Module1.bas — standard module
Class1.cls — class module
UserCtrl.ctl — user control
Project.vbp — project file
已编译界面设计编辑器
市场上唯一可以无任何大小限制地编辑已编译 VB5/VB6 界面的工具。更改控件属性、修正标题、替换图像——全部直接在已编译的二进制文件上进行。
- 在已编译二进制文件中编辑控件属性
- 无大小限制(独有功能)
- 替换嵌入的位图和图标
- 无需重新编译即可添加隐藏属性
- 导出单个资源以供重用
在二进制文件内部的编辑由随许可证提供的第 1 代完成。第 2 代可读取窗体的界面及其全部属性,但尚不能写回。
可编辑属性
版本
功能对比
所有版本都包含全部技术功能。区别在于许可证范围——受益组织的规模大小。
| 版本 | Small Business Home / Education 79 € |
Popular
Medium Business 10–249 组织规模上限 349 € |
Large Business Gov · Military · 250+ 799 € |
|---|---|---|---|
| 反编译器(P-Code 和原生代码) | |||
| 机器码 → Visual Basic 重建 | |||
| P-Code 重建 → Visual Basic | |||
| 1,164 条已定义的 P-Code 指令,1,158 条翻译为 VB6 | |||
| 重建运行时调用(MSVBVM60) | |||
| 15,680 个 Win32 API 声明、6,442 个常量、422 种类型 | |||
| 类型推断,并传播至过程体与条件表达式 | |||
| 149 个项目中有 121 个无需修改即可重新编译 | |||
| 反汇编器 | |||
| 过程识别(窗体、模块、类……) | |||
| 机器码 → 汇编反汇编 | |||
| 汇编与 VB 语法高亮 | |||
| 反汇编代码全文搜索引擎 | |||
| 界面设计提取 | |||
| 提取项目文件(.vbp) | |||
| 提取窗体(.frm、.ctl、.pag) | |||
| 二进制资源文件(.frx、.ctx、.pgx) | |||
| COM / OLE / ActiveX 组件识别 | |||
| 嵌入图像与图标提取 | |||
| 设计编辑器 | |||
| 在已编译二进制文件中编辑控件属性 | |||
| 无大小限制(独有功能) | |||
| 替换嵌入的资源(图像、图标) | |||
| 无需重新编译即可添加隐藏属性 | |||
| 常规 | |||
| 支持 Visual Basic 5 和 6 | |||
| 支持的格式:.exe .dll .ocx .scr | |||
| Windows 10 → Windows 11 | |||
| 免费产品更新 | |||
| 在线文档与用户指南 | |||
| 许可证范围 | |||
| 组织规模上限 | < 10 名员工 · 营收 < 100 万欧元 | 10–249 名员工 · 营收 < 5,000 万欧元 | 250 名员工及以上 · 无限制 |
| 使用类型 | 个人 · 学术 · 非营利 | 商业专业用途 | 商业 · 政府 · 军事 |
| 安装 | 按用户或按计算机 | 按用户或按计算机 | 按用户或按计算机 |
| 选择您的许可证 | 获取许可证 → | 获取许可证 → | 获取许可证 → |
许可证有效期为 1 年、2 年或 3 年,取决于结账时选择的期限,整个期间均含支持和更新。不适用增值税——《法国税法典》第 293 B 条。
在法国设计和开发
VBReFormer 在法国的图卢兹和萨瓦之间设计、构建和维护——法国和欧洲的逆向工程专业能力,不依赖欧洲以外的任何资源。
图卢兹
上加龙省 · 奥克西塔尼
萨瓦
奥弗涅-罗讷-阿尔卑斯
合适的工具做合适的事
.NET、C# 或 VB.NET?dnSpy 或 ILSpy 等免费工具已经能很好地处理。我们的专长是 Visual Basic 5 和 6——这才是真正困难的问题,也是我们唯一立志比任何人都做得更好的问题。
为什么专注于此 →合作伙伴
法国的逆向工程与网络安全生态系统。
常见问题
P-Code 和原生代码有什么区别?
VB6 可编译为 P-Code(由虚拟机执行的伪代码)或原生代码(x86 机器指令,默认设置)。自第 2 代(VBReFormer 7)起,同一引擎可将两者都反编译为可读的 Visual Basic:1,164 条已定义的 P-Code 指令中有 1,158 条得到翻译,这一测量结果已发布在覆盖率页面上。上一代仅重建原生代码。
引擎是匹配模式,还是解释代码?
它是解释代码。第 1 代在已编译代码中匹配模式,只呈现它识别出来的部分。第 2 代对机器码和 P-Code 同样进行解释,以重建表达式和类型;无法重建的部分既不会被丢弃也不会被猜测,而是在导出说明中被指名并解释。
VBReFormer 能反编译任何 VB6 程序吗?
VBReFormer 可以分析任何用 Visual Basic 5 或 6 编译的可执行文件,无论是 P-Code 还是原生代码。界面——窗体、控件、资源——在任何情况下都能完整提取。代码重建则取决于二进制文件中保留了什么:免费版让您在购买前就能在自己的文件上看到结果。
反编译后的代码能在 Visual Basic 6 IDE 中重新编译吗?
通常可以:在一个包含 149 个项目的测试集上,121 个无需修改即可重新编译。导出会写入 IDE 所需的文件头(VERSION、Attribute VB_Name),没有这些 VB6 会拒绝该文件。无法重建的部分会在导出说明中被指名并解释,而不是用一个看似合理的值填充。
可执行文件中哪些能找回,哪些永久丢失?
Visual Basic 在运行时需要的一切都在文件中,都能找回:窗体、类、模块和控件的名称,事件处理程序,公共类成员,接口属性,运行时调用,API 声明。编译器丢弃的内容任何工具都无法找回:注释、局部变量和参数的名称、被其值替换的命名常量,以及 .bas 模块中过程的名称。平均而言,90% 的源代码可以找回;缺失的部分就是这些文件中不存在的元素。
如果反编译在我的二进制文件上不起作用怎么办?
这正是免费版的用途:它让您在购买前就在您自己的文件上看到可以提取什么——窗体、资源、项目结构。我们始终建议先试用。由于许可证是即时交付的数字内容,销售是最终的;如果遇到技术问题,我们的支持团队将与您一起寻找解决方案。
有免费版本吗?
有,而且无需购买任何东西。桌面免费版与授权版使用同一个安装程序:它可以完整提取界面(窗体、资源、项目结构),并显示反编译代码的预览,没有时间限制。在线工作室提供十一种语言,在浏览器中完成同样的工作,无需安装任何东西:反汇编、P-Code、设计器、.vbp 项目和资源均完整提供,重建的源代码则以预览形式呈现。许可证可解锁完整代码和项目导出。
许可证的有效期是多久?
按您购买时选择的期限:一年、两年或三年。在此期间,电子邮件支持和发布的每一次更新均包含在内,无需额外费用。期满后访问终止,您可以购买新的许可证。免费版可继续无限期使用。
反编译程序合法吗?
合法,前提是您拥有该软件的权利——典型情形是重建自己丢失的源代码——或处于互操作性的法律框架之内。您必须持有对被分析程序的必要权利。
VBReFormer 能反编译 .NET、VB.NET 或 C# 吗?
不能。VBReFormer 处理 Visual Basic 5 和 6:.exe、.dll、.ocx 和 .scr。.NET 程序集需要 .NET 反编译器;我们在博客上对比了几款。