给定一个文件,我想检查这是否是一个DLL或共享对象(Linux)或一个dylib(Mac OS X中),或不同的东西。我的主要兴趣是区分可执行文件和DLL在Linux和Mac OS X的窗口,扩展应该够了我的问题。

我已经检查了幻数技术不工作Linux作为可执行文件和共享对象都具有相同的数目。

有帮助吗?

解决方案

在UNIX(Linux和Mac OS X)命令file知道如何识别文件类型。

man file告诉你用来做这个“神奇”的信息,特别是,与该信息的文件是可以找到。

man 5 magic详细介绍了该文件,也应该告诉你它生活的地方。你可以在那里一看,拉东西你需要它。从file的源极和/或只是婴儿床代码。

更新:结果 请注意,在Linux上的文件可能是的两个的可执行文件,并在同一时间共享库。结果 一个例子是/lib/libc.so.6(其可被执行的共享库)。结果 又如:与-pie标志构建的任何可执行可以被用作一个共享库。请参见的详细信息该答案。

其他提示

使用file工具(Linux和Mac OS)。

写一个程序,尝试加载DLL - 如果它成功了,它是一个:)

编辑:确定这还不如可执行文件以及成功: - /

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top