
Plugin IDA per il rilevamento automatico di codice offuscato e appiattimento del flusso di controllo nei binari utilizzando analisi euristica e visualizzazione dell'albero dei dominatori.
Autore: mcdulltii
Rileva automaticamente codice offuscato e altre macchine a stati
Script per rilevare automaticamente codice offuscato e macchine a stati nei binari.
L'implementazione è basata su IDA 7.4+ (Python3). Dai un'occhiata ai seguenti articoli del blog per maggiori informazioni sull'implementazione per Binary Ninja:
I valori euristici vengono generati in base agli articoli del blog sopra citati e vengono ordinati (se eseguiti in modalità Tutte le funzioni) dall'alto verso il basso in base alla loro complessità euristica.
A causa della natura ricorsiva del tracciamento di un albero dei dominatori per ogni funzione trovata nel binario, l'implementazione e il sovraccarico di esecuzione sono costosi, anche se è stato implementato il threading.
Utilizzando PyQt per visualizzare il plugin, gli utenti possono personalizzare ulteriormente l'analisi della funzione euristica sul binario.
PyQt5
Copia la directory obfDetect e obfDetect.py nella directory dei plugin di IDA.
Quando IDA ha terminato con successo il caricamento di un binario, lo script stamperà il suo banner nella console IDC/Python.
Lo script può essere eseguito tramite la toolbar File come mostrato sotto. In alternativa, Ctrl-Shift-H.

I nomi delle funzioni nella tabella di output possono essere rinominati usando n, e aggiorneranno così i nomi delle funzioni di IDA specificati dal loro indirizzo di funzione
La casella di input del nome file di esportazione, quando cliccata, aprirà un pop-up di selezione file che può essere navigato per scegliere una posizione di salvataggio personalizzata
Esegui per avviare l'analisiNome file esportazione per selezionare la posizione di esportazione, e clicca sul pulsante Esporta per esportare la tabella in formato csv

