Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
e9patch — Un potente strumento di riscrittura binaria statica | Kitploit
Strumenti/GitHubGitHub/gjduck/e9patch
Reverse EngineeringFuzzingAnalisi di BinariBinary Exploitation
GitHubgjduck/e9patch

e9patch

Un potente strumento di riscrittura binaria statica

Vedi Repository
1.1k701 mese faRevisionato da Kitploit

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

  E9Patch - Un Potente Riscrittore Binario Statico

E9Patch è un potente strumento di riscrittura binaria statica per binari ELF Linux x86_64. E9Patch è:

  • Scalabile: E9Patch può riscrivere in modo affidabile binari grandi/complessi inclusi browser web (di dimensioni >100MB).
  • Compatibile: Il binario riscritto è un sostituto diretto dell'originale, senza dipendenze aggiuntive.
  • Veloce: E9Patch può riscrivere la maggior parte dei binari in pochi secondi.
  • Basso Overhead: Sia in termini di prestazioni che di memoria.
  • Programmabile: E9Patch è progettato per essere facilmente integrato in altri progetti. Vedi la Guida per l'utente di E9Tool e la Guida per programmatori di E9Patch per maggiori informazioni.

La riscrittura binaria statica prende un binario in input (eseguibile ELF o oggetto condiviso) e genera un binario in output con una patch/modifica applicata. Il binario patchato può essere utilizzato come sostituto diretto dell'originale.

Release

I binari precompilati di E9Patch possono essere scaricati qui:

  • https://github.com/GJDuck/e9patch/releases

Build

Compilare E9Patch è molto semplice: basta eseguire lo script build.sh.

Questo compilerà automaticamente due strumenti:

  1. e9patch: il backend di riscrittura binaria; e
  2. e9tool: un frontend di disassemblaggio lineare per E9Patch.

Esempio di Utilizzo

E9Patch è utilizzabile tramite il frontend E9Tool.

Ad esempio, per aggiungere la strumentazione di stampa delle istruzioni a tutte le istruzioni xor in xterm, possiamo usare il seguente comando:

root@kitploit:~
    $ ./e9tool -M 'asm=/xor.*/' -P print xterm

Questo genererà una versione modificata di xterm scritta nel file a.out.

La versione modificata di xterm può essere eseguita normalmente, ma stamperà la stringa assembly di ogni istruzione xor eseguita su stderr:

root@kitploit:~
    $ ./a.out
    xorl %ebp, %ebp
    xorl %ebx, %ebx
    xorl %eax, %eax
    xorl %edx, %edx
    xorl %edi, %edi
    ...

Per un elenco completo delle opzioni e modalità supportate, vedi:

root@kitploit:~
    $ ./e9tool --help

Progetti

Alcuni altri progetti che utilizzano E9Patch includono:

  • RedFat: Un sistema di indurimento binario basato su puntatori low-fat.
  • E9AFL: Inserisce automaticamente la strumentazione AFL nei binari.
  • E9Syscall: Intercettazione delle system call tramite riscrittura binaria statica di libc.so.
  • Hopper: Generazione automatica di casi di test di fuzzing per librerie.
  • EnvFuzz: Fuzzing dell'ambiente del programma.
  • RFF: Fuzzing greybox per test di concorrenza.
  • AutoTrace: Tracciamento semplice basato su linee di sorgente.

Documentazione

E9Patch è uno strumento di basso livello progettato per essere integrabile in altri progetti. Per saperne di più, consulta la seguente documentazione:

  • Guida per programmatori di E9Patch
  • Guida per l'utente di E9Tool

Bug

I bug possono essere segnalati qui:

  • https://github.com/GJDuck/e9patch/issues

Versioni

La versione attuale di E9Patch è notevolmente migliorata rispetto al prototipo originale valutato nell'articolo PLDI'2020. In particolare:

  • La versione attuale implementa diverse nuove ottimizzazioni e può generare binari significativamente più veloci, a volte di un fattore 2x. Per abilitare le nuove ottimizzazioni, passa l'opzione -O2 a E9Tool.
  • Anche l'implementazione dell'ottimizzazione dello spazio Physical Page Grouping è stata migliorata.
  • Anche la copertura delle patch è stata leggermente migliorata.
  • Molte nuove funzionalità sono state implementate (vedi la documentazione).

Licenza

Questo software è stato rilasciato sotto la GNU Public License (GPL) Versione 3.

Alcuni file specifici sono rilasciati sotto licenza MIT (controlla il preambolo del file).

Pubblicazione

Per maggiori informazioni, consulta il nostro articolo PLDI'2020:

  • Gregory J. Duck, Xiang Gao, Abhik Roychoudhury, Binary Rewriting without Control Flow Recovery, Programming Language Design and Implementation (PLDI), 2020.
  • Presentazione PLDI'2020 su Youtube

Si prega di citare il nostro articolo come segue:

root@kitploit:~
    @inproceedings{e9patch,
        author = {Duck, Gregory J. and Gao, Xiang and Roychoudhury, Abhik},
        title = {Binary rewriting without control flow recovery},
        year = {2020},
        publisher = {Association for Computing Machinery},
        url = {https://doi.org/10.1145/3385412.3385972},
        doi = {10.1145/3385412.3385972},
        booktitle = {Programming Language Design and Implementation (PLDI)}
    }

Ringraziamenti

Questo lavoro è stato parzialmente supportato dal National Satellite of Excellence in Trustworthy Software Systems, finanziato dal National Research Foundation (NRF) Singapore nell'ambito del programma National Cybersecurity R&D (NCR).

Scarica lo strumento