Dieses Programm dient zum Laden von 32-Bit- oder 64-Bit-Shellcode und ermöglicht die Ausführung oder das Debuggen. Darüber hinaus können ausführbare PE-Dateien basierend auf dem gewünschten Shellcode erstellt werden. Dies kann das Testen erleichtern, da die Ausgabebinärdatei von Standard-Reverse-Engineering-Tools (z. B. IDA Pro (sogar kostenlos) und Debuggern) verwendet werden kann.
Release-Binärdateien sind verfügbar. Sie können eine Demo dieses Tools auf YouTube ansehen
Dieses Programm bietet verschiedene Optionen für die Arbeit mit Ihrem Shellcode, geordnet nach ihrer Verwendung.
Globale Argumente
Shellcode debuggen
Erstellen einer PE-Datei
Das einzige erforderliche Argument ist die Angabe des Pfads zu der Datei, die Ihren Shellcode enthält. Sie tun dies, indem Sie das Argument -f
verwenden. Dies wird in den Speicher kopiert und ausgeführt. Darüber hinaus können Sie das Argument -ep
verwenden, um den Einstiegspunkt um X Bytes anzupassen. Dies ermöglicht Shellcode, dessen Ausführung nicht am Anfang des Binärblobs beginnt. Schließlich bestimmt -bp
, ob vor dem Shellcode ein Haltepunkt eingefügt werden soll. Dies erfolgt über ein 0xCC
Byte, das ein INT3 ist. Dadurch können Sie das Programm unter einem Debugger ausführen und die Befehlszeilenargumente entsprechend definieren. Durch das Einfügen eines Haltepunkts kann der Debugger die Ausführung unterbrechen, bevor der Shellcode ausgeführt wird. Wenn Sie keinen Debugger verwenden, fügen Sie keinen Haltepunkt ein, da dies zum Absturz des Programms führt.
Sie können das Argument -pe
verwenden, um eine PE-Datei zu erstellen, die im Wesentlichen den Shellcode umschließt. Der Shellcode wird im .text
Abschnitt platziert. Der Einstiegspunkt ist als Anfang des Abschnitts definiert, sofern nicht das Argument -ep
verwendet wird. Dieses Argument definiert einen Offset vom Anfang des Abschnitts und wird zum Aktualisieren des PE-Datei-Einstiegspunkts (dh des Feldes AddressOfEntry) verwendet. Darüber hinaus kann das Argument -64
verwendet werden, um eine 64-Bit-PE-Datei zu generieren, wahrscheinlich für 64-Bit-Shellcode. Die resultierende PE-Datei kann mit gängigen Reverse-Engineering-Tools wie IDA Pro, Ghidra oder einem Debugger wie x32dbg/WinDbg/etc analysiert werden.
Wenn das Argument -d verwendet wird, erstellt SCLauncher einen neuen Abschnitt mit dem Namen .content und kopiert den Inhalt der Datei in diesen Abschnitt. Dieser Abschnitt folgt auf den .text -Abschnitt.
Wenn Sie Shellcode haben, der sich noch nicht im Binärzustand befindet, können Sie diesen Shellcode mit CyberChef konvertieren und als Datei herunterladen.
Hier ist ein Beispiel für Shellcode von Exploit-DB, der auf CyberChef in binären Inhalt konvertiert wurde.
Dieses Programm soll mit dem C/C++-Compiler von Microsoft kompiliert werden. Sie können die Developer Command Prompt
nach der Installation der kostenlosen/Community-Version zum Kompilieren mit cl
verwenden. Ein Beispiel für diesen Befehl wäre:
cl sclauncher.c
Dadurch wird die ausführbare sclauncher.exe
erstellt.