¿Qué es un descompilador? ¿Cómo funciona?

Entonces, ¿es realmente un descompilador algo que proporciona la fuente de un código compilado / interpretado? Porque para mí eso suena imposible. ¿Cómo obtendría los nombres de las funciones, variables, clases, etc. si se compila? ¿O estoy malinterpretando la definición? ¿Como funciona? ¿Y cuál es el director general detrás de hacer uno?

Respuestas a la pregunta(4)

Su respuesta a la pregunta