Dans le format de fichier COFF, quelle est la signification de la section d'informations de relocalisation?

StackOverflow https://stackoverflow.com/questions/93261

  •  01-07-2019
  •  | 
  •  

Question

Je suis en train de lire sur les formats de fichier COFF, qui sont couramment utilisés pour créer un format de fichier exécutable (il existe également certaines variantes).

En lisant, je suis tombé sur la section de relocalisation du format. Comment cette section de relocalisation est-elle utilisée pour créer un fichier exécutable.

Il serait très utile que vous me indiquiez des liens qui pourraient m'aider.

Était-ce utile?

La solution

La relocalisation est utilisée pour placer le code exécutable dans son propre espace mémoire dans un processus. Par exemple, si vous essayez de charger deux dll demandant la même adresse de base (le même emplacement en mémoire), l'une des dll devra être déplacée vers une autre adresse. NTCore est un site utile pour explorer les fichiers PE (Portable Executable), c'est ainsi que COFF s'appelle désormais. Ici est un autre site qui explique assez bien la délocalisation.

Autres conseils

En fait, avec COFF, il existe 2 types d'informations sur la réinstallation:

  1. Enregistrements de relocalisation COFF
  2. La section de relocalisation dans une image exécutable.

Ils ont des buts similaires, mais différents. Les informations de repositionnement dans un exécutable identifient les éléments à réparer, au moment du chargement, si l’image exécutable est chargée à une adresse différente de celle de son adresse préférée.

Les enregistrements de relocalisation COFF identifient les éléments à réparer, au moment du lien, lorsqu'une section d'un fichier objet est affectée à un décalage dans une image exécutable.

Une autre utilisation involontaire de la relocation consiste à (dés) obscurcir les fichiers binaires au moment de l'exécution sans code de décompression supplémentaire. Voir ce document .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top