VB6 アプリのソースコードを失った。復元できるものはこれです。
ディスクの故障、開発者の退職、古すぎるバックアップ。残っているのはコンパイル済みのプログラムだけ。VB6 デコンパイラーは想像以上に多くを、しかしすべてではないものを取り戻します。何をインストールする前にも、このページがその境界を示します。
こんな状況ではありませんか?
ディスクが壊れた
開発マシンは動かなくなったが、EXE はまだユーザーのもとで動いている。
開発者が辞めた
プロジェクトを持ち去った、あるいはどこに保管したか誰も知らない。
委託先がなくなった
アプリケーションを作った会社はもう存在せず、ソースは一度も納品されなかった。
バックアップが古すぎる
見つかったソースは、本番で動いているバージョンと一致しない。
必要なもの
必要なのはコンパイル済みファイルだけです。Visual Basic 5 または 6 で作られた .exe、.dll、.ocx、.scr。それ以外は不要です。P-Code とネイティブコードのどちらでコンパイルされたかを知る必要もありません。VBReFormer が判別し、両方を処理します。
- P-Code の逆コンパイル(VB5・VB6)
- ネイティブ x86 コードの逆コンパイル(VB5・VB6)
- UPX で圧縮されたバイナリ:実行せずに展開
- 続いて ASPack、MPRESS、PECompact 近日公開
取り戻せるもの
フォームとコントロール(すべてのプロパティ、画像を含む):どの場合も完全に。
リソース、文字列、ライブラリやサードパーティ製コントロールへの参照、プロジェクト構造:IDE で開ける .vbp。
プロシージャのコード:条件分岐、ループ、呼び出し、代入、コントロールへのアクセスを、P-Code でもネイティブでも読める Visual Basic に再構築。それが実際どの程度かは、カバレッジのページでプログラムごとに計測しています。
80%
のプロジェクトが手直しなしで VB6 で再コンパイル可能
1,158 / 1,164
定義済み P-Code 命令を Visual Basic に変換
100%
フォームとそのプロパティを、どの場合も復元
どこのツールでも決して戻らないもの:ローカル変数名とコメント。コンパイラーが保持していないからです。復元したコードは読めて再コンパイルできますが、原文と一字一句同じではありません。
SETUP1.EXE
誰でも検証可能:SETUP1.EXE
ソースが VB6 に同梱されている Microsoft のプログラム:誰でも比較できます。
136 → 227
エクスポートされたプロシージャ(第 1 世代 → V7)
22 / 24
無作為に選んだプロシージャをソースと照合:V7 がより忠実
プロジェクトを取り戻したら
普通のプロジェクトに戻ります。元の IDE で開き、読み、保守できます。
- バグを直したり業務ルールを変えたりして、再コンパイルする
- Standard に含まれる x86 と P-Code の逆アセンブラでマシンコードを読む
- Professional のコールグラフと相互参照で、プログラムを端から端まで追う
- 全体を知る人がいなくなったアプリケーションを文書化する
進め方(まずは無料で)
- 1
無料版でバイナリを開くか、インストール不要のオンラインスタジオに投入します。プロジェクト構造、完全なフォーム、デコンパイル済みコードのプレビューが見えます。
- 2
実物で判断してください。プレビューはサンプルではなく、あなたのバイナリからエンジンが再構築したものです。ライセンスの価値があると判断したら購入を。そうでなければ、何も支払っていません。
- 3
ライセンスがあれば、プロジェクト全体をエクスポートして Visual Basic 6 で開き直せます。約 80% のプロジェクトは手直しなしで再コンパイルできます。バイナリから確定できない値は VBRF_ValeurInconnue() の呼び出しになり、検索で見つけられます。
費用
試すのは無料です。ご自身のバイナリで見た結果に納得した場合にだけお支払いください。
無料版
完全なフォーム、プロジェクト構造、コードのプレビュー
0 €
Standard
ソースコードを取り戻す
79 € ユーザーあたり
Professional
Standard に解析ツールを追加
229 € ユーザーあたり
よくあるご質問
P-Code とネイティブコードの違いは何ですか。
VB6 は P-Code(仮想マシンが実行する疑似コード)またはネイティブコード(x86 機械語命令、既定の設定)にコンパイルされます。第 2 世代(VBReFormer 7)からは同じエンジンが両方を読みやすい Visual Basic に逆コンパイルします。定義済み P-Code 命令 1,164 件のうち 1,158 件が変換され、その測定結果はカバレッジページで公開しています。前世代はネイティブコードのみを再構築していました。
実行ファイルから何が復元でき、何が永久に失われますか?
Visual Basic が実行時に必要とするものはファイル内にあり、復元できます。フォーム、クラス、モジュール、コントロールの名前、イベントハンドラー、クラスのパブリックメンバー、インターフェースのプロパティ、ランタイム呼び出し、API 宣言などです。コンパイラが捨てたものは、どのツールでも復元できません。コメント、ローカル変数と引数の名前、値に置き換えられた名前付き定数、.bas モジュールのプロシージャ名がそれにあたります。 平均してソースコードの 90% が復元され、欠けるのはファイルに存在しないこれらの要素です。
逆コンパイルしたコードは Visual Basic 6 IDE で再コンパイルできますか?
はい。実際には、プロジェクトの約 80% が手直しなしで再コンパイルできます。エクスポートは IDE が要求するヘッダー(VERSION、Attribute VB_Name)を書き込みます。これがないと VB6 はファイルを拒否します。確定できなかった値は決して捏造せず、VB6 が受け付け、検索で見つけられる VBRF_ValeurInconnue() の呼び出しになります。バイナリにないものはエクスポートノートに名前と理由を記載します。
自分のバイナリで逆コンパイルがうまくいかない場合は?
そのためにこそ無償版があります。ご購入前に、お客様自身のファイルで、フォーム・リソース・プロジェクト構成など何を抽出できるかをご確認いただけます。まずお試しいただくことを常におすすめしています。ライセンスは即時提供されるデジタルコンテンツのため販売は確定となりますが、技術的な問題が生じた場合はサポートが解決に向けて対応いたします。
ファイルは保存されますか?
バイナリは保存されません:解析後、セッションとともに消去されます
プログラムを逆コンパイルすることは合法ですか。
はい。ソフトウェアの権利を保有している場合(典型的には、失われた自社のソースコードを再構築するケース)や、相互運用性に関する法的枠組みの範囲内であれば合法です。解析対象のプログラムについて必要な権利を保有している必要があります。
VBReFormer は .NET、VB.NET、C# を逆コンパイルできますか?
いいえ。VBReFormer が扱うのは Visual Basic 5 と 6 の .exe、.dll、.ocx、.scr です。.NET アセンブリには .NET 用のデコンパイラーが必要で、ブログでいくつかを比較しています。
代わりに行うこともできます
お客様のバイナリからプロジェクトを復元し、IDE で開ける状態にして、見つかった内容の報告書とともに納品します。お見積もりの前にバイナリを無料で評価します。
無料評価を依頼する
