逆コンパイル
ツール > オプション (Tools > Options) を開いて逆コンパイル設定を構成します。対話的に設定を比較する場合は、キャッシュなし高速逆コンパイルを使用してください。オプションを変更した後は、ファイルを再度処理してください。

デバッグ命令を表示 (Show debug commands)
クラシック VB P-Code の場合、高水準リストから通常省略されるコンパイラおよびデバッガーの操作を含めます。再構築されたプログラムロジックだけでなく、基礎となる命令シーケンスを検証する際に有効にしてください。
If ... End Ifブロックを処理 (ネイティブコード) (Process If ... End If blocks (Native Code))
認識された Native Code 条件分岐を If...End If ブロックとして再構築します。元の分岐パターンを検証する必要がある場合、または構造が不正確に見えるプロシージャを調査する場合に無効にしてください。
'Else'ブロックを処理 (Process 'Else' blocks)
追加のヒューリスティクスを使用して、Else 分岐とネストされた条件および GoTo ジャンプを区別します。Native Code の場合、If ブロックの処理が必要です。通常の読み取りには有効のままにしてください。再構築された分岐が曖昧な場合は、無効にした状態と比較してください。
プロトタイプの分析 (Analyze prototypes)
プロシージャの引数および戻り値の予備ヒューリスティック解析を実行します。これは特に高速逆コンパイルで有用です:標準モジュール内のプライベート関数およびプロシージャには、明示的なシグネチャメタデータがない場合があります。予備解析は追加時間を要しますが、現在既知のスタック内容のみに基づいて呼び出しを扱うことを避けます。ヒューリスティックなシグネチャも推論であり、特にメタデータ、外部型、またはコードが不完全な場合です。
アドレスを追加 (Add Addresses)
再構築されたステートメントの隣に仮想アドレスを表示します。コードを逆アセンブル、ファイルバイト、および他のツールの発見事項と相関させるために有効のままにしてください。また、逆アセンブラにコピー (Copy to disassembler) で高水準ステートメントとその低水準対応物をマージする必要があるためです。逆アセンブラは常にこの設定に関係なくアドレスを独立して表示します。
Native Code 再構築の理解
Native Code エンジンは、サポートされている Select Case パターン、多次元配列アクセス、COM 呼び出し、および VB ランタイム操作を認識します。エラー処理は On Error Resume Next、On Error GoTo、および On Error GoTo 0 として再構築できます。コンパイラ最適化および欠落する型情報は依然として結果を制限します;高水準出力が不完全な場合は逆アセンブルを検証してください。
バージョン 26.2 は、Variant の型判定、多次元 SafeArray 読み取り/書き込み、および配列要素の VarPtr 再構築を拡張しました。出力は、分析エンジンが認識したランタイム構造を反映して、配列参照を SafeArray と特定する場合があります。ブランチ状態の分離および一時変数の解析も、複雑な If/Else コードの再構築を改善します。バージョン 26.5 はさらに Select Case および VB5/VB6 ランタイム関数処理を改善します。
COM および ActiveX 型情報
VB Decompiler はまず既知のインターフェースのための組み込み知識ベースを使用します。未知の外部 COM オブジェクトの場合、システムレジストリを通じてライブラリ、クラス、およびインターフェース識別子を解決し、対応する DLL/OCX 型ライブラリを解析できます。これは、事前バインディングおよびサポートされている実行時バインディング呼び出しのためのメソッドおよびプロパティシグネチャ(返されるインターフェース型を含む)を提供します。
必要な型ライブラリが欠落している場合、またはその登録を解決できない場合、一部の呼び出しは特定されない場合があります;例えば UnkVCall として。したがって、解析環境ごとの出力を比較する際には、依存する型ライブラリの有無を考慮してください。拡張された IID 知識ベースには、Office オートメーション、ADO/DAO、XML および HTTP、スクリプティング、シェル、メッセージング、およびディレクトリサービスインターフェースが含まれます;すべての可能な COM 呼び出しが解決できることを意味するものではありません。
一部の VB バイナリでは、UDT メタデータは限られたものしか残存しません。逆コンパイラは、構造のサイズや文字列フィールド数などの情報を復元できますが、完全な元のフィールドレイアウトを復元しない場合があります。部分的な宣言を完全なソースレベル定義として解釈しないでください。
.NET 再構築と最適化
サポートされている IL は C# 風の式および制御フローとして再構築されます。プロシージャアナライザとオプティマイザ (Procedure analyzer and optimizer) はメインウィンドウのコントロールで、サポートされているループ、条件、演算子、および一時変数のパターンを簡素化できます。サポートされていないまたは難読化されたフラグメントが残っている場合は IL およびメタデータを検証してください。この処理は AI ヘルパー とは独立しています。
