2016-03-06 82 views
0

假设我有一个“Hello World”程序写在阿达:如何从Ada exe文件获取源代码?

with Ada.Text_IO; -- Bibliothèque 

-- Déclaration de la procédure "Hello" 
procedure Hello is 
begin 
    -- Imprimer "Hello, world!" à l'écran 
    Ada.Text_IO.Put_Line("Hello, world!"); 
end Hello; 

当我完成编译过程中,我得到的可执行文件,我怎么能扭转这种找回源代码

+1

请参阅http://coding.derkeiler.com/Archive/C_CPP/comp.lang.c/2012-06/msg00383.html了解一些一般性意见反编译器,特别是我喜欢这样的评论:“你不能解开一个鸡蛋”。理论上,可以将EXE反编译成Ada代码,但它不会看到像原文一样兴奋,看起来不像任何真人会写的Ada。实际上,Google搜索并没有启动任何生成Ada的现有反编译器,尽管我看到一个说明Ada反编译器一次存在的书报价。 – ajb

回答

6

你?对于我所知道的任何已编译的编程语言来说,都不是。

+0

你可以(在某种程度上)用编译到JVM的Java和(我怀疑)用Ada编译到R1000来完成它。 –

+0

Java未编译为机器码,而是保存了所有函数和变量名称的字节码。它使恢复源代码成为可能。您可以将Ada生成的二进制文件反编译为汇编列表,但不能反编译为原始源代码。 –