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

产品

VBReFormer,面向您的 VB5 和 VB6 应用程序的原生代码与 P-Code VB 反编译器

第 2 代:最强大的原生代码和 P-Code 反编译。引擎对机器码和 P-Code(VB6 的两种编译模式)进行解释,而不是匹配模式。它找回 EXE、DLL 或 OCX 的源代码、窗体和资源,并重建一个可在 IDE 中打开的项目。在一个 9.35 MB 的参考二进制文件上:写出 1,976 个过程,0 个空过程体,0 个错误标记,耗时 12 秒。

746,139+ 次下载 27 年专业经验
.exe.dll.ocx.scrVB5 VB6 原生代码和 P-Code

受到以下机构的信赖

以及五大洲的公共机构、国防实验室和大学


反编译代码示例

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

第 2 代 · 所有版本

最强大的原生代码和 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 优化配置并分别测量
注意:自 VBReFormer 7 起,P-Code 和原生代码均可反编译。上一代仅重建原生代码。

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)均可从同一账户下载。

逐函数查看覆盖率
第 2 代 · 所有版本

围绕反编译器:分析与导航

呈现的代码配有相应工具:x86 和 P-Code 反汇编器、调用图和控制流图、符号清单、全局重命名、十六进制视图。引擎读取的内容与它合成的内容始终区分开来。

机器码 → 汇编反汇编
调用图——三种尺度,调用方 / 被调用方筛选
控制流图,包含不可达块
符号清单——读取到的名称与合成的名称分列
全局重命名——其他模块中的调用点同步更新
带注释的十六进制视图和二进制补丁
类型推断,并传播至过程体与条件表达式
VB6 重新打开文件所需的头部信息
所有版本

界面设计提取

即使没有原始项目文件,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 代可读取窗体的界面及其全部属性,但尚不能写回。

可编辑属性

Caption "My Application v2.1"
BackColor &H00FFFFFF&
Font.Name "Arial"
Font.Size 12
Width 5280
Height 3840
Icon [binary resource]

版本

功能对比

所有版本都包含全部技术功能。区别在于许可证范围——受益组织的规模大小。

版本

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 条。

先免费试用——免费版让您看到引擎从您的二进制文件中重建出什么 → · 或在线试用,无需安装 → · 文档

100% 法国

在法国设计和开发

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 反编译器;我们在博客上对比了几款。

选择您的许可证

回答 2 个关于您情况的问题,我们将为您选出合适的版本——不到 30 秒。

开始选择 →