対応コンパイラとバージョン

Delphi 3~13で記述された、またはC++Builderで作成されたWin32/Win64向けVCLアプリケーションを解析します。

コンパイラの対応範囲

DE Decompilerは、Delphi 3~13で記述されたプログラムと、C++Builderで作成されたWin32/Win64向けVCLアプリケーションに対応します。両アーキテクチャでネイティブ解析、VCLフォームの処理、難読化を利用できます。

互換性の意味

異なるコンパイラの世代やRTTIタイプには、異なる認識知識が必要です。逆コンパイラは機械語命令と利用可能なメタデータからDelphi風のPascalコードを再構築します。コンパイラ固有の知識は型やVCLメソッドの特定に役立ちますが、利用できない名前、推定されたレイアウト、および未識別の呼び出しは、ファイル内に保持されている情報に依存します。

現在のビジュアルワークフローはVCLに対応しています。

コンパイララベルとデータベースの選択

検出されたコンパイラバージョンは、解析に使用されるシグネチャデータベースとは独立しています。アスタリスクは、置換または証明されていないデータベースの一致を示します。選択されたBINファイルを確認するには、コンパイララベルにカーソルを合わせてください。データベースの選択とコンパイラの識別をご覧ください。

アプリケーションの検査

既知のユニット、クラス、VCLフォームを検証します。イベントハンドラを追跡し、復元されたステートメントを逆アセンブリと比較して確認し、タスクに関連する宣言とエクスポートされたファイルを確認してください。

コンパイラの互換性とRTTI · 復元したコードの解釈 · 実際の出力例

C++Builderで作成されたアプリケーション

DE Decompilerは、C++Builderで作成されたWin32/Win64向けVCLアプリケーションに対応します。フォームの復元と表示、ユニット・クラス・関数の解析、イベントハンドラへの移動に加え、同じワークスペースでその他の解析・出力ツールも利用できます。

C++Builder固有のライブラリに対応するRTTI知識ベースは、まだ用意されていません。共通のVCLの認識範囲に含まれない関数や、識別できないオブジェクトのプロパティ・メソッドは、ライブラリ内の名前を付けずに表示される場合があります。このため、C++Builderのコードの復元品質は、Delphiで記述されたプログラムより明らかに低くなります。 この制約はコードの復元精度とライブラリ内の名前の識別に関するものです。フォーム表示や構造解析など、その他の機能はDelphiで記述されたプログラムと同じエディションの条件で利用できます。

C++BuilderのコードはDelphi風のPascalとして復元し、PAS/DFM形式で出力します。元のC++ソースには戻しません。他のネイティブコード復元と同様、IDEで利用する前に、推定された型、生成された名前、逆コンパイルの不正確な箇所を手作業で確認・修正してください。

C++BuilderとFree PascalをDelphiとは区別して識別します。互換シグネチャデータベースの使用時や保存済みプロジェクトの読み込み後も、入力のコンパイラ情報を保持します。長いコンパイラ名やバージョン範囲はメイン画面のラベル内に収まり、詳細はツールチップで確認できます。