一种游戏数据安全加密方法及设备与流程

未命名 07-22 阅读:1185 评论:0


1.本发明涉及数据处理技术领域,具体涉及一种游戏数据安全加密方法及设备。


背景技术:

2.随着技术的不断发展,手机游戏的种类越来越多,数量越来越大,手机游戏的受众群体随之越来越多,同时针对手游的破解手段也越来越丰富,现有的游戏代码和数据大多对内存数据进行对称加密,破解者仅需通过代码静态分析或动态调试找到游戏算法实现部分,就可制作破解游戏数据软件,破解软件的实用使得普通游戏用户体验感差。


技术实现要素:

3.针对现有技术存在的不足,本发明的目的在于提供一种游戏数据安全加密方法及设备。
4.为了实现上述目的,本发明提供如下技术方案:
5.一种游戏数据安全加密方法,包括如下步骤:
6.s1,在用户登录时判断设备操作系统是否被破解,如破解,标记用户,未破解,进行下一步;
7.s2,登录后游戏每帧绘制循环中,检测用户是否修改或扩展游戏数据,如是,标记用户,如否,进行下一步;
8.s3,每一轮游戏结束更新内存加密传入参数,并采用更新后的传入参数对内存数据混淆。
9.在本发明中,优选的,还包括步骤s0,提取游戏数据中的关键函数名和变量名,通过md5计算和左移位运算,映射成无可读性字符串;同时提取游戏数据中的关键字符串,转换成新数组保存,在运行时对新数组反向解析成原字符串。
10.在本发明中,优选的,对关键字符串先转化成uint32_t类型数组,对数组中的每个字符,进行移位和与操作,然后组成新数组保存。
11.在本发明中,优选的,在步骤s1中,收集操作系统的汇编指令集,与原系统汇编指令对比,以判断操作系统是否被破解更改。
12.在本发明中,优选的,在步骤s1和步骤s2中,标记用户是通过将该用户设备上报服务器,服务器进行标记,后续不再处理这台设备发送的数据交互请求,使用户对标记无感知。
13.在本发明中,优选的,在步骤s2中,游戏每帧绘制循环由mainloop函数实现,在mainloop函数中增加调用syscall系统函数步骤,syscall系统函数用于检测游戏数据中的函数调用、消息传递、事件传递是否被拦截、修改或扩展。
14.在本发明中,优选的,在步骤s3中,每一轮游戏结束后会生成新的游戏数据,以及内存加密传入参数,依据内存传入参数对游戏数据中使用的货币数据进行移位以及异或操作。
15.在本发明中,优选的,在步骤s3中,同时游戏内界面展示的数据依传入参数进行对称加密,并实时通过对称函数解密出来作为界面数据进行展示。
16.在本发明中,优选的,步骤s0还包括采用静态编译器的代码混淆,加大静态分析代码难度。
17.一种游戏数据安全加密设备,包括存储器和处理器,所述存储器存储有后台程序,所述后台程序被所述处理器执行时,使得所述处理器执行所述游戏数据安全加密方法的步骤。
18.与现有技术相比,本发明的有益效果是:
19.本发明的方法通过替换关键函数和变量名,防止破解者静态分析查找函数名或变量名;通过对关键字符转换,防止破解者查找关键字符串;通过检测系统以及游戏是否被破解,针对破解停止服务,避免对其他用户的影响;通过对内存数据加密,并实时更新加密传入参数,保证内存数据呈现方式不同、无规律,防止了破解者找数据存储规律,并通过使用汇编指令调用系统函数,可以防止系统函数被fishhook掉,即使破解者添加断点,也不能断住,从而阻断破解者静态分析代码和动态调试代码,保护游戏数据的安全性。
附图说明
20.图1为本发明所述的一种游戏数据安全加密方法流程框图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
23.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
24.请参见图1,本发明一较佳实施方式提供一种游戏数据安全加密方法,包括如下步骤:s1,在用户登录时判断设备操作系统是否被破解,如破解,标记用户,未破解,进行下一步;s2,登录后游戏每帧绘制循环中,检测用户是否修改或扩展游戏数据,如是,标记用户,如否,进行下一步;s3,每一轮游戏结束更新内存加密传入参数,并采用更新后的传入参数对内存数据混淆,通过隐藏关键字符串,函数名以及变量名等,防止破解者分析查找,并判断手机或游戏是否被破解,破解则停止对该设备请求,避免其对其他游戏者的干扰,同时数据混淆,保证内存数据无规律,阻断破解者静态分析代码和动态调试代码,保证游戏数据安
全性,避免被破解。
25.在本实施方式中,还包括步骤s0,提取游戏数据中的关键函数名和变量名,通过md5计算和左移位运算,映射成无可读性字符串,从而防止破解者静态分析查找函数名或变量名;同时提取游戏数据中的关键字符串,转换成新数组保存,在运行时对新数组反向解析成原字符串,以防止破解者静态分析查找关键字符串。
26.具体的,对关键字符串先转化成uint32_t类型数组,对数组中的每个字符,进行移位和与操作,然后组成新数组保存。
27.在本实施方式中,在步骤s1中,采用汇编指令和oc/java代码反射调用机制,收集操作系统的汇编指令集,与原系统汇编指令对比,以判断操作系统是否被破解更改。
28.在本实施方式中,在步骤s1和步骤s2中,标记用户是通过将该用户设备上报服务器,服务器进行标记,后续不再处理这台设备发送的数据交互请求,使用户对标记无感知,误认为是服务器出问题。
29.在本实施方式中,在步骤s2中,游戏主循环中每帧渲染画面,为1s刷新60帧,游戏每帧绘制循环由mainloop函数实现,在mainloop函数中增加调用syscall系统函数步骤,syscall系统函数用于检测游戏数据中的函数调用、消息传递、事件传递是否被拦截、修改或扩展,这样使得游戏运行的每一次都会检查游戏是否被破解。
30.在本实施方式中,在步骤s3中,每一轮游戏结束后会生成新的游戏数据,以及内存加密传入参数,对游戏数据中使用的货币数据进行移位以及异或操作,移位和异或使用的数据为内存加密传入参数,其每局游戏后通过后端服务器更新,保证即使是相同的真实数据,在每局游戏后在内存中的呈现方式也不相同,防止破解者找数据存储规律的可能性。
31.在本实施方式中,在步骤s3中,同时游戏内界面展示的数据依传入参数进行对称加密,并实时通过对称函数解密出来作为界面数据进行展示,实现界面展示数据和实际内存数据完全无关系,防止系统函数被破解者找到,破解者即使添加断点也不能断住。
32.在本实施方式中,步骤s0还包括采用静态编译器的代码混淆,加大静态分析代码难度,防止使用hooper或者ida等破解软件静态分析查找关键字。
33.本发明另一较佳实施方式提供一种游戏数据安全加密设备,包括存储器和处理器,所述存储器存储有后台程序,所述后台程序被所述处理器执行时,使得所述处理器执行游戏数据安全加密方法的步骤。
34.上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。
35.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
36.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种游戏数据安全加密方法,其特征在于,包括如下步骤:s1,在用户登录时判断设备操作系统是否被破解,如破解,标记用户,未破解,进行下一步;s2,登录后游戏每帧绘制循环中,检测用户是否修改或扩展游戏数据,如是,标记用户,如否,进行下一步;s3,每一轮游戏结束更新内存加密传入参数,并采用更新后的传入参数对内存数据混淆。2.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,还包括步骤s0,提取游戏数据中的关键函数名和变量名,通过md5计算和左移位运算,映射成无可读性字符串;同时提取游戏数据中的关键字符串,转换成新数组保存,在运行时对新数组反向解析成原字符串。3.根据权利要求2所述的一种游戏数据安全加密方法,其特征在于,对关键字符串先转化成uint32_t类型数组,对数组中的每个字符,进行移位和与操作,然后组成新数组保存。4.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,在步骤s1中,收集操作系统的汇编指令集,与原系统汇编指令对比,以判断操作系统是否被破解更改。5.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,在步骤s1和步骤s2中,标记用户是通过将该用户设备上报服务器,服务器进行标记,后续不再处理这台设备发送的数据交互请求,使用户对标记无感知。6.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,在步骤s2中,游戏每帧绘制循环由mainloop函数实现,在mainloop函数中增加调用syscall系统函数步骤,syscall系统函数用于检测游戏数据中的函数调用、消息传递、事件传递是否被拦截、修改或扩展。7.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,在步骤s3中,每一轮游戏结束后会生成新的游戏数据,以及内存加密传入参数,依据内存传入参数对游戏数据中使用的货币数据进行移位以及异或操作。8.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,在步骤s3中,同时游戏内界面展示的数据依传入参数进行对称加密,并实时通过对称函数解密出来作为界面数据进行展示。9.根据权利要求1所述的一种游戏数据安全加密方法,其特征在于,步骤s0还包括采用静态编译器的代码混淆,加大静态分析代码难度。10.一种游戏数据安全加密设备,包括存储器和处理器,所述存储器存储有后台程序,所述后台程序被所述处理器执行时,使得所述处理器执行如权利要求1-9任一项所述游戏数据安全加密方法的步骤。

技术总结
本发明涉及数据处理技术领域,公开了一种游戏数据安全加密方法及设备,包括如下步骤:S1,在用户登录时判断设备操作系统是否被破解,如破解,标记用户,未破解,进行下一步;S2,登录后游戏每帧绘制循环中,检测用户是否修改或扩展游戏数据,如是,标记用户,如否,进行下一步;S3,每一轮游戏结束更新内存加密传入参数,并采用更新后的传入参数对内存数据混淆;该方法可以防止破解者静态分析查找函数名或变量名;防止破解者查找关键字符串;保证内存数据呈现方式不同、无规律,防止了破解者找数据存储规律;可以防止系统函数被fishhook掉,即使破解者添加断点,也不能断住,从而阻断破解者静态分析代码和动态调试代码,保护游戏数据的安全性。据的安全性。据的安全性。


技术研发人员:陈松 孙冶 王通
受保护的技术使用者:大鱼竞技(北京)网络科技有限公司
技术研发日:2023.03.29
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