製品
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。
導入実績
ほか、五大陸の官公庁、防衛研究機関、大学
- バイナリは一切実行しません
- 欧州にある当社サーバーで解析し、セッション終了時に消去
- 保存も共有も一切行いません
最も高性能なネイティブ・P-Code デコンパイラー
第 2 世代のデコンパイラーはパターンを照合しません。レジスタ、仮想メモリ、FPU スタックを含めてコードを解釈し、読みやすい Visual Basic に翻訳し直します。VB6 の 2 つのコンパイル方式であるネイティブコードと P-Code を同じように扱い、その結果は元のソースと照らして計測されています。
- P-Code の逆コンパイル(VB5・VB6)
- ネイティブ x86 コードの逆コンパイル(VB5・VB6)
- UPX で圧縮されたバイナリ:実行せずに展開
- パターン照合に代わる、マシンコードの抽象解釈
- 定義済み P-Code 命令 1,164 のうち 1,158 を VB6 に変換(エンジンのテーブルは 1,536 オペコード)
- ランタイム呼び出し (MSVBVM60.dll) を再構築
- Win32 API 宣言 15,680 件、定数 6,442 件、型 422 件
- 型推論、名前の復元、配列の境界、Select Case のジャンプテーブル
- ByRef と ByVal を推測ではなくコードで証明
- ユーザー定義型(Type … End Type)を再構築、フィールドと型を証明
- Currency、Variant、ParamArray、範囲付き配列
- VB6 の 4 つの最適化プロファイルを網羅し、個別に計測
- 続いて ASPack、MPRESS、PECompact 近日公開
90%
のソースコードを平均して復元。ローカル変数名と非公開シンボルはバイナリに保存されていないため、この数値には含まれません。
テストベンチの 164 プロジェクトすべてが、手直しなしで Visual Basic 6 IDE で再コンパイルできます。
9.35 MB の基準バイナリを元のソースと比較して測定
| 第 1 世代 | Gen2 (V7) | |
|---|---|---|
| エクスポート時に書き出されたプロシージャ | 1 799 | 1 976 |
| 元のソースでは空でないのに空になった本体 | 229 | 0 |
| 出力コードに残ったエラーマーカー | 1 129 | 0 |
| « As Unknow » として出力されたシグネチャ | 75 014 | 0 |
1 つのライセンスで両世代を利用できます。VBReFormer 7(Windows 10・11)と第 1 世代(Windows XP〜11)は同じアカウントからダウンロードできます。
カバレッジを関数ごとに見るSETUP1.EXE
誰でも検証可能:SETUP1.EXE
ソースが VB6 に同梱されている Microsoft のプログラム:誰でも比較できます。
SETUP1.EXE を開く(全体を逆コンパイル済み)136 → 227
エクスポートされたプロシージャ(第 1 世代 → V7)
22 / 24
無作為に選んだプロシージャをソースと照合:V7 がより忠実
デコンパイラーの周辺:解析とナビゲーション
復元したコードは、読むためのツールとともに提供されます。Standard には x86 と P-Code の逆アセンブラ、バイナリパッチ付きの 16 進ビュー、シンボル一覧が含まれます。Professional は、プロジェクト全体でコードを追うツールを追加します:呼び出しグラフとフローグラフ、相互参照、一括リネーム。
Standard
- VB5/VB6 x86 逆アセンブラ
- P-Code 逆アセンブラ
- 注釈付き 16 進ビューとバイナリパッチ
- シンボル一覧 — 読み取った名前と合成した名前の区別
Professional とサイトライセンス
- 呼び出しグラフ — 3 段階の粒度、呼び出し元/先フィルター
- 制御フローグラフ(到達不能ブロックを含む)
- 相互参照
- 全体リネーム — 他モジュールの呼び出し箇所も追随
UI デザインの抽出
VBReFormer は、元のプロジェクトファイルがなくても、コンパイル済みバイナリからすべての視覚的なデザイン要素を抽出します。
- VB プロジェクトファイル (.vbp) を抽出
- フォームとコントロール (.frm, .ctl, .pag) を抽出
- バイナリリソース .frx を抽出(.ctx と .pgx は第 1 世代)
- 外部のCOM、OLE、ActiveXコンポーネントをすべて識別
- TypeLib が読める場合、サードパーティ OCX に埋め込まれたものも含め、Object= と Reference= の行を書き出し
- 埋め込まれた画像とアイコンを抽出
コンパイル済みUIデザインエディタ
サイズ制限なくコンパイル済みのVB5/VB6のUIを編集できる、市場で唯一のツールです。コントロールのプロパティ変更、キャプションの修正、画像の置き換えを、すべてコンパイル済みバイナリ上で直接行えます。
- コンパイル済みバイナリ内のコントロールプロパティを編集
- サイズ制限なし(独自機能)
- 埋め込まれたビットマップとアイコンを置き換え
- 再コンパイルなしで隠しプロパティを追加
- 再利用のために個別のリソースをエクスポート
バイナリ内の編集は、ライセンスに含まれる第 1 世代が担います。第 2 世代はフォームの画面と全プロパティを読み取りますが、まだ書き戻しは行いません。
マルウェア解析のために
疑わしいバイナリも安全に調査できます。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% を平文で表示し、ブロックごと・プロシージャごとに少なくとも 1 行を、有料版と同一の内容で示します。Microsoft の SETUP1.EXE を含む 5 つのデモは、ライセンスなしで全体を表示します。
VBReFormer Online
パブリックベータVB5 または VB6 のプログラムをブラウザーにドロップするだけ。構造とコードのプレビューを無料で表示します。インストールは不要です。
- インストール不要:デスクトップ版が動かない環境を含め、どのシステムでも動作
- 11 言語のインターフェース
- バイナリは保存されません:解析後、セッションとともに消去されます
- Standard ライセンスに含まれ、デスクトップ版も利用可能
またはデモを開く(アップロード不要): SETUP1.EXE · DemoNat.exe · Demo.exe (P-code) · modCur3.exe
VBReFormer Desktop 無料版
第 2 世代エンジンの無償版です。逆コンパイラーは当社サーバー上で動作するため、インターネット接続が必要です。
Windows 10 → Windows 11
エディション
機能比較
解放される機能で分けた 3 つのエディション:Standard はソースコードを復元してエクスポート、Professional は解析ツールを追加、サイトライセンスは組織内の全ユーザーをカバーします。
| エディション | おすすめ
Standard ソースコードを取り戻す 79 € ユーザーあたり |
Professional Standard に解析ツールを追加 229 € ユーザーあたり |
サイトライセンス 組織内の全ユーザー向けの Professional 〜から 799 € |
|---|---|---|---|
| 逆コンパイラー(P-Code とネイティブコード) | |||
| P-Code の逆コンパイル(VB5・VB6) | |||
| ネイティブ x86 コードの逆コンパイル(VB5・VB6) | |||
| UPX で圧縮されたバイナリ:実行せずに展開 | |||
| 定義済み P-Code 命令 1,164 のうち 1,158 を VB6 に変換(エンジンのテーブルは 1,536 オペコード) | |||
| ランタイム呼び出し (MSVBVM60) を再構築 | |||
| Win32 API 宣言 15,680 件、定数 6,442 件、型 422 件 | |||
| 型推論(本体と条件式にも伝播) | |||
| 164 プロジェクト中 164 が VB6 で再コンパイル可能 | |||
| 逆アセンブラ | |||
| プロシージャの識別(フォーム、モジュール、クラスなど) | |||
| VB5/VB6 x86 逆アセンブラ | |||
| P-Code 逆アセンブラ | |||
| 注釈付き 16 進ビューとバイナリパッチ | |||
| シンボル一覧 — 読み取った名前と合成した名前の区別 | |||
| アセンブリとVBの構文ハイライト | |||
| 逆アセンブル全体を対象とした検索エンジン | |||
| UI デザインの抽出 | |||
| プロジェクトファイル (.vbp) を抽出 | |||
| フォーム (.frm, .ctl, .pag) を抽出 | |||
| バイナリリソース .frx(.ctx と .pgx は第 1 世代) | |||
| COM / OLE / ActiveXコンポーネントの識別 | |||
| 埋め込み画像とアイコンの抽出 | |||
| デザインエディタ | |||
| コンパイル済みバイナリ内のコントロールプロパティを編集 | |||
| サイズ制限なし(独自機能) | |||
| 埋め込みリソース(画像、アイコン)の置き換え | |||
| 再コンパイルなしで隠しプロパティを追加 | |||
| 解析ツール | |||
| 呼び出しグラフ — 3 段階の粒度、呼び出し元/先フィルター | — | ||
| 制御フローグラフ(到達不能ブロックを含む) | — | ||
| 相互参照 | — | ||
| 全体リネーム — 他モジュールの呼び出し箇所も追随 | — | ||
| 全般 | |||
| 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 に逆コンパイルします。定義済み P-Code 命令 1,164 件のうち 1,158 件が変換され、その測定結果はカバレッジページで公開しています。前世代はネイティブコードのみを再構築していました。
エンジンはパターン照合ですか、それともコードを解釈しますか?
解釈します。第 1 世代はコンパイル済みコードのパターンを照合し、認識できたものだけを出力していました。第 2 世代は機械語も P-Code も解釈して式と型を再構築します。再構築できないものは捨てたり推測したりせず、エクスポートノートに名前と理由を記します。
VBReFormer はあらゆる VB6 プログラムを逆コンパイルできますか。
VBReFormer は Visual Basic 5 および 6 でコンパイルされたすべての実行ファイルを、P-Code でもネイティブコードでも解析します。フォーム・コントロール・リソースといったインターフェイスは、いずれの場合も完全に抽出されます。コードの再構築はバイナリに残された情報しだいです。無償版がご自身のファイルで、購入前にその結果をお見せします。
逆コンパイルしたコードは Visual Basic 6 IDE で再コンパイルできますか?
はい。実際には、テストベンチの 164 プロジェクトすべてが手直しなしで再コンパイルできます。エクスポートは IDE が要求するヘッダー(VERSION、Attribute VB_Name)を書き込みます。これがないと VB6 はファイルを拒否します。確定できなかった値は決して捏造せず、VB6 が受け付け、検索で見つけられる VBRF_ValeurInconnue() の呼び出しになります。バイナリにないものはエクスポートノートに名前と理由を記載します。
実行ファイルから何が復元でき、何が永久に失われますか?
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 用のデコンパイラーが必要で、ブログでいくつかを比較しています。
フランスで設計・開発
VBReFormer は、トゥールーズとサヴォワの間、フランスで開発元自身が設計・開発・保守しています。リバースエンジニアリングの専門チームに、直接連絡が取れます。
トゥールーズ
オート=ガロンヌ県 · オクシタニー地域圏
サヴォワ
オーヴェルニュ=ローヌ=アルプ地域圏
適材適所のツール
.NET、C#、VB.NET ですか。dnSpy や ILSpy といった無料ツールが非常にうまく対応します。私たちの専門は Visual Basic 5 および 6 であり、これこそが本当に難しい問題であり、私たちが誰よりもうまく解決することを目指す唯一の領域です。
この分野に注力する理由 →パートナー
リバースエンジニアリングとサイバーセキュリティのフランス発エコシステム。