Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Alcatraz — x64-Binärobfuskatator für PE-Dateien mit Kontrollflussabflachung, Anti-Disassemblierung, Importobfuskation und Anweisungsmutation, um Reverse Engineering zu erschweren. | Kitploit
Tools/GitHubGitHub/weak1337/alcatraz
Reverse EngineeringBinäranalyse
GitHubweak1337/alcatraz

Alcatraz

x64-Binärobfuskatator für PE-Dateien mit Kontrollflussabflachung, Anti-Disassemblierung, Importobfuskation und Anweisungsmutation, um Reverse Engineering zu erschweren.

Repository anzeigen
2.0k268vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Alcatraz

Alcatraz ist ein x64-Binary-Obfuskator, der verschiedene PE-Dateien obfuskieren kann, darunter:

  • .exe
  • .dll
  • .sys

Überblick

  • Alcatraz
  • Anforderungen
  • Verwendung
  • Funktionen
    • Obfuskierung von unmittelbaren Bewegungen
    • Kontrollflussglättung
    • ADD-Mutation
    • Einstiegspunkt-Obfuskierung
    • LEA-Obfuskierung
    • Anti-Disassembly
    • Import-Obfuskierung
    • Endergebnis

Anforderungen

Installation: https://vcpkg.io/en/getting-started.html

asmjit: vcpkg.exe install asmjit:x64-windows
Zydis: vcpkg.exe install zydis:x64-windows

Verwendung

imgbefore 1.) Laden Sie eine Binärdatei, indem Sie oben links auf file klicken.
2.) Fügen Sie Funktionen hinzu, indem Sie den Functions-Baum erweitern. (Sie können suchen, indem Sie den Namen in die Suchleiste oben eingeben.)
3.) Drücken Sie compile (Hinweis: Die Obfuskierung vieler Funktionen kann einige Sekunden dauern).

Funktionen

Im folgenden Beispiel sind alle Funktionen (außer der gezeigten) deaktiviert.

Obfuskierung von unmittelbaren Bewegungen

Wenn ein unmittelbarer Wert in ein Register verschoben wird, obfuskieren wir ihn durch Anwenden mehrerer bitweiser Operationen. Schauen wir uns die populäre Funktion _security_init_cookie an.
Vorher: imgbefore Nachher: imgafter

Kontrollflussglättung

Indem wir die aufgeräumte Programmstruktur, die der Compiler erzeugt hat, entfernen und unseren Code in neu generierte Blöcke einfügen, erhöhen wir die Komplexität des Programms. Nehmen wir diese einfache Funktion main als Beispiel (Optimierung für dieses Programm ist deaktiviert):
imgmain
Wenn wir dies in IDA 7.6 werfen, wird der Decompiler es optimieren:
imgmainnoobf
Lassen Sie uns nun seinen Kontrollfluss glätten und IDA erneut analysieren lassen:
imgmainobf
Wie Sie sehen können, ist die Komplexität stark gestiegen, obwohl ich nur einen kleinen Teil des generierten Codes zeige. Wenn Sie wissen möchten, wie der CFG aussieht: imgmaincfg

ADD-Mutation

Wenn ein Register (z. B. RAX) zu einem anderen Register (z. B. RCX) addiert wird, mutieren wir die Anweisung. Das bedeutet, dass sich die Syntax ändert, aber nicht die Semantik. Die Anweisung ADD RCX, RAX kann zu folgendem mutiert werden:

root@kitploit:~
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1

Wenn Sie mehr über Mutation erfahren möchten, werfen Sie einen Blick auf perses.

Einstiegspunkt-Obfuskierung

Wenn die PE-Datei eine .exe ist (Unterstützung für .dll wird hinzugefügt), erstellen wir einen benutzerdefinierten Einstiegspunkt, der den echten beim Start entschlüsselt (!!! funktioniert nicht, wenn manuell gemappt).
imgmaincfg

LEA-Obfuskierung

Die LEA-Obfuskierung ist recht einfach, aber effektiv. Wir verschieben eine andere Adresse in das Register und entschlüsseln sie danach. Auf diese Weise können Reverse Engineers bestimmte Daten/Funktionen nicht mehr kreuzreferenzieren.
Angenommen, wir finden die folgende Anweisung: lea rcx, [0xDEAD]
Wir werden sie zu folgendem mutieren:

root@kitploit:~
pushf
lea rcx, [1CE54]
sub rcx, EFA7
popf

rcx -> 0xDEAD

Anti-Disassembly

Wenn wir eine Anweisung finden, die mit dem Byte 0xFF beginnt, setzen wir ein 0xEB davor.
Wir tun dies, weil 0xEB 0xFF zu jmp rip + 1 codiert, was letztendlich zu unserem tatsächlichen ersten 0xFF springt. Dies verwirrt Werkzeuge, die Anweisungen linear dekodieren.
Vorher:
imgffbefore
Nachher:
imgffafter

Von Zeit zu Zeit können wir einfügen:

root@kitploit:~
jz 3
jne 1
0xE8

IDA wird versuchen, die 0xE8 (call) zu dekodieren, aber keinen Erfolg haben:
imgjz

Import-Obfuskierung

Es gibt derzeit keine "richtige" IAT-Obfuskierung. Der 0xFF-Anti-Disassembly-Trick kümmert sich vorerst darum. Eine ordentliche Implementierung ist hier geplant:
iat.cpp

Endergebnis

Dies ist ein Ausschnitt unserer main-Funktion mit allem außer Anti-Disassembly aktiviert (damit IDA eine Funktion erstellen kann):
imgfinal

Tool herunterladen