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
KeyPatchX — KeyPatch Enhanced — IDA Pro-Plugin für symbolbewusstes x86/x64-Assembly-Patching, angetrieben von der Keystone Engine. Fork von Keypatch mit automatischer IDA-Symbolauflösung, RIP-relativer Kodierung und _↔. Namenskorrektur. | Kitploit
Tools/GitHubGitHub/gmh5225/keypatchx
Statische AnalyseExploitationReverse EngineeringDebuggerDienstprogramme & FrameworksBinäranalyseBinary-Exploitation
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — IDA Pro-Plugin für symbolbewusstes x86/x64-Assembly-Patching, angetrieben von der Keystone Engine. Fork von Keypatch mit automatischer IDA-Symbolauflösung, RIP-relativer Kodierung und _↔. Namenskorrektur.

Repository anzeigen
92vor 7 MonatenNoch 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

KeyPatch Enhanced — IDA Pro symbolbewusstes Assembler-Plugin

Basierend auf Keypatch (von Nguyen Anh Quynh & Thanh Nguyen), ein erweiterter Fork, modifiziert von Euarno.

Kernverbesserung: Direkte Verwendung von IDA-Symbolnamen in x86/x64-Assembler, das Plugin löst Adressen automatisch auf und generiert korrekte RIP-relative / rel32-Kodierungen.


Neue Funktionen

1. Direktes Assemblieren mit Symbolnamen

Geben Sie im Keypatch-Dialog direkt Anweisungen mit Symbolnamen ein, ohne Adressen und Offsets manuell berechnen zu müssen:

call rc4_crypt          ; berechnet automatisch den rel32-Relativoffset
jmp  main               ; wie oben
lea  rcx, enc_0         ; x64: generiert automatisch lea rcx, [rip + disp32]
lea  rax, Format         ; wie oben

2. Automatische IDA-Namenskorrektur (_ ↔ .)

IDA zeigt manchmal . in der Datenbank als _ an (z. B. wird enc.0 als enc_0 angezeigt). Das Plugin versucht automatisch die Variante _ → . zu finden, sodass Sie sich nicht um das interne Speicherformat von IDA kümmern müssen.

3. Unterstützte Anweisungstypen

TypBeispielVerarbeitung
CALL / JMP / Jcccall func_nameSymbol → absolute Adresse, Keystone berechnet rel32
LEA (nacktes Symbol)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA (zusammengesetzter Operand)lea rcx, [rbp+0x120+Str]Ersetzt nur das Symbol durch den Adresswert, behält die Ausdrucksstruktur bei
MOV offsetmov rax, offset symbolx64: konvertiert zu lea rax, [rip + disp32]
bei Überschreitung des Bereichs wird mov rax, imm64 verwendet
Speicherzugriff [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone kodiert automatisch
Immediate-Symbolpush symbolSymbol → 0xADDR

4. Verbesserte Fehlermeldungen

Bei fehlgeschlagener Assemblierung zeigt das Ausgabefenster:

Keypatch: Keystone error: Invalid operand (KS_ERR_ASM_INVALIDOPERAND)
Keypatch:   input asm  : lea rcx, [rip + 0x176E3]
Keypatch:   fixed asm  : LEA RCX, [RIP + 0x176E3]
Keypatch:   address    : 0x140001966

Installation

Voraussetzungen

  • IDA Pro 7.0+
  • Keystone Engine Python-Bindings
pip install keystone-engine

Plugin installieren

Kopieren Sie keypatch.py in das Plugin-Verzeichnis von IDA:

SystemPfad
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ oder <IDA-Installationsverzeichnis>\plugins\
macOS~/.idapro/plugins/ oder <IDA-Installationsverzeichnis>/plugins/
Linux~/.idapro/plugins/ oder <IDA-Installationsverzeichnis>/plugins/

Starten Sie IDA neu.


Verwendung

Patcher öffnen

  • Menü: Edit → Keypatch → Patcher
  • Tastenkürzel: Ctrl + Alt + K
  • Kontextmenü: Keypatch → Patcher

Grundlegender Arbeitsablauf

  1. Positionieren Sie den Cursor im IDA-Disassembler-Fenster auf die Zieladresse
  2. Drücken Sie Ctrl + Alt + K, um den Patcher zu öffnen
  3. Geben Sie die Anweisung im Assembly-Feld ein (IDA-Symbolnamen können verwendet werden)
  4. Prüfen Sie das Encoding-Feld, um die korrekte Kodierung zu bestätigen
  5. Klicken Sie auf Patch, um die Änderung anzuwenden

Beispiel: Funktionsaufruf hooken

Angenommen, Sie möchten bei 0x140001966 einen Sprung zu rc4_crypt patchen:

Assembly: call rc4_crypt

Das Plugin löst automatisch die Adresse von rc4_crypt auf, berechnet den rel32-Offset und generiert die korrekte E8 xx xx xx xx-Kodierung.

Beispiel: Datenadresse laden

Assembly: lea rcx, enc_0

Das Plugin automatisch:

  1. Löst enc_0 auf (interner Name könnte enc.0 sein) → Adresse 0x140013050
  2. Berechnet den RIP-relativen Offset disp32 = 0x140013050 - (0x140001966 + 7)
  3. Generiert lea rcx, [rip + 0x176E3]
  4. Übergibt an Keystone zur Kodierung in Maschinencode

Bereich füllen (Fill Range)

  1. Wählen Sie einen Adressbereich im Disassembler-Fenster aus
  2. Drücken Sie Ctrl + Alt + K, um Fill Range zu öffnen
  3. Geben Sie die Anweisung ein (z. B. nop), um den gesamten Bereich automatisch zu füllen

Rückgängig machen

  • Menü: Edit → Keypatch → Undo last patching

Hinweise

  • RIP-relative Bereichsbeschränkung: Der RIP-relative Adressierungsbereich von lea und [symbol] beträgt ±2GB. Wenn das Symbol außerhalb des Bereichs liegt, meldet das Plugin einen Fehler.
  • x64-Immediate-Beschränkung: Bei push symbol unter x64 muss die Symboladresse ≤ 0x7FFFFFFF sein (imm32-Vorzeichenerweiterung), andernfalls wird eine Warnung ausgegeben. Es wird empfohlen, stattdessen lea reg, symbol + push reg zu verwenden.
  • Mehrere Anweisungen mit Semikolon: Die Symbolauflösung für mehrere Anweisungen in der Form lea rcx, sym; call func wird derzeit nicht unterstützt. Bitte patchen Sie Anweisung für Anweisung.

Originalprojekt

  • Originalautoren: Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • Originalprojekt: keystone-engine/keypatch
  • Original-Lizenz: GPL v2
  • Projekt-Homepage: http://keystone-engine.org/keypatch
  • Keystone Engine: http://www.keystone-engine.org

Modifiziert von

  • Euarno — Automatische IDA-Symbolauflösung, _ ↔ . Namenskorrektur, x64 RIP-relative Kodierungsunterstützung, verbesserte Fehlerausgabe

Lizenz

Diese modifizierte Version wird unter der MIT-Lizenz veröffentlicht. Siehe LICENSE-Datei.

Das Urheberrecht am ursprünglichen Keypatch-Code liegt bei den Originalautoren und wird unter GPL v2 veröffentlicht.

Tool herunterladen