C语言 为什么"二进制文件"不在原始二进制文件中?



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

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

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

当您在文本编辑器中打开.exe时,您看到的是编辑器试图理解它正在阅读的内容。 文件中的某些字节可能是可读字符的 ASCII 代码,因此在这种情况下,您将看到这些字符。 对于 ASCII 代码不是可打印字符的字节,编辑器会尝试以某种有意义的方式显示。

.exe

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

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


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

您需要一个反汇编器、一个十六进制查看器或特定工具(如 readpe(来读取内容 exe 文件。但是代码混淆可能会阻碍反汇编。代码可能会被模糊处理,以使其更难检索源代码。

相关内容

  • 没有找到相关文章