VBReFormer Online マニュアル
VBReFormer Online のユーザーマニュアル:ブラウザーに VB6 実行ファイルをドロップし、再構築されたコードを探索し、IDE で再読み込みできるプロジェクトをダウンロードする。
更新日:2026/09/2011 章
ブラウザーの中のスタジオです。Visual Basic 5 または 6 の実行ファイルをドロップし、再構築されたコードを探索して、VB6 IDE で再び開けるアーカイブを持ち帰ります。インストール不要で、どのシステムでも動作します。macOS、Linux、そしてデスクトップアプリケーションには古すぎる Windows でも使えます。
1. スタジオを開く
始めるにあたって、インストールも設定もアカウントの作成も不要です。最近のブラウザーでスタジオのアドレスを開けば、それで完了です。
- どのシステムでも — スタジオはブラウザーにしか依存しません。Mac、Linux マシン、Windows 10 より前の Windows から VBReFormer を使う唯一の方法です。
- 11 言語 — Web スタジオは 11 言語で提供され、デスクトップアプリケーションの約 4 倍です。セレクターはヘッダーにあります。
- ライトテーマまたはダークテーマ — スタジオはシステムの設定に従い、固定することもできます(ライト / ダーク)。
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. バイナリをドロップする
- 宣言にチェックを入れます。 スタジオは、お客様がそのプログラムの所有者であるか、コードを解析する権利を持っていることの宣言を求めます。これは利用条件であり、形式的なものではありません。
- ファイルをドロップします。 所定の領域にドラッグするか、ファイルを選択します。受け付ける形式:
.exe、.dll、.ocx。最大サイズ:64 MB。この制限は、アップロード失敗後に判明するのではなく、画面に表示されています。 - 解析を進行させます。 スタジオは各段階を名前とカウンター付きで表示します。ファイルを受信中 → バイナリを解析中 → 逆コンパイル中 → シンボルを一覧中 → 呼び出しグラフ → 制御フロー。
所要時間はバイナリの大きさと性質によります。目安として、9.35 MB の実行ファイルは、開いてからプロジェクトが書き出されるまで 12 秒ほどです。
解析が終わると、スタジオは見つけたものの性質も伝えます。ネイティブコード、P-code、または不明です。
3. ファイルはどうなるか
ファイルは解析され、その後セッションとともに消去されます。何も保持されません。
これはドロップページに書かれていることであり、実際の動作でもあります。バイナリは作業セッションの間だけ処理され、セッションとともに消えます。アーカイブされず、索引化されず、再利用されません。
これが意味するもう一つのこと。 作業はセッションを超えて残りません。タブを閉じたりセッションが期限切れになったりした場合は、バイナリを再度ドロップする必要があります。離れる前にアーカイブをダウンロードしてください。サービスの再起動も進行中のセッションを切断します。お使いのマシンにある元のファイルに危険はありませんが、進行中の探索は失われます。
バイナリの機密性が契約上の問題であれば、Desktop エディションはファイルの読み取りに関わるものすべて(形式、バイト、逆アセンブル、リソース)をローカルで処理し、再構築に関わるものだけをサービスに送ることを知っておいてください。
4. バイナリへの 4 つの入り口
左側のパネルには 4 つの入り口があり、それぞれ異なる質問に答えます。
| タブ | 答える質問 |
|---|---|
| プロジェクト | 「このプログラムはどう構成されているか」 — VB6 が見ていたとおりの、フォーム、クラス、モジュール、およびそれらのプロシージャのツリー。 |
| シンボル | 「これはどこで定義されているか」 — 各シンボルの種類とコンテナを含む完全な一覧。読み取った名前と合成した名前を区別するため、何を信頼できるかが最初から分かります。 |
| 検索 | 「このテキストはどこに現れるか」 — 再構築されたコードとデザイナーセクションの両方で。 |
| リソース | 「コード以外に何があるか」 — アイコン、カーソル、ビットマップ、文字列テーブル、バージョン情報。種類、サイズ、内容付き。ライセンスなしで提供されます。リソースは読み取るものであり、再構築するものではないからです。 |
ツリーの各メンバーには、バイナリが宣言しているとおりの可視性が付きます。(Public)、(Private)、(Friend) です。可視性を読み取れなかったメンバーには何も付きません。分からないことは書かないからです。
名前の変更
Web スタジオではシンボルの名前を変更でき、変更はグローバルです。他のモジュール内の呼び出し箇所も追従します。これはバイナリに取り組む上での中心的な操作です。逆コンパイラは論理を返し、お客様は名前を返します。
5. ビュー
7 つのビューがあり、スタジオ自身が各ビューの下に、何を表示するか、ライセンスが必要かを示します。
| ビュー | 表示内容 | ライセンス |
|---|---|---|
| ソース | 再構築された VB6 コード | ライセンスなしでプレビュー |
| IR | 制御フローを組み立てる前に逆コンパイラが見ているもの | ライセンスなしでプレビュー |
| アセンブリ | x86 機械語、シンボル解決済み | 全体を提供 |
| P-code | VB6 仮想マシンのオペコード | 全体を提供 |
| デザイナ | フォームのデザイナーセクション | 全体を提供 |
| プロジェクト | 再構築された .vbp |
全体を提供 |
| 構造 | 読み取られたとおりの形式の構造 | 全体を提供 |
境界線。 ファイルから読み取れるものは無料で、再構築するものが有料です。逆アセンブル、構造、デザイナー、
.vbpは実行ファイル内に存在するテーブルから取り出されます。一方、VB6 ソースはどこにも存在せず、再構築しなければなりません。その作業こそが製品です。
コードの下には、現在のプロシージャについて逆コンパイラが報告していること、つまり診断(できなかったこととその理由)も表示されます。結果に驚いたときに真っ先に見るべき場所です。
6. コンパイルが残すもの、捨てるもの
この章では、フォームが非常に読みやすく戻ってくる一方で、.bas モジュールが技術的な名前で戻ってくる理由を説明します。規則は単純です。
Visual Basic が実行時に必要とするものはファイルに書き込まれており、VBReFormer はそれを見つけ出します。コンパイル後に不要になったものは捨てられており、誰にも取り戻せません。
残るもの: フォーム、クラス、モジュールの名前 · コントロールの名前 · イベントハンドラー · クラスのパブリックメンバー · インターフェースプロパティ · VB ランタイムの呼び出し(635 関数) · Win32 API(15,680 シグネチャ) · コードの構造 · 文字列。
ファイルにないもの: コメント · ローカル変数の名前 · パラメーターの名前 · 値に置き換えられた名前付き定数 · .bas モジュールのプロシージャ名 · 元のインデント。
検証できる例
以下の抜粋は、Visual Basic 6 に付属するインストールウィザード SETUP1.EXE からのものです。Microsoft はそのソースコードを配布しているため、VB6 を持っている人なら誰でもこの比較を再現できます。
元のソース、COMMON.BAS:
Sub AddDirSep(strPathName As String)
If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
strPathName = RTrim$(strPathName) & gstrSEP_DIR
End If
End Sub
VBReFormer による出力:
Public Sub proc_42C506(ByRef arg_8 As String)
If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
arg_8 = (RTrim$(arg_8) & "\")
End If
End Sub
論理は一行ずつ同一です。 Right、Trim、Len、RTrim$ には名前が付き、ByRef 渡しは推論されています。一方、プロシージャ名とパラメーター名は失われ、定数はその値として現れます。それらを置き換えたのはコンパイラであって、VBReFormer ではありません。
マーカー
VBReFormer は決して推測しません。確定できない値は、でっち上げられるのではなくマークされます。
| マーカー | 意味 | 対処 |
|---|---|---|
proc_42C506 |
アドレスで指定されたプロシージャ | 名前を変更する — 名前は伝播します |
var_18、arg_8 |
ローカル変数またはパラメーター | 用途を読み取ってから名前を変更する |
? |
確定できなかった値 | 同じ箇所をアセンブリビューで確認する |
?を含むファイルは VB6 IDE に拒否されます。マーカーはお客様が判断するためにあるのであって、そのまま再コンパイルするためのものではありません。もっともらしいが誤った値は、逆コンパイラが生み出しうる最悪の結果です。
7. グラフ
2 つのグラフがあり、語る物語は異なります。
- 呼び出し — 何が何を呼ぶか:プログラムのアーキテクチャ。フィルターは呼び出し元、呼び出し先、両方で、孤立したノードを隠すオプションがあります。
- フロー — 実行がどこを通るか:ブロック、エントリ、ループヘッダー、ループの戻り、そして到達不能とマークされたブロック。
ブロックを読む 5 つの方法
グラフのブロックを選択し、そこに何を見たいかを選びます。形、IR、VB6、アセンブリ、P-code。同じプログラム部分を 5 つの読み取りレベルで見ることができます。
表示の誠実さ。 スタジオは、リストの行に対応づけられたブロックの数と、アドレスが証明されていないブロックの数を示します。後者の命令は直前の区間に落ちます。これにより、分割のどの部分が確実かが分かります。
グラフにはライセンスが必要です。何が何を呼び、実行がどこを通るかは、プログラムのアーキテクチャだからです。逆アセンブルと構造はライセンスなしでも開いたままです。
8. プレビューとライセンス
ライセンスがなくても、ソースビューは拒否されません。一部が隠された状態で表示されます。何かを支払う前に、ご自身のバイナリで、構造、復元された名前、再構築の実際の品質を確認できます。
これは意図的な選択です。何も見えない訪問者は判断できません。そしてサブスクリプションが期限切れになっても、閉ざされた扉ではなく、何が取り戻せるかが見えます。
同時に 1 台
VBReFormer のライセンスは同時に 1 台で使え、ブラウザーも 1 台として数えられます。ライセンスが別の場所で使われている場合、スタジオはアカウントからここへ移すか、シートを追加するかを提案します。これは穏やかな拒否です。お客様は支払い済みで、何も不足していません。
9. ソースをダウンロードする
配信パネルは、.vbp とそのファイル(.bas、.cls、.frm)を含む .zip アーカイブを生成します。ファイルは IDE が期待するとおり ANSI で書き込まれます。パネルにはダウンロード前にファイル数とサイズが表示されます。
プロジェクトを開く前にノートを読む
スタジオは**「復元できなかったもの」を、各項目の理由とともに表示します。外部参照、コンパイルオプション、起動モードといった一部の情報はバイナリのどの構造にも存在しません**。消されたのではなく、最初からそこにないのです。したがって、でっち上げられず、報告されます。
IDE で参照が不足していれば、プロジェクト ▸ 参照設定 から追加してください。? マーカーがあれば手作業で処理します。
その後パネルは別のバイナリを解析することを提案します。セッションはゼロから始まり、前のファイルは消去されます。
10. Online か Desktop か
2 つのエディションは同じエンジンを共有し、同じコードを生成します。ただし用途は異なります。
| Online | Desktop | |
|---|---|---|
| インストール | 不要 | MSI、Windows 10 以降 |
| システム | すべて | Windows 10 および 11 |
| インターフェース言語 | 11 | 3 |
| ツリー、シンボル、検索、名前変更 | ✔ | ✔ |
| 7 つのビュー | ✔ | ✔ |
| 呼び出しグラフとフローグラフ | ✔ | ✔ |
| プロジェクトのエクスポート | ✔(zip) | ✔(フォルダー) |
| 注釈付き 16 進ビュー | ✘ | ✔ |
| リソース:一覧と内容 | ✔ | ✔ |
| リソース:ファイルへの抽出 | ✘ | ✔ |
| 描画されたデザイナー、画像エクスポート | ✘ (セクションはテキストのみ) | ✔ |
| バイナリパッチ | ✘ | ✔ |
| 相互参照 | ✘ | ✔ |
| Object Browser、API Browser | ✘ | ✔ |
| ブックマーク、描画オプション | ✘ | ✔ |
| 作業がセッションを超えて残る | ✘ | ✔ |
| 課金 | クレジット | サブスクリプション |
まとめ — Online は、バイナリを開き、何をしているかを理解し、ソースを持ち帰るためのものです。Desktop は、バイナリに長く取り組むためのものです。バイト、リソース、相互参照、パッチ、そしてタブを閉じても消えない作業。
11. よくある質問
バイナリは保持されますか? いいえ。解析後、セッションとともに消去されます。第 3 章を参照してください。
ファイルが 64 MB を超えています。 これはドロップ前に案内されるスタジオの制限です。より大きなバイナリの場合、Desktop エディションにはこのアップロード制限がありません。
バイナリのリソースはどこにありますか? 左側のリソースタブです。ライセンスは不要です。各エントリの種類とサイズ、開いたときの内容が表示されます。画像は描画され、テキストは表示され、それ以外は隠されずにバイトとして示されます。一方、ファイルへの抽出は 16 進ビューと同様、Desktop エディション固有です。
なぜコードがプロシージャの途中で止まるのですか? それがプレビューです。ライセンスなしの無料版では、構造、名前、完全な逆アセンブルは表示されますが、再構築された本体にはライセンスが必要です。
タブを閉じたらすべて失われました。 作業はセッションを超えて残りません。離れる前にアーカイブをダウンロードしてください。バイナリ自体はお使いのマシンに残っています。
エクスポートしたコードはそのまま再コンパイルできますか? 多くの場合可能です。149 プロジェクトのテストベンチでは 121 が手を加えずに再コンパイルできました。残りは参照の追加か、いくつかのマーカーの処理が必要です。
実行ファイルが圧縮(パッカー)されています。 事前に展開する必要があります。そうしないと VB6 の構造がファイル内に見えません。
合法ですか? お客様の法域と、バイナリに対する権利によります。これがドロップ時にチェックする宣言の意味です。想定されている用途は、ご自身のコード、または権利や許諾をお持ちのコードの復元です。
購入せずに試す