Exemplo n.º 1
0
        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!");
            }
        }
Exemplo n.º 2
0
        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));
        }