Comment extraire une section RT_RCDATA d'un exécutable Win32 (de préférence en C #)?

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

  •  02-07-2019
  •  | 
  •  

Question

La seule façon pour moi de procéder consiste à ouvrir le fichier EXE dans Visual Studio. J'aimerais pouvoir le faire entièrement en C # si possible. Les autres options incluent:

  • P / Invocation de LoadResource () à partir de l'API Win32
  • Utiliser un outil existant (quelqu'un en connaît un?)
  • D'autres idées?

Merci!

Était-ce utile?

La solution

P / Invoke LoadResource sera votre pari le plus sûr.

Sinon, vous devrez écrire votre propre processeur P / E , par exemple. Exemple de processeur PE . Le processeur n'est pas la fin du monde, mais comme vous pouvez le constater, cela est beaucoup plus complexe qu'un P / Invoke.

Presque oublié, en ce qui concerne les outils, la plupart des navigateurs P / E le feront pour vous. Par exemple. P / E Explorer, qui est disponible mais pas vraiment en cours de développement. J'ai aussi utilisé IDA Pro pour des choses comme celle-là. Un plugin IDA rapide suffirait facilement.

Autres conseils

Je suppose que vous essayez de lire une ressource de type RCDATA à partir d'un exécutable (sachez que "section de l'exécutable" signifie autre chose - il fait référence aux parties .text, .data, .rdata, etc. Fichier PE). Si vous souhaitez le lire à partir de l'assembly en cours, voici un tutoriel montrant comment: Accès aux ressources incorporées à l’aide de GetManifestResourceStream , à l’aide de GetManifestResourceNames et GetManifestResourceStream méthodes.

Si vous ne voulez pas le lire depuis l'exécutable courant, vous pouvez utiliser une méthode similaire à celle présentée ici .

Ces méthodes ont l’avantage sur PInvoke d’être 100% .NET et vous n'avez pas besoin de manipuler les arguments pour / de types de données de plate-forme et de vous assurer que vous avez validé toutes les valeurs de retour.

Il existe une bibliothèque très utile pour de nombreuses tâches-ressources à l'adresse http: //resourcelib.codeplex. .com

De nombreuses classes et fonctions encapsulent ces appels window-api autour de UpdateResource (...) , etc.

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