无法复制可执行文件的内容?

时间:2017-02-11 10:09:51

标签: character-encoding exe executable copy-paste

因此,通过将原始文件的内容复制到空白文本文件中,可以将文本文件复制并粘贴到其他位置。这可以使用文本编辑器完成。突出显示文本文件的内容,复制,创建新的空白文本文件,粘贴到其中。

但是,为什么不能像这样复制和粘贴图像,音频,视频,可执行文件等?例如,我用文本编辑器打开一个可执行文件,复制它的所有内容,创建一个新的空白文本文件,将扩展名更改为.exe,然后粘贴到它(通过文本编辑器)。但是,该文件无法运行。为什么呢?

此外,我希望能像编辑文本文件一样编辑这些类型的文件。有办法吗?

1 个答案:

答案 0 :(得分:1)

因为可执行文件和媒体文件是"二进制"文件。文本文件也是二进制文件,但不同。所有文件都是二进制创建的,但有些文件创建的二进制文件比其他文件更多。

您正在文本编辑器中打开二进制文件。这会立即改变字节的语义。主要问题是字节包含一个恰好与换行符相对应的值,如果它是文本文件(0x0A0x0D),它将呈现为依赖于平台的换行符({{ 1)}在Windows上,例如)。复制时,您已将\r\n0x0A更改为0x0D

然后是控制字符或不可打印的字符。并非0x0D 0x0A0x00之间的所有字节都可以表示为字符。它们将被省略或替换为可显示的字符。

因此,当您复制包含这些内容的文本时,它们将被省略或以其他方式被修改。

总之:除非您选择对字节进行编码,否则您无法可靠地使用文本来显示所有可能的字节值。值,例如使用Base64编码完成的。

如果要编辑二进制文件,请使用知道这些字节的编辑器:"十六进制编辑器"。请注意,更改二进制文件中的随机字节值并不能保证该文件的完整性:格式中可能存在校验和,编辑将使该校验和无效。