4

実行可能ファイル形式を作成するために一般的に使用されるCOFFファイル形式について読んでいます(いくつかのバリアントもあります)。

読んでいるうちに、フォーマットの再配置セクションに出くわしました。この再配置セクションを使用して実行可能ファイルを作成するにはどうすればよいですか。

私に役立ついくつかのリンクを教えていただければ、非常に役に立ちます。

4

3 に答える 3

7

実際、COFFには2種類の移転情報があります。

  1. COFF移転記録
  2. 実行可能イメージの再配置セクション。

それらは似ていますが、目的が異なります。実行可能ファイルの再配置情報は、実行可能ファイルが優先アドレスとは異なるアドレスにロードされた場合に、ロード時に修正する必要があるものを識別します。

COFF再配置レコードは、オブジェクトファイルのセクションが実行可能イメージのオフセットに割り当てられたときに、リンク時に修正する必要があるものを識別します。

于 2010-06-06T01:48:56.653 に答える
4

再配置は、プロセス内の独自のメモリ空間に実行可能コードを配置するために使用されます。たとえば、両方とも同じベース アドレス (つまり、メモリ内の同じ場所) を要求する 2 つの dll をロードしようとすると、dll の 1 つを別のアドレスに再配置する必要があります。 NTCoreは、Portable Executable (PE) ファイル (現在は COFF と呼ばれています) を探索するのに役立つサイトです。 移転をかなりよく説明している別のサイトがあります

于 2008-09-18T14:58:46.023 に答える
2

再配置の意図しない追加の使用は、追加のアンパック コードなしで実行時にバイナリを (非) 難読化することです。この論文を参照してください。

于 2009-06-15T19:12:13.503 に答える