Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ASM-Obfuscator — Verschleiert x86-64-Assembly mit Befehlsinjektion, Junk-Code, Konstanten-Verschleierung und Laufzeit-Entschlüsselung, um Reverse Engineering und Anti-Analyse zu erschweren. | Kitploit
Tools/GitHubGitHub/gmh5225/asm-obfuscator
DefensivwerkzeugeReverse EngineeringDebuggerBinäranalyse
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

Verschleiert x86-64-Assembly mit Befehlsinjektion, Junk-Code, Konstanten-Verschleierung und Laufzeit-Entschlüsselung, um Reverse Engineering und Anti-Analyse zu erschweren.

Repository anzeigen
7171vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ASM-Obfuscator

Fortgeschrittener x86-64-Assembly-Obfuskator. License

Beschreibung

Der Assembly-Code-Obfuskator ist ein leistungsstarkes und vielseitiges Werkzeug, das entwickelt wurde, um die Sicherheit Ihres x86-64-Assembly-Codes zu erhöhen. Es schützt Ihre Projekte vor Reverse Engineering und Analyse, indem es eine breite Palette von Obfuskationstechniken und Anti-Analyse-Maßnahmen einsetzt.

Funktionen

  • Befehlsinjektion: Injiziert vor jedem Assembly-Befehl benutzerdefinierte Byte-Sequenzen, um Disassembler zu verwirren.

  • Randomisierung: Führt Zufälligkeit in die Codestruktur ein, wodurch sie weniger vorhersehbar wird.

  • Debugger-Erkennung: Erkennt das Vorhandensein von Debuggern während der Codeausführung und setzt Anti-Debugging-Maßnahmen ein.

  • Anti-Analyse-Techniken: Verwirrt dynamische Analysetools mit bedingten Verzweigungen und Timing-Prüfungen.

  • Dynamische Entschlüsselung: Verschlüsselt Codeabschnitte und entschlüsselt sie zur Laufzeit dynamisch, was die Komplexität erhöht.

  • Dynamische Dekomprimierung: Komprimiert Codeabschnitte und dekomprimiert sie bei der Ausführung dynamisch, wodurch die wahre Natur des Codes verborgen wird.

  • Konstanten-Obfuskation: Obfuskatiert Konstanten und Datenwerte mithilfe von Techniken wie XOR-Verknüpfung und Bitmanipulation.

  • Variablenumbenennung: Benennt Variablen und Register um, wodurch der Code weniger lesbar für Menschen wird.

  • Junk-Code-Einfügung: Fügt Junk-Code-Anteile ein, um die Codebasis weiter zu verschleiern.

Funktionsweise

1. Befehlsinjektion

Der Kern des Obfuskationsprozesses besteht darin, vor jedem Assembly-Befehl in der Codedatei benutzerdefinierte Byte-Sequenzen zu injizieren. Diese strategisch entworfenen Byte-Sequenzen sollen Disassembler und Analysten gleichermaßen verwirren. Betrachten wir diesen Prozess im Detail:

Ursprünglicher Befehl:

4005d2:   55                      push   rbp

Im Speicher (hex):

0x55

Nach der Injektion:

400665:   eb 01                jmp    400668 <main+0x3>
400667:   b0 55                mov    al,0x55
400669:   eb 01                jmp    40066c <main+0x7>

Im Speicher (hex):

0xEB, 0x01, 0xB0, 0x55

Hier ist eine Aufschlüsselung der Transformation:

  • Der ursprüngliche Befehl PUSH RBP wird zu 0x55 assembliert. Der Obfuskator fügt davor die Bytes 0xEB, 0x01, 0xB0 ein.

  • Das Ergebnis ist eine Sequenz von Befehlen, die beim Disassemblieren völlig anders erscheinen kann als der ursprüngliche Code. Dies macht es für RE schwierig, den wahren Zweck des Codes zu verstehen.

2. Randomisierung

Es führt Randomisierungselemente in den Code ein. Dazu gehören Techniken wie Befehlspermutation, Operandentausch und Opcode-Substitution.

3. Debugger-Erkennung

Integriert Mechanismen zur Erkennung des Vorhandenseins von Debuggern während der Codeausführung. Es enthält Laufzeitprüfungen, um debuggerbezogene Artefakte zu identifizieren und Anti-Analyse-Maßnahmen auszulösen.

4. Anti-Analyse-Techniken

