2

是否有工具可以分析可执行文件并检测: - 使用的编程语言(编译器), - 使用的框架(Qt、Gtk、.Net、WxWidgets 等), - 其他有用的信息(压缩等)。

我知道有时很难说出编程语言(尤其是在 C 或 Pascal exe 中),但是可以说出使用的语言或编译器吗?(Delphi 生成 exe 的方式不同,例如 VB6)。

这可能是可能的,例如。对 dll、头文件等进行依赖分析。

谢谢。

4

4 回答 4

3

在 GNU 上,您可以使用多种工具来尝试猜测您想要的信息:

  • ldd 解析链接到二进制文件的共享库
  • nm 列出由二进制文件导入/导出的符号
  • 字符串,它可以转储嵌入在二进制文件中的字符串
  • objdump 也很有用
  • 十六进制编辑器也很有用。

我猜windows平台上有类似的工具。Dumpbin.exe 类似于 nm,depends.exe 类似于 ldd iirc。

顺便说一句,java 通常是编译的字节码,而不是本机的。

于 2012-07-16T09:03:06.033 回答
2

我过去曾使用过(uni)PEInfo,但它没有提供您想要的信息。之后我使用了反射器,因为我知道我的 dll/exe 在哪里 .net

我认为没有软件可以做到这一点

解决方法:您可以做的最好的事情是查看 exe 的字符串(例如使用 Process explorer)并自己猜测。

于 2012-07-16T08:36:39.710 回答
1

在二进制文件查看器中打开您的可执行文件并查找看起来像函数名称的字符串。这些字符串并不总是可用,但在某些情况下它们是存在的。例如,它们可用于解析与 DLL 的链接。之后谷歌这些字符串。他们有可能会告诉你一些事情。

于 2012-07-16T08:44:04.210 回答
0

我不认为有一种可能的方法来正确地做到这一点。也许可以检测到一些基本的编程语言,但没有人可以检测到使用的框架。有成千上万的框架。

于 2012-07-16T08:35:28.700 回答