gpt4 book ai didi

programming-languages - 是否有可能知道 exe 文件是用什么语言编写的?

转载 作者:行者123 更新时间:2023-12-03 23:43:00 24 4
gpt4 key购买 nike

我有一个 exe 文件,我用 Ida 反编译了它。有人告诉我这个程序是用 Delphi 编码的,所以我试图用 DeDe 反编译,但它失败了,没有输出也没有错误。我想知道是否有可能通过尝试专门为编程语言编写的不同反编译器来找到用于创建 exe 的语言?或者他们会因为其他原因失败吗?

最佳答案

在许多情况下,可以识别用于编译代码的编译器,并从中识别出原始语言。

大多数语言实现都包含某种运行时库来实现语言的各种高级操作。例如,C 有 CRT 来实现文件 I/O 操作( fopenfread 等),Delphi 有编译器帮助程序 string类型(连接、赋值等),ADA 具有各种低级功能以确保语言安全等。通过比较程序代码和候选编译器的运行时库,您可能会找到匹配项。

IDA 在 FLIRT technology 中实现了这种方法.通过使用签名,IDA 能够确定大多数用于 DOS 和 Windows 的主要编译器。在 Linux 上这有点困难,因为它没有单独的编译器二进制文件提供者,因此必须为每个发行版制作签名。

但是,即使不求助于运行时库代码,也可以识别所使用的编译器。许多编译器使用非常不同的习语来表示各种操作。例如,我 was able to guess毒曲病毒使用的编译器是Visual C++,后来的confirmed .

关于programming-languages - 是否有可能知道 exe 文件是用什么语言编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18595558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com