反編譯器

反編譯器（）的功能與編譯器相反。顧名思義，就是將已編譯好的汇编语言還原到未編譯的狀態，也就是找出程序的源代码。一種反编译器通常只能反編譯1~2種程式語言，由于编译过程是单向的，反编译器通常无法完美重现原始源代码。它们通常生成混淆且难读的代码。

反编译是利用反编译器将可执行代码转换为高级、人类可读格式的过程。该过程通常用于逆向工程，例如恢复丢失的源代码。反编译任务非常具有挑战性，因为在编译过程中会丢失变量名、注释和代码结构等关键信息。包含详细元数据的可执行文件，如Java和.NET所用的，更容易逆向工程，因为它们通常保留类结构、方法签名和调试信息。其他没有这些信息的可执行文件更难转化为源代码。

一些软件开发者可能会对可执行程序的部分内容进行混淆或加密，使得反编译后的代码更难理解。这些技术常被用来阻止逆向工程。

 參見 
停机问题
反汇编器
逆向工程
Ghidra

参考文献

Category:编译器软件