lke*_*ler 14 windows delphi executable programming-languages reverse-engineering
我有一个下载并安装的桌面程序.它从.exe文件运行.
是否有一些来自.exe文件的方法来告诉用什么编程语言来编写程序?
有没有工具可以帮助解决这个问题?
可以确定哪些语言,哪些语言不能?
好的,这是我正在寻找的两种东西:
这种"IsDelphi"节目由布鲁斯·麦基会发现德尔福,德尔福建成面向.NET或C++ Builder是你的硬盘上的所有应用程序.
我理解你的好奇心。
您可以通过查找链接器添加的几个特定资源来识别 Delphi 和 C++ Builder 应用程序及其 SKU。特别是 RC Data\DVCLAL 和 RC DATA\PACKAGEINFO。XN 资源编辑器变得更加容易,但它可能会因压缩的 EXE 而阻塞。
EXE 压缩器使事情变得有点复杂。他们可以隐藏或扰乱资源的内容。用UPX压缩的程序很容易用十六进制编辑器识别,因为 PE 头中的前 2 部分被命名为 UPX0 和 UPX1。您可以使用该应用程序来解压缩这些文件。
用.Net 编译的应用程序并不难检测。最近版本的 Delphi 甚至包含 IsAssembly 函数,或者您可以在 PE 标头中进行一些探索。查看 IsDelphi 中的 IsManaged 函数。
判断使用的是哪种 .Net 语言比较困难。默认情况下,VB.Net 包含对 Microsoft.VisualBasic 的引用,VCL.Net 应用程序包含 Borland 特定的引用。然而,VCL.Net 已不复存在,取而代之的是 Delphi Prism,您可以向任何托管语言添加对 VB 程序集的引用。
我还没有看过一些使用签名来识别编译器的应用程序,所以我不知道它们的工作效果如何。
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |