产品
VBReFormer,面向您的 VB5 和 VB6 应用程序的原生代码与 P-Code VB 反编译器
第 2 代:最强大的原生代码和 P-Code 反编译。引擎对机器码和 P-Code(VB6 的两种编译模式)进行解释,而不是匹配模式。它找回 EXE、DLL 或 OCX 的源代码、窗体和资源,并重建一个可在 IDE 中打开的项目。在一个 9.35 MB 的参考二进制文件上:写出 1,976 个过程,0 个空过程体,0 个错误标记。
受到以下机构的信赖
以及五大洲的公共机构、国防实验室和大学
最强大的原生代码和 P-Code 反编译器
第 2 代反编译器不匹配模式:它解释代码——包括寄存器、虚拟内存和 FPU 栈——然后将其翻译回可读的 Visual Basic。它同样处理原生代码和 P-Code(VB6 的两种编译模式),其输出以原始源代码为基准进行测量。
- P-Code 反编译,VB5 与 VB6
- 原生 x86 代码反编译,VB5 与 VB6
- UPX 压缩的二进制文件:无需运行即可解压
- 对机器码进行抽象解释,取代模式匹配
- 1,164 条已定义 P-Code 指令中 1,158 条已转换为 VB6(引擎的表共有 1,536 个操作码)
- 重建运行时调用(MSVBVM60.dll)
- 15,680 个 Win32 API 声明、6,442 个常量、422 种类型
- 类型推断、找回的名称、数组边界、Select Case 跳转表
- ByRef 和 ByVal 由代码证明,而非猜测
- 重建用户定义类型(Type … End Type),字段和类型均经证明
- Currency、Variant、ParamArray 和带边界的数组
- 覆盖四种 VB6 优化配置并分别测量
- 随后支持 ASPack、MPRESS 和 PECompact 即将推出
90%
的源代码平均得以找回。局部变量名和私有符号不存储在二进制文件中,不计入此数字。
约 80% 的项目无需修改即可在 Visual Basic 6 IDE 中重新编译。
在一个 9.35 MB 的参考二进制文件上测量,并与其原始源代码对比
| 第 1 代 | Gen2(V7) | |
|---|---|---|
| 导出时写出的过程 | 1 799 | 1 976 |
| 源代码非空而过程体为空 | 229 | 0 |
| 呈现代码中残留的错误标记 | 1 129 | 0 |
| 呈现为“As Unknow”的签名 | 75 014 | 0 |
一张许可证涵盖两代产品:VBReFormer 7(Windows 10 和 11)与第 1 代(Windows XP 至 11)均可从同一账户下载。
逐函数查看覆盖率136 → 227
导出的过程数,从第 1 代到 V7
22 / 24
随机抽取并对照源代码阅读的过程:V7 更忠实
围绕反编译器:分析与导航
恢复的代码配有阅读工具。Standard 包含 x86 与 P-Code 反汇编器、带二进制补丁的十六进制视图和符号清单。Professional 增加贯穿整个项目追踪代码的工具:调用图与流程图、交叉引用、全局重命名。
Standard
- VB5/VB6 x86 反汇编器
- P-Code 反汇编器
- 带注释的十六进制视图和二进制补丁
- 符号清单——读取到的名称与合成的名称分列
Professional 与站点许可
- 调用图——三种尺度,调用方 / 被调用方筛选
- 控制流图,包含不可达块
- 交叉引用
- 全局重命名——其他模块中的调用点同步更新
用于恶意软件分析
可疑的二进制文件也能安全研究:VBReFormer 只读取代码,从不执行。
- 从不执行二进制文件,即使是解压 UPX 也不执行
- 完全限定的输出(Frame1.Caption),不重建 With:可直接交给反混淆器或后续工具
- 区分从二进制文件读取的名称和合成的名称
该二进制文件保留在我们的服务器上,无法下载。
Private Sub Timer5_Timer()
On Error Resume Next
If g_471046 <> 1000 Then
g_471046 = (g_471046 + 1)
Else
var_34 = Module2.proc_45E510("Cookies")
var_34 = Module2.proc_45E510("Contacts")
var_94 = Module2.proc_45E510(CStr(((Environ("COMPUTERNAME") & "_") & Environ("USERNAME"))))
var_34 = Module2.proc_45E510("Screenshot")
var_34 = Module2.proc_45E510("KeyData")
g_471046 = 0
End If
End Sub用您自己的二进制文件试一试
免费预览以明文显示每个过程体的 35%,每个块和每个过程至少一行,与付费结果完全相同。包括 Microsoft 的 SETUP1.EXE 在内的五个演示无需许可即可完整查看。
VBReFormer Online
公开测试将 VB5 或 VB6 程序拖入浏览器:免费显示结构和代码预览,无需安装任何软件。
- 无需安装:可在任何系统上运行,包括桌面版无法运行的系统
- 界面支持 11 种语言
- 您的二进制文件不会被保留:分析后随会话一并删除
- 包含在 Standard 许可中,同时可用桌面版
或者打开一个演示,无需上传: SETUP1.EXE · DemoNat.exe · Demo.exe (P-code) · modCur3.exe
版本
功能对比
按解锁功能划分的三个版本:Standard 恢复并导出源代码,Professional 增加分析工具,站点许可证覆盖一个组织内的所有用户。
| 版本 | 推荐
Standard 找回您的源代码 79 € 每用户 |
Professional Standard 加分析工具 229 € 每用户 |
站点许可证 面向组织内所有用户的 Professional 起价 799 € |
|---|---|---|---|
| 反编译器(P-Code 和原生代码) | |||
| P-Code 反编译,VB5 与 VB6 | |||
| 原生 x86 代码反编译,VB5 与 VB6 | |||
| UPX 压缩的二进制文件:无需运行即可解压 | |||
| 1,164 条已定义 P-Code 指令中 1,158 条已转换为 VB6(引擎的表共有 1,536 个操作码) | |||
| 重建运行时调用(MSVBVM60) | |||
| 15,680 个 Win32 API 声明、6,442 个常量、422 种类型 | |||
| 类型推断,并传播至过程体与条件表达式 | |||
| 80% 的项目可在 VB6 中重新编译 | |||
| 反汇编器 | |||
| 过程识别(窗体、模块、类……) | |||
| VB5/VB6 x86 反汇编器 | |||
| P-Code 反汇编器 | |||
| 带注释的十六进制视图和二进制补丁 | |||
| 符号清单——读取到的名称与合成的名称分列 | |||
| 汇编与 VB 语法高亮 | |||
| 反汇编代码全文搜索引擎 | |||
| 界面设计提取 | |||
| 提取项目文件(.vbp) | |||
| 提取窗体(.frm、.ctl、.pag) | |||
| 二进制资源 .frx(.ctx 和 .pgx 由第 1 代提供) | |||
| COM / OLE / ActiveX 组件识别 | |||
| 嵌入图像与图标提取 | |||
| 设计编辑器 | |||
| 在已编译二进制文件中编辑控件属性 | |||
| 无大小限制(独有功能) | |||
| 替换嵌入的资源(图像、图标) | |||
| 无需重新编译即可添加隐藏属性 | |||
| 分析工具 | |||
| 调用图——三种尺度,调用方 / 被调用方筛选 | — | ||
| 控制流图,包含不可达块 | — | ||
| 交叉引用 | — | ||
| 全局重命名——其他模块中的调用点同步更新 | — | ||
| 常规 | |||
| 完整使用 VBReFormer Online + Desktop | |||
| 支持 Visual Basic 5 和 6 | |||
| 支持的格式:.exe .dll .ocx .scr | |||
| Windows 10 → Windows 11 | |||
| 免费产品更新 | |||
| 在线文档与用户指南 | |||
| 许可证范围 | |||
| 用户 | 按用户,1 至 19 名 | 按用户,1 至 19 名 | 20 名、100 名或不限 |
| 使用类型 | 个人或商业用途,任何组织 | 个人或商业用途,任何组织 | 个人或商业用途,任何组织 |
| 安装 | 按用户或按计算机 | 按用户或按计算机 | 按用户或按计算机 |
| 选择您的许可证 | 获取许可证 → | 获取许可证 → | 申请报价 → |
许可证有效期为 1 年、2 年或 3 年,取决于结账时选择的期限,整个期间均含支持和更新。不适用增值税——《法国税法典》第 293 B 条。
常见问题
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 中重新编译吗?
可以:实际使用中,约 80% 的项目无需修改即可重新编译。导出会写入 IDE 所需的文件头(VERSION、Attribute VB_Name),缺少这些文件头 VB6 会拒绝该文件。无法确定的值绝不会被编造:它会变成对 VBRF_ValeurInconnue() 的调用,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 反编译器;我们在博客上对比了几款。
在法国设计和开发
VBReFormer 在法国的图卢兹和萨瓦之间设计、构建和维护——法国和欧洲的逆向工程专业能力,不依赖欧洲以外的任何资源。
图卢兹
上加龙省 · 奥克西塔尼
萨瓦
奥弗涅-罗讷-阿尔卑斯
合适的工具做合适的事
.NET、C# 或 VB.NET?dnSpy 或 ILSpy 等免费工具已经能很好地处理。我们的专长是 Visual Basic 5 和 6——这才是真正困难的问题,也是我们唯一立志比任何人都做得更好的问题。
为什么专注于此 →合作伙伴
法国的逆向工程与网络安全生态系统。