是否有一个工具可以分析可执行文件并检测: - 使用的编程语言(编译器), - 使用的框架(Qt、Gtk、.Net、WxWidgets 等)、 - 其他有用的信息(压缩等)。
我知道有时很难区分编程语言(尤其是在 C 或 Pascal exe 中),但是可以区分使用的语言或编译器吗? (Delphi 生成 exe 的方式不同,例如 VB6 也是如此)。
这可能是可能的,例如。对 dll、标头等进行依赖性分析。
谢谢。
在 GNU 上,您可以使用多种工具来尝试猜测您想要的信息:
我猜windows平台上也有类似的工具。 Dumpbin.exe 类似于 nm,depends.exe 类似于 ldd iirc。
顺便说一句,java 通常是字节码编译的,而不是本机的。
我过去使用过(uni)PEInfo,但它没有提供你想要的信息。之后我使用了 Reflector,因为我知道我的 dll/exe 位于 .net
但是我认为没有软件可以做到这一点。
解决方法:您能做的最好的事情就是查看 exe 的字符串(例如使用进程资源管理器)并猜测自己。
在二进制文件查看器中打开可执行文件,并查找看起来像函数名称的字符串。这些字符串并不总是可用,但在某些情况下它们是存在的。例如,它们可用于解析 DLL 的链接。之后谷歌搜索这些字符串。他们有机会告诉你一些事情。
我认为没有可能的方法可以正确地做到这一点。也许可以检测到一些基本的编程语言,但没有人可以检测到所使用的框架。有数千个框架。