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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Ponce — Vincitore del concorso plugin IDA 2016! Esecuzione Simbolica a un clic di distanza! | Kitploit
Strumenti/GitHubGitHub/illera88/ponce
Reverse EngineeringDebuggerAnalisi MalwareCTFAnalisi di Binari
GitHubillera88/ponce

Ponce

Vincitore del concorso plugin IDA 2016! Esecuzione Simbolica a un clic di distanza!

Vedi Repository
1.6k85751 anno 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
Sito web

Build for Windows Build for OSX Build for Linux

Ponce

Ponce (pronunciato [ 'poN θe ] pon-they ) è un plugin per IDA Pro che fornisce agli utenti la possibilità di eseguire l'analisi di taint e l'esecuzione simbolica su binari in modo facile e intuitivo. Con Ponce sei a un clic di distanza da tutta la potenza dell'esecuzione simbolica all'avanguardia. Interamente scritto in C/C++.

Perché?

L'esecuzione simbolica non è un concetto nuovo nella comunità della sicurezza. Esiste da molti anni, ma solo intorno al 2015 progetti open source come Triton e Angr sono stati creati per affrontare questa esigenza. Nonostante la disponibilità di questi progetti, spesso gli utenti finali devono implementare da soli casi d'uso specifici.

Abbiamo affrontato queste esigenze creando Ponce, un plugin per IDA che implementa l'esecuzione simbolica e l'analisi di taint all'interno del disassemblatore/debugger più utilizzato dai reverse engineer.

Installazione

Ponce funziona con binari x86 e x64 in qualsiasi versione di IDA >= 7.0. Installare il plugin è semplice come copiare i file appropriati dalle ultime build nella cartella plugins\ nella directory di installazione di IDA.

Assicurati di utilizzare il binario di Ponce compilato per la tua versione di IDA per evitare incompatibilità.

Supporto OS

Ponce funziona nativamente su Windows, Linux e OSX!

Casi d'uso

  • Sviluppo di exploit: Ponce può aiutarti a creare un exploit in modo molto più efficiente, poiché lo sviluppatore di exploit può vedere facilmente quali parti della memoria e quali registri controlli, nonché gli indirizzi possibili che possono essere sfruttati come gadget ROP.
  • Analisi malware: Un altro uso di Ponce è legato al codice malware. Analizzare i comandi supportati da una particolare famiglia di malware è facilmente determinato simbolizzando un semplice comando noto e negando tutte le condizioni in cui il comando viene verificato.
  • Reverse engineering di protocolli: Uno degli usi più interessanti di Ponce è la possibilità di riconoscere magic number, header o persino interi protocolli richiesti per l'input utente controllato. Ad esempio, Ponce può aiutarti a elencare tutti gli argomenti accettati per un dato binario a riga di comando o estrarre il formato file richiesto per un parser di file specifico.
  • CTF: Ponce accelera il processo di reverse engineering dei binari durante i CTF. Poiché Ponce è completamente integrato in IDA, non devi preoccuparti dei tempi di configurazione. È pronto per essere utilizzato!

Il plugin verrà eseguito automaticamente, guidandoti attraverso la configurazione iniziale la prima volta che viene eseguito. La configurazione verrà salvata in un file di configurazione, così non dovrai più preoccuparti della finestra di configurazione.

Modalità d'uso

  • Motore di taint: Questo motore viene utilizzato per determinare, ad ogni passo dell'esecuzione del binario, quali parti della memoria e dei registri sono controllabili dall'input dell'utente.
  • Motore simbolico: Questo motore mantiene uno stato simbolico dei registri e di parte della memoria ad ogni passo nel percorso di esecuzione di un binario.

Esempi

Nega e inietta una condizione

Nel prossimo GIF possiamo vedere l'uso del taint automatico e come possiamo negare una condizione e iniettarla in memoria durante il debug:

  • Selezioniamo il motore simbolico e impostiamo l'opzione per simbolizzare argv.
  • Identifichiamo la condizione che deve essere soddisfatta per vincere il crackMe.
  • Negliamo e iniettiamo la soluzione ogni volta che un byte del nostro input viene confrontato con la chiave.
  • Finalmente otteniamo la chiave elite che è stata iniettata in memoria e quindi raggiungiamo il codice Win.

Il codice sorgente del crackme può essere trovato qui

crackmexor_negate_and_inject

Utilizzo del motore di taint per tracciare l'input controllato dall'utente

In questo esempio possiamo vedere l'uso del motore di taint con cmake. Stiamo:

  • Passando un file come argomento a cmake per fargli analizzare il file.
  • Selezioniamo che vogliamo usare il motore di taint
  • Taintiamo il buffer che ```fread()```` legge dal file.
  • Riprendiamo l'esecuzione sotto il controllo del debugger per vedere dove viene spostato l'input taintato.
  • Ponce rinominerà le funzioni taintate. Queste sono le funzioni su cui l'utente ha in qualche modo influenza, non le funzioni semplicemente eseguite.

cmake_tainting_fread

Usa Nega, Inietta e Ripristina

Nel prossimo esempio stiamo usando il motore di snapshot:

  • Passando un file come argomento.
  • Selezioniamo che vogliamo usare il motore simbolico.
  • Taintiamo il buffer che ```fread()```` legge dal file.
  • Creiamo uno snapshot nella funzione che analizza il buffer letto dal file.
  • Quando una condizione viene valutata, la neghiamo, iniettiamo la soluzione in memoria e ripristiniamo lo snapshot con essa.
  • La soluzione sarà 'valida', quindi soddisfaremo le condizioni esistenti.

fread_test_negate_restore_inject Il codice sorgente dell'esempio può essere trovato qui

Utilizzo

In questa sezione elencheremo le diverse opzioni di Ponce e le scorciatoie da tastiera:

  • Accedi alla configurazione e alle finestre di taint/simbolico: Modifica > Ponce > Mostra Config (Ctrl+Maiusc+P e Ctrl+Alt+T)

2016-09-15 11_39_08-configuracion

  • Abilita/Disabilita tracciamento Ponce (Ctrl+Maiusc+E)

2016-09-15 11_31_34-

  • Simbolizza/tainta un registro (Ctrl+Maiusc+R)

2016-09-15 11_32_32-

  • Simbolizza/tainta memoria. Può essere fatto dalla Vista IDA o dalla Vista Hex (Ctrl+Maiusc+M)

2016-09-15 11_32_52-ida - testproject idb testproject exe c__users_default default-pc_documents_vi2016-09-15 11_33_10-taint _ symbolize memory range

Scarica lo strumento