Question

J'ai un fichier d'objet COFF 64 bits (pas de code source ou d'informations de débogage) à partir de laquelle j'ai besoin d'extraire un Célibataire procédure.

La procédure est relativement courte, et son seulement Les dépendances sont:

  1. Une variable globale.
  2. Quelques procédures importées.

J'ai déjà essayé de démonter et de réassembler le code; Cependant, pour une raison étrange, même si le code se ressemble à un débogueur et à un désassembleur, il ne se comporte pas de la même manière. (J'ai déjà essayé de m'assurer que les sections exécutables ont les drapeaux corrects, etc. Mais à ma connaissance, tout cela est correct, et les valeurs correspondent également à ce qu'ils "devraient" être à l'exécution.)

Alors y a-t-il un moyen de directement Copiez la fonction dans un nouveau fichier d'objet (ou pour tout supprimer à l'exception cette fonction), sans pour autant Avoir à démêler et à réassembler le code dans le processus?

Était-ce utile?

La solution

Je ne suis pas sûr, il y a un moyen facile dans le cas général.

Par exemple, plusieurs procédures peuvent se référer pour un morceau de code partagé (c.-à-d. Fonction statique). Vous devez donc créer un graphique d'appel pour tous les blocs de code dans le fichier et prendre des blocs de code qui sont référés par votre procédure. Que vous devriez corriger les adresses dans tous les sauts et les appels, car il y aura une nouvelle mise en page de code.

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