Inversione della crittografia analizzando eseguibile

2

Ho un programma che legge i dati da un file, li analizza / organizza e li sputa come XML crittografato. L'applicazione può anche prendere un XML crittografato e sputare il file originale. Il mio obiettivo a questo punto sarebbe quello di accedere all'XML in chiaro (non sono interessato al file originale di testo non formattato perché non è organizzato in XML)

Non ho idea di cosa sia ancora la crittografia, sebbene un tizio su un forum abbia detto che era AES-128 (non è sicuro di come sia arrivato a quella conclusione).

Ho eseguito PEiD con il plugin KANAL sull'applicazione, non rileva alcuna firma di crittografia.

Dato che ho accesso al programma e qualche esperienza passata con lo sfruttamento di BO su WinXP con una certa conoscenza di ASM, ho pensato di provare usando un debugger.

In poche parole, quali sono i passaggi generali che dovrei seguire per capirlo? In questa situazione sarebbe meglio iniziare a cercare la chiave di crittografia stessa o trovare un modo per utilizzare le funzioni di crittografia / decrittografia dell'applicazione a mio vantaggio?

EDIT: Target è un eseguibile di Windows

    
posta Juicy 17.06.2015 - 23:47
fonte

1 risposta

4

Reverse engineering a Windows Binary

Ottieni un disassemblatore

Vorrei iniziare scaricando la versione di valutazione di IDA . Perché è la versione di valutazione che ha un pop-up e non ti consente di salvare, ma dovrebbe essere abbastanza buono per iniziare. Nota: questo non funzionerà con un binario a 64 bit. Vai su questa pagina per i disassemblatori alternativi se necessario .

Ispeziona le stringhe

Prima di esaminare il codice attuale, inizia ispezionando le stringhe. IDA ha una scheda (o un'opzione nel menu "visualizzazioni") che elenca tutte le stringhe trovate nel file binario. Spesso, le librerie di crittografia accettano una stringa come "SHA-256" per indicare che tipo di algoritmo utilizzare.

Inoltre, cerca tutto ciò che potrebbe essere una chiave. Il tipo di chiave utilizzata dipende dall'algoritmo, quindi potresti cercare una password, passphrase o non una stringa ma un blocco di dati.

Se è possibile trovare il nome della routine di crittografia come stringa, è possibile incrociare il riferimento (la chiave x in IDA) alla funzione di crittografia originale. Se riesci a trovare la funzione di encrytion, prendi nota dell'indirizzo.

Analisi dinamica

Alcuni dei Disassemblatori menzionati sopra (incluso IDA) includono anche un debugger. Personalmente mi piace OllyDbg . Impostare un punto di interruzione nella routine di crittografia che si finanzia in alto e quindi eseguire il programma. Ispeziona la memoria e prova a trovare la chiave di crittografia.

Puoi anche usare il tuo debugger per scaricare la memoria del programma. Dopo aver scaricato la memoria di un programma live, puoi utilizzare un'utilità come strings in sysinternals per tentare di individuare un tasto.

    
risposta data 18.06.2015 - 00:14
fonte

Leggi altre domande sui tag