此條目需要补充更多来源。 (2013年8月8日) |
反編譯器(英語:Decompiler)的功能與編譯器相反。顧名思義,就是將已編譯好的汇编语言還原到未編譯的狀態,也就是找出程序的源代码。一種反编译器通常只能反編譯1~2種程式語言,由于编译过程是单向的,反编译器通常无法完美重现原始源代码。它们通常生成混淆且难读的代码。[1]
反编译是利用反编译器将可执行代码转换为高级、人类可读格式的过程。该过程通常用于逆向工程,例如恢复丢失的源代码。反编译任务非常具有挑战性,因为在编译过程中会丢失变量名、注释和代码结构等关键信息。包含详细元数据的可执行文件,如Java和.NET所用的,更容易逆向工程,因为它们通常保留类结构、方法签名和调试信息。其他没有这些信息的可执行文件更难转化为源代码。
一些软件开发者可能会对可执行程序的部分内容进行混淆或加密,使得反编译后的代码更难理解。这些技术常被用来阻止逆向工程。
參見
编辑参考文献
编辑- ^ Mike Van Emmerik. Why Decompilation. Program-transformation.org. 2005-04-29 [2010-09-15]. (原始内容存档于2010-09-22) (美国英语).
| 这是一篇電腦科學小作品。您可以通过编辑或修订扩充其内容。 |