製品
VBReFormer — VB5/VB6 アプリケーションのためのネイティブ・P-Code 対応 VB decompiler
第 2 世代:最も高性能なネイティブ・P-Code デコンパイル。エンジンはパターン照合ではなく、VB6 の 2 つのコンパイル方式であるマシンコードと P-Code を解釈します。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 に翻訳し直します。VB6 の 2 つのコンパイル方式であるネイティブコードと P-Code を同じように扱い、その結果は元のソースと照らして計測されています。
- パターン照合に代わる、マシンコードの抽象解釈
- 定義済み P-Code 命令 1,164 件、うち 1,158 件を VB6 に変換
- ランタイム呼び出し (MSVBVM60.dll) を再構築
- Win32 API 宣言 15,680 件、定数 6,442 件、型 422 件
- 型推論、名前の復元、配列の境界、Select Case のジャンプテーブル
- VB6 の 4 つの最適化プロファイルを網羅し、個別に計測
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 で再コンパイルできます。
1 つのライセンスで両世代を利用できます。VBReFormer 7(Windows 10・11)と第 1 世代(Windows XP〜11)は同じアカウントからダウンロードできます。
カバレッジを関数ごとに見るデコンパイラーの周辺:解析とナビゲーション
生成されたコードには読むための道具が付きます。x86 と P-Code の逆アセンブラー、呼び出しグラフと制御フローグラフ、シンボル一覧、一括リネーム、16 進ビュー。エンジンが読み取ったものと合成したものは区別されたままです。
UI デザインの抽出
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
コンパイル済みUIデザインエディタ
サイズ制限なくコンパイル済みのVB5/VB6のUIを編集できる、市場で唯一のツールです。コントロールのプロパティ変更、キャプションの修正、画像の置き換えを、すべてコンパイル済みバイナリ上で直接行えます。
- コンパイル済みバイナリ内のコントロールプロパティを編集
- サイズ制限なし(独自機能)
- 埋め込まれたビットマップとアイコンを置き換え
- 再コンパイルなしで隠しプロパティを追加
- 再利用のために個別のリソースをエクスポート
バイナリ内の編集は、ライセンスに含まれる第 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 | |||
| 定義済み P-Code 命令 1,164 件、うち 1,158 件を VB6 に変換 | |||
| ランタイム呼び出し (MSVBVM60) を再構築 | |||
| Win32 API 宣言 15,680 件、定数 6,442 件、型 422 件 | |||
| 型推論(本体と条件式にも伝播) | |||
| 149 プロジェクト中 121 が手を加えずに再コンパイル可能 | |||
| 逆アセンブラ | |||
| プロシージャの識別(フォーム、モジュール、クラスなど) | |||
| マシンコード → アセンブリの逆アセンブル | |||
| アセンブリとVBの構文ハイライト | |||
| 逆アセンブル全体を対象とした検索エンジン | |||
| UI デザインの抽出 | |||
| プロジェクトファイル (.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 条)。
まずは無料でお試しください — Free 版でエンジンがバイナリから何を再構築できるか確認できます → · またはインストール不要でオンラインで試す → · ドキュメント
フランスで設計・開発
VBReFormer は、トゥールーズとサヴォワの間、フランスで設計・開発・保守されています。ヨーロッパ域外に依存しない、フランスおよび欧州のリバースエンジニアリング技術です。
トゥールーズ
オート=ガロンヌ県 · オクシタニー地域圏
サヴォワ
オーヴェルニュ=ローヌ=アルプ地域圏
適材適所のツール
.NET、C#、VB.NET ですか。dnSpy や ILSpy といった無料ツールが非常にうまく対応します。私たちの専門は Visual Basic 5 および 6 であり、これこそが本当に難しい問題であり、私たちが誰よりもうまく解決することを目指す唯一の領域です。
この分野に注力する理由 →パートナー
リバースエンジニアリングとサイバーセキュリティのフランス発エコシステム。
よくあるご質問
P-Code とネイティブコードの違いは何ですか。
VB6 は P-Code(仮想マシンが実行する疑似コード)またはネイティブコード(x86 機械語命令、既定の設定)にコンパイルされます。第 2 世代(VBReFormer 7)からは同じエンジンが両方を読みやすい Visual Basic に逆コンパイルします。定義済み P-Code 命令 1,164 件のうち 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% が復元され、欠けるのはファイルに存在しないこれらの要素です。
自分のバイナリで逆コンパイルがうまくいかない場合は?
そのためにこそ無償版があります。ご購入前に、お客様自身のファイルで、フォーム・リソース・プロジェクト構成など何を抽出できるかをご確認いただけます。まずお試しいただくことを常におすすめしています。ライセンスは即時提供されるデジタルコンテンツのため販売は確定となりますが、技術的な問題が生じた場合はサポートが解決に向けて対応いたします。
無料版はありますか。
はい、購入せずに試せます。無料のデスクトップ版はライセンス版と同じインストーラーで、インターフェース全体(フォーム、リソース、プロジェクト構造)を抽出し、逆コンパイルしたコードのプレビューを時間制限なしで表示します。11 言語で提供されるオンラインスタジオは、何もインストールせずにブラウザーで同じことを行います。逆アセンブル、P-Code、デザイナー、.vbp プロジェクト、リソースはすべて提供され、再構築されたソースコードはプレビューになります。ライセンスで完全なコードとプロジェクトのエクスポートが利用できます。
ライセンスの有効期間はどのくらいですか?
ご購入時に選択された期間(1 年、2 年または 3 年)です。メールサポートと、その期間中に公開されたすべての更新が追加費用なしで含まれます。期間満了後はアクセスが終了し、新しいライセンスをご契約いただけます。無償版は期間の制限なくご利用いただけます。
プログラムを逆コンパイルすることは合法ですか。
はい。ソフトウェアの権利を保有している場合(典型的には、失われた自社のソースコードを再構築するケース)や、相互運用性に関する法的枠組みの範囲内であれば合法です。解析対象のプログラムについて必要な権利を保有している必要があります。
VBReFormer は .NET、VB.NET、C# を逆コンパイルできますか?
いいえ。VBReFormer が扱うのは Visual Basic 5 と 6 の .exe、.dll、.ocx、.scr です。.NET アセンブリには .NET 用のデコンパイラーが必要で、ブログでいくつかを比較しています。