public void checkHeader() { // Console.WriteLine(Encoding.Default.GetString(readBytes(4))); if (ConvertUtil.Bytes2String(readBytes(4)) != BinaryChunk.LUA_SIGNATURE) { Console.WriteLine("not a precompiled chunk!"); } if (readByte() != BinaryChunk.LUAC_VERSION) { Console.WriteLine("version mismatch!"); } if (readByte() != BinaryChunk.LUAC_FORMAT) { Console.WriteLine("format mismatch!"); } if (ConvertUtil.Bytes2String(readBytes(6)) != BinaryChunk.LUAC_DATA) { Console.WriteLine("corrupted!"); } if (readByte() != BinaryChunk.CINT_SIZE) { Console.WriteLine("int size mismatch!"); } var b = readByte(); if (b != BinaryChunk.CSIZET_SIZE_32 && b != BinaryChunk.CSIZET_SIZE_64) { Console.WriteLine("size_t size mismatch!"); } if (readByte() != BinaryChunk.INSTRUCTION_SIZE) { Console.WriteLine("instruction size mismatch!"); } if (readByte() != BinaryChunk.LUA_INTEGER_SIZE) { Console.WriteLine("lua_Integer size mismatch!"); } if (readByte() != BinaryChunk.LUA_NUMBER_SIZE) { Console.WriteLine("lua_Number size mismatch!"); } if (readLuaInteger() != BinaryChunk.LUAC_INT) { Console.WriteLine("endianness mismatch!"); } if (!readLuaNumber().Equals(BinaryChunk.LUAC_NUM)) { Console.WriteLine("float format mismatch!"); } }
private string readString() { var size = (uint)readByte() & 0xFF; if (size == 0) { return(""); } if (size == 0xFF) { size = (uint)readUint64(); } var bytes = readBytes(size - 1); return(ConvertUtil.Bytes2String(bytes)); }