首页 > 解决方案 > 如何在 PC 上打开 Linux .bin 文件?

问题描述

我在这个问题上找到的所有内容都是关于使用 C++ 或 Python 等编程语言打开/读取 .bin 文件。我有基本的 C++ 知识,但对 Python 一无所知。

我的 Windows 10 PC 上有一个来自 Linux 计算机的 .bin。我想用我的电脑来查看那个 .bin 文件的内容,这样我就可以理解它在 Linux 电脑上使用时的作用。

当我打开 .bin 文件时,我得到了很多奇怪的 NULL 字符,显然是因为文件在 1 和 0 中。我需要以人类可读的方式查看 .bin 文件的内容。

标签: windowsbin

解决方案


如何在 [Windows] PC 上打开 Linux .bin 文件?

你不打开它。

您可能会在一些二进制编辑器中检查该文件(例如,一些十六进制编辑器)。

但是你可以在你的 PC 上安装一个Linux 发行版(然后在你的 Linux 系统上运行那个 Linux 可执行文件)。

您应该以其他方式找出它是什么类型的文件。也许向您提供该文件的人对此了解更多。后缀说明.bin不了多少。

如果该文件是二进制可执行文件,它可能没有任何.bin后缀(至少,Linux 上的约定是没有任何文件路径扩展名)。当然,可执行文件具有特定于操作系统的格式,因此只能在它们所针对的操作系统上运行。在 Linux 系统上,可执行文件通常具有ELF格式(因此它们的前四个字节是“幻数”:)并且0x7F 'E' 'L' 'F'通常是动态链接的(因此您需要一些共享库,也许需要一些libc.so,例如GNU C 库来运行它们)。在 Windows 上,可执行文件通常具有PE​​ 格式(并且依赖于一些DLL)。

如果该文件是一些二进制数据,您需要了解(否则)它遵循的文件格式。

如果您想在 Windows 上运行Linux 可执行文件,这是一个非常不同的问题。也许您可以尝试使用WSL (或者您可以在您的计算机上安装一些Linux 发行版)。但是,一般来说,您不应该相信在您的计算机上运行任何随机可执行文件(来自您不信任的来源)。当心恶意软件

传统上,大多数 Linux 软件都是免费软件。如果您的文件来自免费软件,您可能会考虑获取其源代码并将其移植到 Windows(因此在您的 Windows 机器上构建它)。有时这很容易(例如,当软件使用QtPOCOGTK等跨系统框架时)。有时,它可能需要多年的工作(如果源代码很大且特定于 Linux)。

如果您想静态分析一些(可能是可疑的)Linux ELF 可执行文件,在 Linux 上执行此操作要简单得多(使用诸如readelf(1)objdump(1)等工具...)

我需要以人类可读的方式查看 .bin 文件的内容。

即使在 Linux 上,这通常也是不可能的。它可能被称为反编译这个答案更多地解释了为什么它实际上不可能)。即使您获得了一些适用于 Windows 的二进制可执行文件,您也不会成功地对其进行完全反编译:源代码和通过编译该源代码获得的可执行文件之间存在一些重大的信息(和知识损失。

要了解有关操作系统的更多信息,请阅读操作系统:三个简单的部分(可免费下载)。


推荐阅读