Un código fuente es un texto de un programa de ordenador escrito en un lenguaje de programación. El ordenador convierte automáticamente este texto, que es legible para las personas, en un texto legible para la máquina. Para poder deducir el código fuente de un software, se debe deshacer la traducción del lenguaje de máquina. Para ello se utiliza por ejemplo un decompilador, que es un programa de ordenador que a partir del código binario de la máquina devuelve un texto legible para las personas. Este proceso de traducción inversa del código binario en un código fuente legible por seres humanos se realiza automáticamente.
Si no se puede reconstruir el código binario por completo, se puede utilizar un desensamblador. Este programa convierte el lenguaje de máquina de codificación binaria en un lenguaje ensamblador comprensible para personas, que es a su vez analizado manualmente. En la mayoría de los casos, los programadores no son capaces de reconstruir el código fuente por completo, lo que en principio no es una desventaja, pues en la ingeniería inversa de un código se trata más bien de poder entender las ideas que se esconden detrás y menos de representar el código original completo. Incluso con códigos parciales es posible analizar el comportamiento del software o solventar fallos. Los desarrolladores de software utilizan sobre todo decompiladores y desensambladores.