为什么 "二进制文件 "不是原始二进制的?

问题描述 投票:0回答:1

我有一个保存在可执行文件中的C程序(.exe,我听说这也被称为 "二进制 "文件).当我在文本编辑器中打开时,它不是二进制的,而是一些其他古怪的字符组合。为什么会这样呢?"文件 "到底显示在执行的哪个阶段?为什么在C代码和实际的原始二进制之间会有这种中间文本?

c binary executable machine-code
1个回答
1
投票

你所看到的 "古怪的字符组合"。 二进制文件。 一般来说,二进制文件是指任何不是纯文本的文件,而是包含了供程序而不是人阅读的数据。

你的.exe文件包含了运行程序所需的机器代码,以及一些描述文件布局的数据。

当你在文本编辑器中打开.exe文件时,你所看到的是编辑器在试图理解它所读取的内容。 文件中的一些字节可能是可读字符的ASCII码,所以在这种情况下你会看到这些字符。 对于那些ASCII码不是可打印字符的字节,编辑器会试图以某种方式显示出来。


0
投票

.exe 是一个文件扩展名,代表 可执行. 可执行文件不是源代码,它是一个被编译成可以直接由操作系统运行的文件。 你看到的那些随机字符是因为该文件由一系列字节组成,这些字节不是设计成文本的。

二进制文件是一个不是文本文件的计算机文件。术语 "二进制文件 "经常被用作 "非文本文件 "的意思。许多二进制文件格式包含可以被解释为文本的部分;例如,一些包含格式化文本的计算机文档文件,如旧的Microsoft Word文档文件,包含文档的文本,但也包含二进制形式的格式化信息。


这些文件并不意味着可以在文本编辑器上阅读或查看,如 记事本. 大多数文本编辑程序不解析二进制编码格式,而希望解析ASCII字符代码格式。

你需要一个 反汇编者,十六进制查看器或特定的工具,如readpe来读取内容exe文件。但代码混淆可能会阻碍反汇编。代码可能会被精心混淆,以增加检索源代码的难度。

© www.soinside.com 2019 - 2024. All rights reserved.