为什么文件格式有魔数?

Bil*_*eal 5 file-format

例如,Portable Executable有几个,包括开头的着名"MZ",以及PE头开头的"PE\0\0".Rar文件格式有"Rar!" 头部开头,其他几个在文件中有类似的"魔术值".

这种神奇的价值观有什么用途?

Ben*_*igt 8

由于用户更改了文件扩展名,或者其他程序窃取了文件扩展名,因此它允许应用程序取消处理未知格式的文件,而不是尝试最佳状态,然后无论如何都会失败.

  • @Billy - 使用某些文件格式,您无法判断数据是否"坏".例如,如果没有幻数,以编程方式确定文件是否为位图将非常困难. (3认同)

小智 7

魔术数字的概念可以追溯到unix并提前使用文件扩展名.shell的最初想法是所有"可执行文件"看起来都一样 - 无论文件是如何创建的,或者应该用什么程序来评估它.shell将查看文件的内容并确定适当的文件.微软出现并选择了一种不同的方法,文件扩展的时代诞生了.然后,为了让用户"更好",微软选择"隐藏"这些扩展和木马文件的时代看起来像是一种类型,但实际上有不同的扩展,并由不同的文件处理诞生了.