(1)Lua 源码分析 - 二进制 chunk
header 总共占有 30 个字节
-
Lua 标识签名
0x1B4C7561 => “\x1bLua”
-
版本号
Lua 5.3.5 => 0x83
-
格式号
Lua 官方实现使用的格式号是 0x00
-
LUAC_DATA
Lua 1.0 发布年份 => 0x1993
0x0D 0x0A 0x1A 0x0A
0x19 0x93 0x0D 0x0A 0x1A 0x0A
=>
“\x19\x93\r\n\x1a\n”
-
各种整数类型占有的字节数
Cint => 0x04
Size_t => 0x08
Lua 虚拟机指令 => 0x04
Lua 整数 => 0x08
Lua 浮点数 => 0x08
0x04 0x08 0x04 0x08 0x08
-
大小端和浮点数格式识别信息
接下来 n 个字节存放 Lua 整数值 0x5678 => 检测 chunk 大小端方式 => 当大小端方式和本机匹配才加载/否则直接拒绝加载
0x78 0x5