Descompilar software significa tomar ese software y cambiar el lenguaje en el que está escrito a algo que sea más comprensible para los humanos. Para ello, toma el idioma del programa original y lo cambia a un código fuente que se puede entender mejor. Si se hace correctamente, cuando una persona intenta descompilar software, puede crear un programa que actúe de manera muy similar, si no exactamente igual, al software original.
Hay muchos programas que se pueden utilizar para descompilar software. Algunos de estos programas tienen usos legítimos y otros no. Cabe señalar que cualquier persona que intente descompilar software con fines ilegales podría estar violando el robo de propiedad intelectual, que es punible con leyes penales en muchos países.
De hecho, hacer copias pirateadas de software, o hacer un producto que tenga la misma función que el software original, puede ser la razón más común para descompilar software. Esto se debe a que es posible utilizar un descompilador de software para despojar al software de su protección anti-copia. Por lo tanto, cualquiera que pueda descompilar software con éxito de esta manera tiene una capacidad ilimitada para hacer copias del programa.
Si bien a muchas empresas les gustaría que los programas informáticos que descompilan software estén prohibidos solo por esa razón, también existen algunos usos legítimos para la descompilación de software. Estos incluyen encontrar errores en el programa, encontrar malware y verificar el código. Además, el uso de un programa para descompilar software puede actuar como una ayuda de aprendizaje para los estudiantes que estudian programación. Estas instancias pueden ser razones muy válidas para descompilar software.
A menudo, un descompilador puede ser una herramienta útil para aquellos que están tratando con software de código abierto, que pueden querer agregar características o valor a un determinado programa. En este caso, un descompilador puede ayudar sustancialmente en el progreso hacia la reescritura o la adición al programa. Sin embargo, esto es muy diferente a descompilar un programa de un importante fabricante de software, la mayoría de los cuales están protegidos por acuerdos de licencia y código anti-copia.
Cabe señalar que descompilar software no significa simplemente desensamblar un programa, aunque el nombre puede sugerir que es lo único que se está haciendo. La parte de traducción de la descompilación también es muy importante. A menudo, una vez que se traduce, se vuelve a compilar para ver si se han obtenido los resultados deseados. De lo contrario, es posible que sea necesario realizar más trabajos.