私は現在、静的にコンパイルされているように見えるファイルをリバース エンジニアリングしていますが、IDA Pro は署名を検出していません! IDA によって認識されるべき関数をステップ実行するのに多くの時間を費やしているように感じますが、そうではありません。
とにかく、私は間違っているかもしれません...誰かアイデアはありますか?誰もこれに遭遇したことがありますか?
私は現在、静的にコンパイルされているように見えるファイルをリバース エンジニアリングしていますが、IDA Pro は署名を検出していません! IDA によって認識されるべき関数をステップ実行するのに多くの時間を費やしているように感じますが、そうではありません。
とにかく、私は間違っているかもしれません...誰かアイデアはありますか?誰もこれに遭遇したことがありますか?
IDA は優れた逆アセンブラーですが、完全ではありません。一部のコード、特にアンライン/最適化されたコードは、自動化された方法で一貫した関数に分解することはできません。これは、コンパイル中に発生することです。一貫したコードは、人間ではなくマシンが理解できる命令に変換されます。IDA は推測や見積もりを行うことはできますが、すべてを行うことはできません。リバース エンジニアリングでは、ギャップを埋めるために、常にある程度の手作業による解釈が必要になります。
コンパイラがIDAによって認識されない場合(たとえば、スタートアップコードに変更があった場合)、署名は自動的に適用されません。また、IDAがこのコンパイラをまったく知らない場合、署名はありません。それで:
署名はあるがコンパイラが自動的に認識されない場合は、手動で適用してください。Delphi / C ++ Builderの場合は、b32vclまたはbdsを試してください。
このコンパイラ/ライブラリの署名がない場合は、FLAIRツールを使用して自分で作成できます(元のライブラリにアクセスできる場合)。