给定应用程序的可执行文件(Windows,Linux或Mac OS X),是否有办法找出用于编写该应用程序的编程语言?如何从中编译可执行文件的语言?
0
A
回答
0
在一般情况下,我会认为不是。然而,在特定情况下,这可能是可能的。
+0
您可以给_general_个案提供一个不合格的** no **,因为我现在可以设计两种简单的语言,并为编译器生成精确的每种语言中“相似”程序的相同可执行文件。 –
0
除非有一些与它相关的特定元数据或某个与该exe相关的语言特定功能,否则极不可能。可执行文件(通常)是针对特定平台或中间代码编译的代码,它们将针对特定语言进行即时编译。在JIT代码的情况下,您可能能够确定其.NET或其他语言是否产生中间代码,但大多数情况下这是一项相当困难和不合理的任务。我可能是错的,但根据我的理解,这是不可能的。
0
我不妨在最后回答。
即使给定编程语言的编译器决定在数据段中抛出一些元数据(如符号),并带有诸如“从Joe's C compiler版本4.1.104编译”之类的消息,没有任何东西可以阻止我从编写一个Go编译器,将相同的消息写入数据部分中的相同位置,以诱骗不知情的人查看可执行文件。
更不用说,可以为任何给定的语言编写无数的编译器。
假设我们看一个只包含几个字节的可执行文件......只不过是递增一个寄存器罢了。数百种不同的语言允许编译器理论上可以优化为无元数据的单节可执行文件。
答案根本不是。
TL; DR:你总是可以欺骗。
相关问题
- 1. 从.pro编译可执行文件
- 2. 从编译的可执行文件获取编译器选项?
- 3. 如何使用汇编语言编写可执行文件?(在emacs中)
- 4. 如何编译Mac的可执行文件,但从PC?
- 5. 如何将C文件编译为可执行文件(.exe)?
- 6. 如何用可可编程语言运行.command文件?
- 7. SqlCipher编译为Win可执行文件
- 8. 如何为该语言的某种语言编写编译器?
- 9. 如何在可执行文件c#中包含语言文件夹?
- 10. 如何将.py编译为Debian的可执行文件
- 11. 如何确定可执行文件编译的平台?
- 12. 以编译语言编写的插件
- 13. 如何反编译一个ELF 32位LSB可执行文件?
- 14. 如何使用ghc编译GUI可执行文件?
- 15. 如何使用C++编译跨平台可执行文件
- 16. 我正在编译.c文件并获取可执行文件。如何在Windows 8中执行exe文件
- 17. 生产可执行文件在Linux(相对于执行编译)
- 18. 类,静态方法或实例方法 - 编译语言中的内存消耗和可执行文件大小?
- 19. 类语言::翻译而执行
- 20. ,可执行编译在编译时
- 21. 翻译PHP语言文件
- 22. 如何从ANT执行JAXB编译器
- 23. 如何从Windows g ++ cygwin交叉编译获取linux可执行文件
- 24. CLR语言优化。语言编译器VS JIT编译器
- 25. 更改BJam中的gcc编译器可执行文件名
- 26. 追踪在visual studio中编译的可执行文件
- 27. 在可执行文件中编译的单位路径
- 28. 从Snow Leopard的命令行编译汇编语言文件时,应该使用哪个编译器?
- 29. 如何在Ubuntu下编译SR语言
- 30. 哪些类型的可执行文件可以反编译?
可能的重复 - http://stackoverflow.com/questions/1704202/determine-source-language-from-a-binary/1704449#1704449。在大多数情况下,将会有“独特”的特征,但它不会是微不足道的 - 例如没有用语言,编译器,版本等标记的标准元数据头。 – StuartLC