Il Diffing è una delle tecniche di hacking più semplici da applicare.
Consiste nel confrontare un programma, una libreria o un altro file prima e dopo una singola serie di operazioni. Viene utilizzato spesso nella ricerca della sicurezza, talmente spesso da essere ritenuto un processo a parte. Può essere svolto a livello del disco, di un file o di un database per scoprire quali elementi sono stati modificati; il livello dei file indica i byte, il livello del database specifica i record. In questo modo, è possibile vedere come manipolare i dati all’esterno dell’applicazione per la quale essi sono stati destinati.
Perché praticare il Diffing?
Perché è utile vedere le differenza in un file o in memoria prima e dopo una certa azione? Un motivo è determinare la parte dei file o la posizione in memoria dell’elemento di interesse; per esempio, se un utente curioso possiede un file che ritiene contenga una password per un’applicazione, ma il file sembra essere in formato binario, probabilmente egli desidera sapere quale parte del file rappresenta la password. Per scoprirlo, egli deve salvare una copia del file per confrontarla, cambiare la password e confrontare i due file; una delle differenze fra i due file, in quanto potrebbe essere numerose, rappresenta la password. Queste informazioni sono utili quando un utente curioso vuole modificare direttamente un file senza passare per l’applicazione.
Gli strumenti per il Diffing.
Basandosi sul confronto di files, il diffing, per essere applicato, necessità dell’utilizzo di due categorie di software. Comparatori ed Editor Esadecimali.
Comparatori
Non c’è bisogno di ricorrere a chissà quale categoria di software o siti specializzati per effettuare la comparazione di files alla ricerca del byte ricercato. Magari, pur non sapendolo, uno dei migliori strumenti di comparazione files attualmente in circolazione è già installato nel vostro PC!
fc è uno strumento di comparazione file, per molti anni incluso in Microsoft DOS e, successivamente, trasportato in Windows X/NT/2000/XP. Fornisce molte funzionalità le quali possono essere recuperate grazie al comando help.
Editor Esadecimali
Gli editor esadecimali disponibili sono numerosi. Come in tutte le categorie di sofware, vi sono quelli freeware e quelli commerciali, quelli ottimi e quelli pessimi; poiché è una questione di gusti personali, consiglio di provarne numerosi e diversi finchè non si trova quello più adatto. Di seguito propongo una lista degli ultimi due software che ho provato.
Hackman è un editor esadecimale freeware, basato su Microsoft Windows, che possiede un elenco di funzioni di tutto rispetto: ricerca, taglia e incolla, una calcolatrice esadecimale, un disassembler e molte altre cose. Un difetto da segnalare è sicuramente la confusione che s’incontra aprendo il programma per la prima volta.
Può essere scaricato al link http://www.technologismiki.com/en/index-h.html
[N] Curses Hexedit è un altro programma freeware su licenza GNU Public License. Ne esistono versioni disponibili per DOS e tutti i principali sistemi operativi UNIX. Come detto, basandosi sull’interfaccia che ci si può aspettare da DOS, l’interfaccia è molto spartana. Come per l’interfaccia, anche le funzionalità da esso offerte sono spartane. Se da un lato non eccelle in funzionalità, Curses Hexedit richiede pochissime risorse e può essere utilizzato su diverse piattaforme.
[N] Curses Hexedit si trova al link http://www.rogoyski.com/adam/programs/hexedit/
A dirla tutta 30 post di due paginate l'uno non basterebbero a spiegare come il diffing deve essere applicato e perchè. Tuttavia penso di scrivere al massimo altri 2 o 3 post relativi a questa tecnica. Restando sempre dell'idea che la pratica è meglio della teoria, domani bloggherò con esempi reali di diffing con i strumenti sopra citati.