文字列参照
プログラムのコード内では、頻繁に文字列データ(レジストリキー、ファイル名、エラーメッセージなど)に出会うことがあります。逆コンパイルされたアプリケーションで使用されるプロシージャや関数の文字列リストを表示することは非常に有用です。それがまさに私たちの文字列の参照 (String references) 機能の目的であり、ツール (Tools) メニューを通じてアクセスできます。これを使用するには、ツール -> 文字列の参照 に移動するだけで十分です。プログラムに文字列データが含まれている場合、それらは以下のように表示されます:
リスト内の目的の行を見つけ、ダブルクリックします。その行を含むコードセグメントが特定され、対応するプロシージャがコードウィンドウで開かれます。行を再度ダブルクリックすると、プログラムコード内でのこの行の検索が継続されます。「OK」をクリックすると、ハイライト表示された行がコード内で見つかり、行選択ダイアログが閉じます。キャンセルは単にダイアログボックスを閉じます。
文字列の参照 を表示する機能は、ソフトウェアのライセンス版でのみ利用可能であり、Lite 版ではアクセスできません。
重要な注意点:バージョン 1.x でのアクティブモジュールのみの表示と異なり、現在はプログラム全体の文字列を表示します。この変更は、多数のフォームとモジュールを持つプログラムの分析を容易にするために導入されました。
VB Decompiler は文字列の編集もサポートしています。変更したい文字列を右クリックし、出現するコンテキストメニューから文字列を編集 (Edit string) を選択して文字列編集ダイアログを呼び出します。新しい文字列を入力するためのダイアログボックスが表示されます。文字列を変更した後、Ok をクリックすると、文字列は編集されたファイルに直接修正されます。この操作ではバックアップが作成されないため、かつこの操作を元に戻せないため、編集前に解析対象ファイルのバックアップを作成することをお勧めします。
重要な注意点:文字列を編集する際、新しい文字列の長さが古い文字列の長さを超えないようにしてください。これは、より長い文字列を挿入するためのスペースが予約されていないバイナリアプリケーションファイルの形式に関連しています。
HEX エディタでも文字列を表示し、部分的に編集することもできます。これを行うには、文字列を右クリックし、出現するメニューからバイナリエディタ (HEX Editor)を選択します。HEX エディタには、変更の元に戻すとやり直す機能があり、アプリケーションの文字列データを修正する際の実験を簡素化します。
文字列リストを持つウィンドウには、検索 (Search) と呼ばれるテキストフィールドと次を検索 (Find next) ボタンもあります。この機能は、特に手動での視覚的な検索が非常に困難な大規模なプロジェクトでリスト内の文字列を検索する際に有用です。
高速逆コンパイルと大規模な文字列リスト
文字列参照は、事前の逆アセンブルを通じて収集でき、高速逆コンパイル (Fast decompilation) モードを含むことができます。これは、完全に逆コンパイルされたテキストを検索することとは異なります。バージョン 26.2 は、32,000 参照を超えてダイアログを拡張し、大規模なリストのメモリ処理を改善します。
.NET アセンブリの場合、#US ヒープからのユーザー文字列は、そのファイル場所とともに検査できます。リストは静的解析に利用可能な文字列を表します;暗号化または動的に生成された文字列は別途調査を必要とする場合があります。
