Un programme de logiciel est généralement écrit dans un langage de haut niveau tel que C ou Visual Basic. Ce code natif est ensuite compilé en code machine qui peut être exécuté sur un ordinateur. Les résultats de code compilé dans un fichier EXE Fichier le fichier résultant est dit être exécutable, ce qui signifie qu'il peut être exécuté sur un ordinateur. Inverser le processus et la conversion d'un fichier EXE retour à code source dans sa langue maternelle est un processus connu sous le nom "décompilation." Decompilers peuvent être un outil puissant pour les développeurs qui ont besoin de modifier les applications dont le code source d'origine a longtemps été perdu.