分析可执行文件的工具

时间:2012-07-16 08:23:26

标签: c# java c++ compiler-construction pascal

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

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

可能是例如。对dll,header等的依赖性分析。

感谢。

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

我猜窗户平台上有类似的工具。 Dumpbin.exe类似于nm,并且依赖于ldd iirc。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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