Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
KeyPatchX — KeyPatch Enhanced — Plugin IDA Pro per il patching assembly x86/x64 consapevole dei simboli, basato su Keystone Engine. Fork di Keypatch con risoluzione automatica dei simboli IDA, codifica RIP-relative e correzione dei nomi _↔. | Kitploit
Strumenti/GitHubGitHub/gmh5225/keypatchx
Analisi StaticaExploitReverse EngineeringDebuggerUtilità e FrameworkAnalisi di BinariBinary Exploitation
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — Plugin IDA Pro per il patching assembly x86/x64 consapevole dei simboli, basato su Keystone Engine. Fork di Keypatch con risoluzione automatica dei simboli IDA, codifica RIP-relative e correzione dei nomi _↔.

Vedi Repository
927 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

KeyPatch Enhanced — Plugin di assemblaggio symbol-aware per IDA Pro

Fork potenziato basato su Keypatch (di Nguyen Anh Quynh & Thanh Nguyen), modificato da Euarno.

Miglioramento principale: utilizzo diretto dei nomi dei simboli IDA nell'assembly x86/x64, il plugin risolve automaticamente gli indirizzi e genera la codifica corretta RIP-relative / rel32.


Nuove funzionalità

1. Assemblaggio con utilizzo diretto dei nomi dei simboli

Nel dialogo di Keypatch è possibile inserire direttamente istruzioni con nomi di simboli, senza dover calcolare manualmente indirizzi e offset:

call rc4_crypt          ; calcola automaticamente l'offset relativo rel32
jmp  main               ; idem
lea  rcx, enc_0         ; x64: genera automaticamente lea rcx, [rip + disp32]
lea  rax, Format         ; idem

2. Correzione automatica dei nomi IDA (_ ↔ .)

IDA a volte mostra i . nel database come _ (ad esempio enc.0 viene mostrato come enc_0). Il plugin tenta automaticamente la ricerca della variante _ → ., senza doversi preoccupare del formato di memorizzazione interno di IDA.

3. Tipi di istruzioni supportate

TipoEsempioGestione
CALL / JMP / Jcccall func_nameSimbolo → indirizzo assoluto, Keystone calcola rel32
LEA (simbolo nudo)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA (operando composto)lea rcx, [rbp+0x120+Str]Sostituisce solo il simbolo con il valore dell'indirizzo, mantenendo la struttura dell'espressione
MOV offsetmov rax, offset symbolx64: converte in lea rax, [rip + disp32]
se fuori range usa mov rax, imm64
Accesso alla memoria [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone codifica automaticamente
Simbolo come immediatopush symbolSimbolo → 0xADDR

4. Messaggi di errore migliorati

In caso di fallimento dell'assemblaggio, la finestra di output mostra:

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

Installazione

Dipendenze preliminari

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

Installazione del plugin

Copiare keypatch.py nella directory dei plugin di IDA:

SistemaPercorso
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ oppure <directory di installazione IDA>\plugins\
macOS~/.idapro/plugins/ oppure <directory di installazione IDA>/plugins/
Linux~/.idapro/plugins/ oppure <directory di installazione IDA>/plugins/

Riavviare IDA.


Utilizzo

Aprire il Patcher

  • Menu: Edit → Keypatch → Patcher
  • Scorciatoia: Ctrl + Alt + K
  • Menu contestuale: Keypatch → Patcher

Flusso di lavoro di base

  1. Nella finestra di disassemblaggio di IDA, posizionare il cursore sull'indirizzo di destinazione
  2. Premere Ctrl + Alt + K per aprire il Patcher
  3. Inserire l'istruzione nel campo Assembly (è possibile usare i nomi dei simboli IDA)
  4. Controllare il campo Encoding per verificare che la codifica sia corretta
  5. Fare clic su Patch per applicare la modifica

Esempio: Hook di una chiamata a funzione

Supponiamo di voler applicare una patch in 0x140001966 con un salto a rc4_crypt:

Assembly: call rc4_crypt

Il plugin risolve automaticamente l'indirizzo di rc4_crypt, calcola l'offset rel32 e genera la codifica corretta E8 xx xx xx xx.

Esempio: caricamento di un indirizzo dati

Assembly: lea rcx, enc_0

Il plugin automaticamente:

  1. Risolve enc_0 (il nome interno potrebbe essere enc.0) → indirizzo 0x140013050
  2. Calcola l'offset RIP-relative disp32 = 0x140013050 - (0x140001966 + 7)
  3. Genera lea rcx, [rip + 0x176E3]
  4. Lo passa a Keystone per la codifica in codice macchina

Riempimento intervallo (Fill Range)

  1. Selezionare un intervallo di indirizzi nella finestra di disassemblaggio
  2. Premere Ctrl + Alt + K per aprire Fill Range
  3. Inserire l'istruzione (ad esempio nop), l'intero intervallo verrà riempito automaticamente

Annullamento

  • Menu: Edit → Keypatch → Undo last patching

Note

  • Limite di range RIP-relative: l'indirizzamento RIP-relative di lea e [symbol] ha un range di ±2GB. Se il simbolo è fuori range, il plugin segnala un errore.
  • Limite degli immediati in x64: push symbol in x64 richiede che l'indirizzo del simbolo sia ≤ 0x7FFFFFFF (estensione del segno di imm32), altrimenti viene emesso un avviso. Si consiglia di usare lea reg, symbol + push reg.
  • Istruzioni multiple con punto e virgola: la risoluzione dei simboli per istruzioni multiple nella forma lea rcx, sym; call func non è ancora supportata. Applicare le patch una alla volta.

Progetto originale

  • Autori originali: Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • Progetto originale: keystone-engine/keypatch
  • Licenza originale: GPL v2
  • Homepage del progetto: http://keystone-engine.org/keypatch
  • Keystone Engine: http://www.keystone-engine.org

Modifiche

  • Euarno — Risoluzione automatica dei simboli IDA, correzione dei nomi _ ↔ ., supporto alla codifica RIP-relative x64, output di errori migliorato

Licenza

Questa versione modificata è rilasciata con licenza MIT. Vedere il file LICENSE per i dettagli.

Il copyright del codice originale di Keypatch appartiene agli autori originali ed è rilasciato sotto GPL v2.

Scarica lo strumento