• java 文件编译为 .class 字节码(byte code),字节码文件的前 4 位为魔数(起到标识说明作用),magicNumber = 0xCAFEBABE;

1. 可执行文件

几乎所有的可执行文件格式最开始的几个字节都是魔数:

  • a.out:最开始的两个字节为 0x01,0x07;
  • PE/COEF 文件最开始的两个字节为:0x4d, 0x5a,即 ASCII 码 MZ

    >> chr(0x4d)
    'M'
    >> chr(0x5a)
    'Z' 
  • ELF 文件的头四个字节:0x7F,0x45,0x4C,0x46

    • 第一个字节为 DEL 控制符,后三个字节则为 ELF 三个字母的 ASCII 码;
    >> chr(0x7f)
    '\x7f'
    >> chr(0x45)
    'E'
    >> chr(0x4c)
    'L'
    >> chr(0x46)
    'F'
posted on 2017-12-16 22:37  未雨愁眸  阅读(951)  评论(0编辑  收藏  举报