Konvertieren Sie Standard -ELF -Dateien in Standalone -Shellcodes. Bitte lesen Sie die folgende Dokumentation und sehen Sie sich die Beispiele an, damit dieses Projekt ordnungsgemäß funktioniert
Github
Pypi
pip install py_shelfDie Python -Bibliothek analysiert den ELF und erstellt ein einfaches, lockeres Dateiformat namens Shelf (Shellcode -ELF).
Der Mini -Lader wird als Einstiegspunkt für Regal eingefügt.
Der Mini -Lader lädt das Regal und verlagert es dann. Es gibt keine besonderen Anforderungen, die Bibliothek enthält die kompilierten Mini -Lader und -Ressourcen.
Das folgende Diagramm erläutert das Format (nur in Browsern funktionieren)
ClassDiagram
ShellCodeEnryPoint -|> Miniloader
ShellCodeEnryPoint: Shellcode mit Pre Mini Loader -Logik enthält
Miniloader -|> Umzugstabelle
Miniloader: Enthält die gesamte Logik zum Parsen der Umzugstabelle
Miniloader: vollständig OS unabhängig
Umzugstabelle -|> Haken optional
Verlagerungstabelle: Enthält eine Tabelle, die für die ShellCode -Laufzeitverlagerung erforderlich ist
Haken optional -|> Regal
Haken Optional: Lesen Sie mehr über Hooks in der folgenden Dokumentation
Haken Optional: Dieser Abschnitt ist optional und existiert nur, wenn Hooks verwendet werden
Regal: Shellcode Elf - Dies ist die kompilierte Binärin, die wir in Shellcode konvertieren
Regal: Diese Binärdatei wird nur in Opcodes abgezogen
Regal: Mit der Verlagerungstabelle voll umschreibbar
Dieses Projekt soll ELF in OS -unabhängige Shellcodes umwandeln. Daher Zuordnungsleistung niemals Speicher und das ShellCode -Format ist nicht gepackt. Sie können es einfach ausführen, zB ...
(( void ( * )()) shellcode )();Folgen Sie den folgenden Beispielen
Einige Zusammenstellungsflaggen sind erforderlich, damit dies ordnungsgemäß funktioniert. Sie müssen die Binärdatei mit -Fpie und -static zusammenstellen, schauen Sie sich die angegebenen Beispiele unten an (Makefile).
ShellCode ist ein gestreiftes binär ohne Symbole und ohne Elf -Informationen, die nur Opcodes haben, damit der ShellCode diese Bibliothek mit Elfeninformationen eine Binärdatei erfordert. Stellen Sie also sicher
vereinfacht machen Befehl für Mips Big Endian
gcc example . c - fno - stack - protector - fPIE - fpic - static - nostartfiles -- entry = main - o binary . out
python - m shelf -- input binary . out Makefile
Beispiel.C
Sie können den bereitgestellten ShellCode Loader verwenden, um Ihre Shellcodes zu testen
qemu-mips ./shellcode_loader ./myshellcode.outEs wird empfohlen, die Regalloa -Bibliothek zu verwenden, um Ihren ShellCode hier zu testen
Für den folgenden Links arbeiten nur auf der Github -Seite