Integriert mehrere Anti-Analyse-Maßnahmen wie bedingte Verzweigungen und Timing-Prüfungen. Beispielsweise kann es bedingte Sprünge und Verzögerungsschleifen einfügen, um den Analyseprozess zu verlangsamen.

5. Dynamische Entschlüsselung

Es verwendet dynamische Entschlüsselungstechniken. Es verschlüsselt bestimmte Codeabschnitte und entschlüsselt sie zur Laufzeit mit einem geheimen Schlüssel. Dieser Entschlüsselungsprozess erfolgt dynamisch während der Codeausführung.

6. Dynamische Dekomprimierung

Es komprimiert bestimmte Codeabschnitte und dekomprimiert sie bei der Ausführung im laufenden Betrieb.

7. Konstanten-Obfuskation

Verwendet Techniken wie XOR-Verknüpfung, Bitmanipulation und arithmetische Operationen, um Konstanten zu obfuskieren. Dies stellt sicher, dass konstante Werte nicht ohne Weiteres erkennbar sind.

8. Variablenumbenennung

Das Werkzeug benennt Variablen und Register um, wodurch der Code weniger lesbar wird. Der Prozess beinhaltet das Ersetzen von Variablennamen durch zufällig generierte Zeichenfolgen oder numerische Bezeichner.

9. Junk-Code-Einfügung

Um den Code weiter zu verschleiern, fügt der Obfuskator Junk-Code-Anteile an strategischen Stellen ein. Dieser Junk-Code besteht aus irrelevanten Befehlen, die die Programmlogik nicht beeinflussen, aber dazu dienen, die Codebasis zu überladen.

Beispiel für die Junk-Code-Einfügung:

; Original Code
mov eax, 1

; After Junk Code Insertion
mov ebx, 2
sub ecx, ecx
add edx, edx

Im Speicher (hex):

0x89, 0xD8, 0x31, 0xC9, 0x01, 0xD2

Der eingefügte Junk-Code soll die Aufmerksamkeit ablenken und den Code verworrener erscheinen lassen.

10. Fake-UPX-Erkennung

Enthält außerdem eine Funktion zur Erkennung gefälschter UPX-Header. Es scannt den Code auf Anzeichen von Manipulationen an UPX-Headern und gewährleistet so die Integrität der ausführbaren Datei.

Vor der Transformation (ursprünglicher Code):

section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov ecx, 10        ; Initialize loop counter
    mov eax, 0         ; Initialize sum to 0

loop_start:
    add eax, ecx       ; Add current value of ECX to EAX (sum)
    loop loop_start    ; Decrement ECX and loop if not zero

    ; Exit program
    mov eax, 1         ; SYS_exit
    int 0x80           ; Invoke syscall

Hexadezimale Darstellung (ursprünglicher Code):

31 C9                 xor    ecx,ecx
B8 00 00 00 00        mov    eax,0x0
EB 0E                 jmp    0x1c
01 C8                 add    eax,ecx
E2 FB                 loop   0x11
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

Nach der Transformation (obfuskierter Code):

section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov eax, 0x1
    add eax, 0x2
    add eax, 0x3
    add eax, 0x4
    add eax, 0x5
    add eax, 0x6
    add eax, 0x7
    add eax, 0x8
    add eax, 0x9
    add eax, 0xa

    ; Exit program
    mov eax, 0x1
    int 0x80

Hexadezimale Darstellung (obfuskierter Code):

B8 01 00 00 00        mov    eax,0x1
83 C0 02              add    eax,0x2
83 C0 03              add    eax,0x3
83 C0 04              add    eax,0x4
83 C0 05              add    eax,0x5
83 C0 06              add    eax,0x6
83 C0 07              add    eax,0x7
83 C0 08              add    eax,0x8
83 C0 09              add    eax,0x9
83 C0 0A              add    eax,0xa
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

Im obfuskatierten Code haben wir die ursprüngliche Programmlogik weniger offensichtlich gemacht, indem wir redundante ADD-Befehle hinzugefügt und hexadezimale Werte als unmittelbare Operanden verwendet haben.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Details finden Sie in der Datei LICENSE.

Mitwirken

Beiträge sind willkommen!.

Unterstützung

Bei Problemen, Feature-Anfragen oder allgemeinen Fragen erstellen Sie bitte ein Issue.

Haftungsausschluss

Dieses Werkzeug ist für Bildungs- und ethische Zwecke bestimmt.

Tool herunterladen