zixijian 发表于 2021-9-22 10:11

如何分析泰拉瑞亚人物存档文件头校验数据?

本帖最后由 zixijian 于 2021-10-20 16:29 编辑

有人反编译获得了一段代码,说是4到12字节是校验数据,测试服存档修改了无法读取。
有大佬说是整体aes加密,pc上反编译一下就能看到密钥和向量。
public void Read(BinaryReader reader)
      {
                ulong num = reader.ReadUInt64();
                if ((num & 0xFFFFFFFFFFFFFFL) != 27981915666277746L)
                {
                        throw new FormatException("Expected Re-Logic file format.");
                }
                byte b = (byte)((num >> 56) & 0xFF);
                FileType fileType = FileType.None;
                FileType[] array = (FileType[])Enum.GetValues(typeof(FileType));
                for (int i = 0; i < array.Length; i++)
                {
                        if ((uint)array == b)
                        {
                              fileType = array;
                              break;
                        }
                }
                if (fileType == FileType.None)
                {
                        throw new FormatException("Found invalid file type.");
                }
                Type = fileType;
                Revision = reader.ReadUInt32();
                ulong num2 = reader.ReadUInt64();
                IsFavorite = (num2 & 1) == 1;
      }

nywjj 发表于 2021-9-22 11:57

真不错啊真不错啊

wsds 发表于 2021-9-22 13:52

服务端开源的

zixijian 发表于 2021-9-22 14:32

wsds 发表于 2021-9-22 13:52
服务端开源的

心动开了一个测试服,马上就要公测了

zixijian 发表于 2021-10-20 16:08

人物加解密方法
加密方式AES-128-CBC
key和iv都是h3y_gUyZ(utf16)
目前已经有存档编辑器了,此问题解决。
页: [1]
查看完整版本: 如何分析泰拉瑞亚人物存档文件头校验数据?