Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/lunixbochs/patchkit
Rétro-ingénierieAnalyse de BinairesExploitation de Binaires
GitHublunixbochs/patchkit

patchkit

patching binaire depuis Python

Voir le dépôt
638825il y a 3 ansVérifié par Kitploit

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

patchkit

Patche un binaire ELF en utilisant un ou plusieurs scripts Python simples.

Utilisation :

root@kitploit:~
patch <binaire> <répertoire_patch|fichier> [répertoire_patch|fichier...]

répertoire_patch

Contient un ou plusieurs fichiers de patch Python, qui seront exécutés par ordre alphabétique sur un binaire.

Exemples de patchs

Noper une adresse, injecter une fonction assembleur et hooker le point d'entrée :

root@kitploit:~
def simple_patch(pt):
    # nop out a jump at the entry point
    pt.patch(pt.entry, hex='90' * 5)

    # inject assembly into the binary and return the address
    addr = pt.inject(asm='mov eax, 1; ret')

    # hook the entry point to make it call addr (ret will run the original entry point)
    pt.hook(pt.entry, addr)

Remplacer une fonction C :

root@kitploit:~
def replace_free(pt):
    # pretend free() is at this address:
    old_free = 0x804fc4

    # inject a function to replace free()
    new_free = pt.inject(c=r'''
    void free_stub(void *addr) {
        printf("stubbed free(%p)\n", addr);
    }
    ''')

    # patch the beginning of free() with a jump to our new function
    pt.patch(old_free, jmp=new_free)

API

root@kitploit:~
addr = search(data)
hook(addr, new_addr)
patch(addr, *compile arg*)
addr = inject(*compile arg*)

*compile arg* est l'un des éléments suivants :
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (uniquement supporté sur inject, pas sur patch)

Scripts IDA

Certains scripts se trouvent dans le chemin ida/. Exécutez-les comme ceci :

root@kitploit:~
/Applications/IDA\ Pro\ 6.8/idaq.app/Contents/MacOS/idaq64 -A -Sida/allfuncs.py a.out

Lorsqu'il est invoqué ainsi, allfuncs.py génère a.out.funcs qui est utilisé par les scripts de durcissement.

Outils

Ceux-ci sont pour l'instant spécifiques à CGC et x86, mais seront portés pour une utilisation générale à l'avenir.

  • explore : utilise un CFG Python et un émulateur de backtracking récursif pour trouver des blocs de base dans un exécutable
  • bindiff : utilise les limites de blocs d'une exécution d'explore, ainsi qu'une analyse supplémentaire pour trouver et afficher les différences de blocs de base entre deux binaires

Dépendances

  • Exécutez ./deps.sh pour les installer automatiquement.
    • Capstone Engine - https://github.com/aquynh/capstone.git
    • Keystone Engine - https://github.com/keystone-engine/keystone.git
    • Unicorn Engine - https://github.com/unicorn-engine/unicorn.git
Télécharger l’outil