Wie extrahieren Sie einen RT_RCDATA Ausschnitt aus einer Win32 ausführbare Datei (vorzugsweise in C #)?

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

  •  02-07-2019
  •  | 
  •  

Frage

Der einzige Weg, ich weiß, wie dies zu tun zur Zeit öffnet die EXE-Datei in Visual Studio auf. Ich würde gerne in der Lage sein, dies vollständig, wenn möglich, in C # zu tun. Weitere Optionen sind:

  • P / Hervorrufen von Loadresource () aus dem Win32-API
  • Mit einem bestehenden Werkzeug (jemand kennen?)
  • Andere Ideen?

Danke!

War es hilfreich?

Lösung

P / Invoke Load Ihre sicherste Wette.

Ansonsten werden Sie Ihre eigenen P / E Prozessor zB schreiben. PE Processor Beispiel . Der Prozessor ist nicht das Ende der Welt, aber wie Sie viel mehr beteiligt als ein P sehen / Invoke.

Fast vergessen, so weit wie Werkzeuge gehen, die meisten P / E-Browser wird dies für Sie tun. Z.B. P / E-Explorer, die verfügbar ist, aber nicht wirklich weiterentwickelt. Ich habe auch IDA Pro für Sachen wie diese verwendet. Eine schnelle IDA-Plugin würde dies leicht tun.

Andere Tipps

Ich gehe davon aus, dass Sie eine Ressource vom Typ RCDATA von einer ausführbaren Datei zu lesen versuchen, (beachten Sie, dass „ausführbarer Abschnitt“ bedeutet eine andere Sache - es bezieht sich auf den .text, .data .rdata usw. Teile des PE Datei). Wenn Sie es von der aktuellen Baugruppe lesen möchten, hier ist ein Tutorial zeigt, wie: Zugriff auf eingebettete Ressourcen GetManifestResourceStream verwenden, mit der GetManifestResourceNames und GetManifestResourceStream Methoden.

Wenn Sie nicht aus dem aktuellen ausführbaren lesen möchten, können Sie eine Methode ähnlich der hier .

Diese Methoden haben den Vorteil gegenüber PInvoke, dass sie 100% .NET und Sie müssen nicht Geige mit den Argumenten zu / von Plattform-Datentypen Serialisieren und dafür zu sorgen, dass Sie alle Rückgabewerte bestätigt.

Es ist eine sehr hilfreiche Bibliothek für viele ressourcen Aufgaben http: //resourcelib.codeplex .com

Viele Klassen und Funktion tun, um diese Fenster-api-Anrufe um UpdateResource(...) wickeln, etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top