最近,我们在工作场所偶然发现了一个非常古老的二进制文件,该文件源自未知的旧计算机。然而,为了运行这个二进制文件,我们需要获取一些本地资源,并希望获得有关该二进制文件的本地附加文档。谈论办公室群众......现在我们已经使用“dumpelf”二进制文件来提取有关它的任何类型的信息。根据这些信息以及我们的编程实践,我们假设二进制文件是针对操作系统编译的,作为操作系统vxworks 5.3.1
的交叉编译(我们在这里讨论真正的遗产!)Solaris 2.6
gcc version 2.95
我已经说过我坚信这是不可能的,但希望我是错的。如果无法检索名称,我们可以使用其他属性(例如 IP 地址、NIC 的 MAC 地址、用户名、计算机型号等)来缩小搜索范围。
感谢您接下来的努力
编辑:strings
命令已经建议并执行,但没有给出指示性输出。
答案1
你应该运行strings
你的程序:
strings /path/to/binary
这会将(默认情况下)连续 4 个或更多可打印字符的所有字符串打印到您的终端。其中很多都是垃圾,但是如果主机名实际上位于二进制文件中的某个位置,这应该可以告诉您。
我同意你的观点,它不太可能包含编译主机的 MAC 地址或主机名等内容;但是,如果二进制文件未被剥离(即包含调试符号),它可能仍包含编译源的路径名。这可能会给您一些关于它最初是在哪个环境中构建的线索。