Un codice sorgente è il testo di un programma informatico scritto in un linguaggio di programmazione. Il computer converte automaticamente questo testo leggibile dall’uomo in un linguaggio macchina. Per accedere al codice sorgente di un software la traduzione del linguaggio macchina deve quindi essere invertita. A tale scopo si usa, ad esempio, un decompilatore. Si tratta di un programma per computer che dal codice binario genera un codice sorgente leggibile dall’uomo. Questo processo di traduzione inversa avviene automaticamente.
Se il codice binario non può essere ricostruito del tutto, è possibile utilizzare un disassemblatore. Questo programma converte il linguaggio macchina codificato e binario in un linguaggio assembly leggibile dall’uomo, che viene poi analizzato manualmente. Nella maggior parte dei casi i programmatori non riescono a ricostruire il codice sorgente completo. In linea di principio non è una cosa negativa, dato che lo scopo del reverse engineering di un codice è soprattutto la comprensione dell’idea alla sua base più che la ricostruzione completa del codice originale. Anche i codici parziali possono essere utilizzati per eseguire analisi comportamentali del software o per correggere errori. I decompilatori e disassemblatori sono utilizzati soprattutto dagli sviluppatori di software.