机器代码中的 00 00 00 00 00 00 等是什么意思?

机器代码中的 00 00 00 00 00 00 等是什么意思?

我在 Windows 上有一个 10KB 的空可执行文件。

如果我运行它,它会做什么?换句话说,

00 00 00 00 00 00 00

答案1

如果我运行它,它会做什么?

除了生成一条错误消息之外什么都没有,因为该文件不包含有效的可执行文件头。

在 Windows 7 上:

在此处输入图片描述

在 Windows 10 上:

在此处输入图片描述


可移植可执行文件

可移植可执行文件 (PE) 格式是可执行文件、目标代码、DLL、FON 字体文件以及 32 位和 64 位 Windows 操作系统中使用的其他文件的文件格式。PE 格式是一种数据结构,它封装了 Windows 操作系统加载程序管理包装的可执行代码所需的信息。这包括用于链接的动态库引用、API 导出和导入表、资源管理数据和线程本地存储 (TLS) 数据。

...

在此处输入图片描述

来源可移植可执行文件


进一步阅读

答案2

大多数流行文件(包括可执行文件)都有一个文件头。文件头(或代码的前几个字节)标识了文件的类型。启动可执行文件时,Windows 将首先检查文件头,如果该文件头不是可执行文件的默认文件头,Windows 将简单地向您发送一条消息,提示该文件已损坏,或者该文件不是有效的 32 位可执行文件。

长话短说,您会收到一条错误消息,仅此而已。

如果它有一个有效的标头,但其余部分只找到 00 个字节,它将启动应用程序然后退出,因为没有进一步的指令。简而言之,它什么也不做。

相关内容