復元されたデータの保存
調査に必要な出力を保存しつつ、元のバイナリおよび解析コンテキストを保持します。
プロジェクトおよびモジュールの出力
ファイル > 逆コンパイルされたプロジェクトを保存 (File > Save decompiled project)は、復元されたユニットやフォームなど、復元された素材をDelphiプロジェクトとしてエクスポートします。出力フォルダを選択し、保存されたファイルを確認してください:
.pas:各ユニットごとに1つのUTF-8ソースファイルを作成し、復元されたクラスからの宣言とメソッドを結合します。.dfm:個別のフォーム定義(複数のフォームが1つのユニットに属する場合でも別々のファイルとして保存)。非ASCII文字リテラルはDelphiの#文字コードを使用し、バイナリプロパティデータは保持されます。Project.dpr:現在のエクスポート中に正常に書き込まれたユニットとフォームリソースに基づいたプロジェクト参照および復元された起動情報。
プライマリフォームは{$R *.dfm}を通じてリンクされ、追加のフォームは明示的なリソースディレクティブを使用します。フォームのみの解析では、不足しているPascalクラスや起動コードを推測することなく、確認可能なDFMファイルのエクスポートを行います。不足または競合するリソースについては、エクスポート診断を確認してください。
1つの結合された.pasリストの方が確認や比較に便利な場合はファイル > 1つのモジュールにすべて保存 (File > Save all in one module)を使用します。結合されたリストとマルチファイルのDelphiプロジェクトは異なる目的のために使用されるため、調査に必要な出力を選択してください。
コメント付きプロシージャ本体
既定では、メソッドのシグネチャを残し、復元したローカル宣言と文をPascalのコメント内に出力します。プロシージャ本体は引き続き表示、検索、解析の対象になります。この形式で出力されても、ユニットをそのままコンパイルできるわけではありません。
進捗状況、キャンセルおよび失敗
プロジェクトおよび結合コードリストのエクスポート処理は、必要に応じてプロシージャを処理します。デコードできなかったメソッドに関する警告を確認してください。保存されたキャッシュコードは元の実行ファイルなしでエクスポートできますが、デコードされていないプロシージャには対応するバイナリが必要です。
キャンセル (Cancel)を使用してプロシージャ間で停止します。既存のPAS、DFM、DPRおよび結合リストファイルは、完全な書き込み後にのみ置き換えられます。キャンセルされたマルチファイルプロジェクトのエクスポートでは、キャンセル前に完了したファイルが保持されるため、出力フォルダには完了したファイルと古いファイルの混合が含まれる可能性があります。以前のエクスポートを保持する場合は、別の出力フォルダを使用してください。
IDE 用の素材準備
IDE で復元されたコードを開く前に、逆コンパイルの不正確さおよび互換性問題を手動で解決してください。生成された識別子、推測された型およびシグネチャ、未識別の呼び出し、欠落した依存関係を調整してください。コードリストは解析のためにプログラムロジックを再構築しますが、コンパイル可能なソースプロジェクトを再現するものではありません。ビルドには、エクスポートされたコードの手動解析と修正が必要です。
調査記録
セキュリティレビューでは、プロシージャのアドレスおよびバイナリ識別子をエクスポートされたフラグメントとともに保持してください。逆コンパイルされたステートメント、機械語命令、モデル生成の提案、アナリストの結論を、結果として得られるレポートで区別可能に保ってください。