
Konvertiert PE in Shellcode
Konvertiert PE, sodass es dann wie ein normaler Shellcode injiziert werden kann.
Gleichzeitig bleibt die Ausgabedatei weiterhin ein gültiges PE.
Unterstützt sowohl 32- als auch 64-Bit-PEs
Autoren: @hasherezade & @hh86
Das Ziel dieses Projekts ist es, eine Möglichkeit zu bieten, PE-Dateien zu generieren, die mit minimalem Aufwand injiziert werden können. Es ist inspiriert von Stephen Fewers ReflectiveDLLInjection – der Unterschied besteht jedoch darin, dass Sie mit pe2shc den reflektierenden Ladestub nach der Kompilierung hinzufügen können. Außerdem wird der Header der PE-Datei so modifiziert, dass Sie die Ausführung des injizierten Puffers von Anfang an starten können – genau wie bei einem Shellcode. Er findet automatisch den Stub und setzt das Laden der vollständigen PE fort.
🟢 Der Stub unterstützt nur grundlegende Strukturen des PE-Formats, wie z.B.:
Bitte beachten Sie, dass dies zwar für die Mehrheit der PE-Dateien ausreichend ist, einige ausführbare Dateien jedoch andere, komplexere Aspekte des PE-Formats nutzen können. Das bedeutet, nicht jedes PE kann erfolgreich in einen Shellcode konvertiert werden.
🚫 Beispiele für derzeit nicht unterstützte Elemente:
📦 ⚙️ Laden Sie die neueste Version herunter.
Verwenden Sie rekursives Klonen, um das Repository zusammen mit allen Submodulen zu erhalten:
git clone --recursive https://github.com/hasherezade/pe_to_shellcode.git
pe2shc.exe <Pfad zu Ihrem PE> [Ausgabepfad*]
* - optional
Wenn das PE erfolgreich konvertiert wurde, teilt pe2shc Ihnen mit, wo die Ausgabe gespeichert wurde:
[+] Saved to file: <konvertierte Datei>
z.B.
[+] Saved to file: test_file.shc.exe
runshc.exe <konvertierte Datei>
(*)Warnung: Denken Sie daran, die Version von runshc mit der für Ihre konvertierte Anwendung passenden Bitness (32 oder 64 Bit) zu verwenden – andernfalls stürzt die Anwendung ab!