分析可执行文件的工具
Tool to analyze the executable
是否有一个工具可以分析可执行文件并检测:-所使用的编程语言(编译器),-使用的框架(Qt、Gtk、.Net、WxWidgets等),-其他有用信息(压缩等)。
我知道有时很难说出编程语言(尤其是在C或Pascal exes中),但有可能说出使用的语言或编译器?(Delphi生成exe的方式不同,例如VB6)。
这可能是可能的,例如,通过对dll、标头等的依赖性分析。
谢谢。
在GNU上,您可以使用几种工具来猜测您想要的信息:
- ldd到resolv链接到二进制文件的共享库
- nm列出二进制文件导入/导出的符号
- 字符串,可以转储二进制文件中嵌入的字符串
- objdump也很有用
- 十六进制编辑器也很有用
我想窗户上也有类似的工具。Dumpbin.exe类似于nm,dependens.exe类似于ldd-iirc。
顺便说一句,java通常是字节码编译的,而不是原生的。
我在过去使用过(uni)PEInfo,但它没有提供您想要的信息。在那之后,我使用反射器,因为我知道我的dll/exe在哪里.net
但是我认为没有软件可以做到这一点。
解决方法:你能做的最好的事情就是查看exe的字符串(例如使用Process explorer)并猜测自己。
在二进制文件查看器中打开可执行文件,查找类似函数名称的字符串。这些字符串并不总是可用的,但在某些情况下它们是存在的。例如,它们可以用于解析带有DLL的链接。然后用谷歌搜索那些字符串。他们有可能会告诉你一些事情。
我认为没有一种可能的方法可以正确地做到这一点。也许可以检测到一些基本的编程语言,但没有人能够检测到所使用的框架。有成千上万的框架。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 分析可执行文件的工具
- Linaro工具链-ARM可执行文件
- Xcode 4中的命令行工具构建版本,在构建可执行文件中包含图像存在问题
- 更改可执行文件的图标,而无需重新编译或重新链接,并使用 Microsoft SDK 中的命令行工具