2012-07-16 72 views
2

是有一个工具,用于分析所述可执行并检测: - 使用的编程语言(编译) - 框架中使用(QT,GTK,.NET,wxWidgets的等), - 其他有用的信息(压缩等)。工具来分析可执行

我知道这是相当有时要告诉编程语言(特别是C或帕斯卡的EXE),但它可以告诉使用的语言或编译器? (Delphi生成exes的方式不同,例如VB6)。

它可能是可能的,例如。与依赖分析的dll,头等。

谢谢。

+0

你可以尝试检查魔术数字给你一个起点。 http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files – KingCronus 2012-07-16 08:26:01

+0

@KingCronus幻数对Windows可执行文件几乎总是['PE'](http://en.wikipedia.org/wiki/Portable_Executable )。 – CodeCaster 2012-07-16 09:12:54

+0

@CodeCaster这很有趣我没有意识到这一点! – KingCronus 2012-07-16 10:06:14

回答

2

我已经在过去(UNI)PEInfo使用,但它并没有给你想要的信息。之后,我用反射器,因为我知道我的DLL/exe文件.net

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

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

0

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

1

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

2

在GNU,你可以使用多种工具来尝试猜测你想要的informartion:

  • LDD到RESOLV链接到二进制
  • 纳米共享库列出进口符号/由二进制
  • exporeted
  • 字符串,它可以转储嵌入二进制
  • objdump的字符串可能是有用的太
  • 十六进制编辑器可以是有用的。

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

顺便说一句,Java是经常字节码编译,不是本地人。