Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
KeyPatchX — KeyPatch Enhanced — Plugin IDA Pro pour le patch d'assembleur x86/x64 sensible aux symboles, propulsé par Keystone Engine. Fork de Keypatch avec résolution automatique des symboles IDA, encodage relatif à RIP et correction des noms _↔. | Kitploit
Outils/GitHubGitHub/gmh5225/keypatchx
Analyse StatiqueExploitationRétro-ingénierieDébogueursUtilitaires et FrameworksAnalyse de BinairesExploitation de Binaires
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — Plugin IDA Pro pour le patch d'assembleur x86/x64 sensible aux symboles, propulsé par Keystone Engine. Fork de Keypatch avec résolution automatique des symboles IDA, encodage relatif à RIP et correction des noms _↔.

Voir le dépôt
92il y a 7 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

KeyPatch Enhanced — Plugin d'assemblage sensible aux symboles pour IDA Pro

Basé sur Keypatch (par Nguyen Anh Quynh & Thanh Nguyen), branche améliorée modifiée par Euarno.

Amélioration principale : utiliser directement les noms de symboles IDA dans l'assemblage x86/x64, le plugin résout automatiquement les adresses et génère un encodage RIP-relative / rel32 correct.


Nouvelles fonctionnalités

1. Assemblage direct avec noms de symboles

Saisissez directement des instructions avec noms de symboles dans la boîte de dialogue Keypatch, sans calculer manuellement les adresses et les offsets :

call rc4_crypt          ; calcule automatiquement l'offset relatif rel32
jmp  main               ; idem
lea  rcx, enc_0         ; x64: génère automatiquement lea rcx, [rip + disp32]
lea  rax, Format         ; idem

2. Correction automatique des noms IDA (_ ↔ .)

IDA affiche parfois les . de la base de données sous forme de _ (par exemple enc.0 affiché comme enc_0). Le plugin essaie automatiquement la variante _ → . lors de la recherche, sans se soucier du format de stockage interne d'IDA.

3. Types d'instructions pris en charge

TypeExempleTraitement
CALL / JMP / Jcccall func_nameSymbole → adresse absolue, Keystone calcule rel32
LEA (symbole nu)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA (opérande composé)lea rcx, [rbp+0x120+Str]Remplace uniquement le symbole par la valeur d'adresse, conserve la structure de l'expression
MOV offsetmov rax, offset symbolx64: converti en lea rax, [rip + disp32]
hors plage, utilise mov rax, imm64
Accès mémoire [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone encode automatiquement
Symbole en immédiatpush symbolSymbole → 0xADDR

4. Messages d'erreur améliorés

En cas d'échec de l'assemblage, la fenêtre de sortie affiche :

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

Dépendances préalables

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

Installation du plugin

Copiez keypatch.py dans le répertoire des plugins d'IDA :

SystèmeChemin
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ ou <répertoire d'installation IDA>\plugins\
macOS~/.idapro/plugins/ ou <répertoire d'installation IDA>/plugins/
Linux~/.idapro/plugins/ ou <répertoire d'installation IDA>/plugins/

Redémarrez IDA.


Utilisation

Ouvrir le Patcher

  • Menu : Edit → Keypatch → Patcher
  • Raccourci : Ctrl + Alt + K
  • Menu contextuel : Keypatch → Patcher

Flux de travail de base

  1. Dans la fenêtre de désassemblage d'IDA, positionnez le curseur sur l'adresse cible
  2. Appuyez sur Ctrl + Alt + K pour ouvrir le Patcher
  3. Saisissez l'instruction dans le champ Assembly (les noms de symboles IDA sont utilisables)
  4. Vérifiez le champ Encoding pour confirmer que l'encodage est correct
  5. Cliquez sur Patch pour appliquer la modification

Exemple : Hook d'appel de fonction

Supposons que vous souhaitiez patcher à l'adresse 0x140001966 un saut vers rc4_crypt :

Assembly: call rc4_crypt

Le plugin résout automatiquement l'adresse de rc4_crypt, calcule l'offset rel32 et génère l'encodage correct E8 xx xx xx xx.

Exemple : Chargement d'une adresse de données

Assembly: lea rcx, enc_0

Le plugin automatiquement :

  1. Résout enc_0 (nom interne possiblement enc.0) → adresse 0x140013050
  2. Calcule l'offset RIP-relative disp32 = 0x140013050 - (0x140001966 + 7)
  3. Génère lea rcx, [rip + 0x176E3]
  4. Le transmet à Keystone pour l'encodage en code machine

Remplir une plage (Fill Range)

  1. Sélectionnez une plage d'adresses dans la fenêtre de désassemblage
  2. Appuyez sur Ctrl + Alt + K pour ouvrir Fill Range
  3. Saisissez l'instruction (par exemple nop), la plage entière est remplie automatiquement

Annulation

  • Menu : Edit → Keypatch → Undo last patching

Remarques

  • Limite de portée RIP-relative : la portée d'adressage RIP-relative de lea et [symbol] est de ±2GB. Si le symbole dépasse la portée, le plugin signale une erreur.
  • Limite d'immédiat en x64 : pour push symbol en x64, l'adresse du symbole doit être ≤ 0x7FFFFFFF (extension de signe imm32), sinon un avertissement apparaît. Il est recommandé d'utiliser lea reg, symbol + push reg.
  • Instructions multiples séparées par point-virgule : la résolution de symboles pour les instructions multiples de la forme lea rcx, sym; call func n'est pas encore prise en charge. Veuillez patcher instruction par instruction.

Projet original

  • Auteurs originaux : Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • Projet original : keystone-engine/keypatch
  • Licence originale : GPL v2
  • Page du projet : http://keystone-engine.org/keypatch
  • Keystone Engine : http://www.keystone-engine.org

Modificateur

  • Euarno — Résolution automatique des symboles IDA, correction des noms _ ↔ ., prise en charge de l'encodage RIP-relative en x64, sortie d'erreurs améliorée

Licence

Cette version modifiée est publiée sous licence MIT. Voir le fichier LICENSE pour plus de détails.

Le code original de Keypatch est la propriété de ses auteurs originaux et est publié sous GPL v2.

Télécharger l’outil