Easy Save3游戏存档安全分析 您所在的位置:网站首页 游戏存档加密了怎么办 Easy Save3游戏存档安全分析

Easy Save3游戏存档安全分析

#Easy Save3游戏存档安全分析| 来源: 网络整理| 查看: 265

一、简介

在Unity3d商店中看到一款存档读档的插件,下载量挺大的,找了个试用版本的玩了下,使用确实挺方便。而且支持不止对数据对存储,包括类对象、资源文件等。 unity3d资源商店页面

二、简单的测试使用

简单的直接存储一个整型:

ES3.Save("123",1); int v = ES3.Load("123");

或者一个对象:

TestStruct testStruct = new TestStruct(); testStruct.id = 0x11111; testStruct.name = "32131"; testStruct.pic = 1981; ES3.Save("1234", testStruct); TestStruct v1 = ES3.Load("1234");

采用默认文件存储,存储在/sdcard/Android/data/[packagename]/files下,对应内容: 在这里插入图片描述 支持AES加密,加密后存入数据。

var settings = new ES3Settings(ES3.EncryptionType.AES, "myPassword12345612345678"); ES3.Save("12345", testStruct, Application.persistentDataPath + "/TestEncode.es3", settings); TestStruct v2 = ES3.Load("12345", Application.persistentDataPath + "/TestEncode.es3", settings); 三、分析

1、优势 (1)代码全采用C#开发,基本不涉及平台相关,维护和跨平台都十分方便; (2)存档和读档基本只需一条语句即可实现,二次开发成本低; (3)多功能的支持,如自动存档。

2、劣势 (1)默认处理不做加密强度基本不保障,而且数据保存在sdcard,篡改本地数据非常方便; (2)加密后采用的AES标准算法,只需要找到密钥就能达到篡改数据的目的。 数据篡改只考虑本地静态数据篡改实现。

四、改进方案

1、考虑基于平台的代码保护,将数据解析存储代码最好通过C/C++实现; 2、键值考虑不使用有意义的字符串,使用宏定义的数字或无意义字符串; 3、采用多层嵌套自定义加密; 4、针对存档数据有独立的哈希校验; 5、json格式保存,考虑转化为另外一种独立的格式或者文件结构,和json可以进行相互关联转化,自定义格式更方便本地存取,无需读取整个文件。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有