一种通用游戏反作弊系统的制作方法

文档序号:11276741阅读:1417来源:国知局
一种通用游戏反作弊系统的制造方法与工艺

本发明涉及计算机领域,尤其是一种通用游戏反作弊系统。



背景技术:

中国的互联网正在经历飞速的发展,给中国手游行业带了超规模的快速增长,据统计,到2015年,中国手机游戏用户规模累计已经超过了5亿,移动游戏行业收入规模也在持续稳定增长,2015年全年收入达514.6亿元。随着智能手机在广大农村地区进一步普及,手机游戏用户将在2018年接近6亿,加上ar、vr手游等潜在增长点可望在未来数年内进一步成熟,预计到2018年中国手游市场规模将接近700亿元。如此大的市场规模,必定会引起手游产品的激烈竞争,手游产品若想获得更长的生命周期,留住忠实粉丝用户,守护在市场中应得的盈利,除了手游产品本身完整精美之外,游戏任玩家操作捣鼓、抗第三方工具或黑客恶意修改、防止竞争对手对游戏核心成果的窃取和篡改也是至关重要的。《暗黑破坏神ⅲ》是世界顶级游戏公司暴雪娱乐公司开发的一款动作角色扮演游戏,在游戏性和耐玩性上,它被称为是一款令人废寝忘食的游戏,美国多家知名游戏网站给了它很高的评分,但是在《暗黑破坏神ⅲ》上线初期,正是因为玩家使用了修改器作弊,导致游戏中金币资源产量大增,带动物价上涨,破坏了游戏中既定的平衡体制,正常玩家徒然受罪,最终导致游戏中经济体制崩盘,玩家不愿再充值付费购买金币,离开游戏。因此对一款已经完成制作的游戏apk安装包加固是很有必要的。

目前市场上已有的加固产品具有以下缺点:

1、大多数加固服务产品都是基于为app应用类apk安装包加固为设计标准,极少有针对游戏apk安装包加固而设计的加固服务产品,特别是针对unity3d版制作生成的游戏apk安装包,其加固要求、加固内容与加固app应用还是有区别的。

2、如果先给游戏apk安装包加固,每个加固服务商要求,加固前后的apk安装包证书需要一致,对于开发者来说,开发者并没有渠道发行商的打包证书,即便是签了合作合同,渠道发行商也不会将打包证书外流供开发者使用,打包证书只是由开发者将apk上传至渠道发行商后台时,由渠道发行商的系统自动更换,如若此操作,加固过后无法更换证书,游戏无法发行;如果不加固直接发行,发行后游戏有可能会被黑客使用模拟器、修改器等工具进行危害,各种脚本、外挂、作弊器、分析调试、内存数据窃取和篡改都是对游戏造成不安全的因素,最终还有可能破解游戏,造成玩家失去游戏的公平和快乐,开发者的创作产品和制作心血也将付水东流。

3、有些渠道发行平台根本没有针对apk安装包的后台操作系统,作为开发者,不知道apk安装包的各环节的流程进度,是否审核成功被发行,上传apk包打上签名证书后,也不知道在哪里下载。

4、有些渠道发行平台收到apk安装包后,就开始审核,审核成功后立即发行,没有加固的apk安装包已经流入市场,作为开发者,并不能要求发行商先将apk打上证书,再交由开发者和加固服务商加固apk,此过程,开发者和加固服务商都完全接触不到渠道发行平台的审核人员,无法沟通发行进程。

5、对于适用的个别渠道发行平台,受到极大的时间限制。发开者上传apk安装包到渠道打上apk签名证书时,需要单独联系客服人员,取回签名过后的apk安装包,并中断此次审核,则之前的审核时间就白白耗费掉。此外,如果游戏因bug或其他紧急原因需临时调整更新一个新的apk安装包,此时恰遇节假日或非工作时间,无法联系到客服人员,开发者就只能干巴巴的等待,眼睁睁看着有问题的游戏安装包继续在市场上运行,已经修改好的bug不能立即更新到市场上,忍受着玩家在不断的抱怨却束手无策,对于一个开发者来说这是十分痛苦的。

6、也有个别加固服务公司提供了定制的加固服务,但服务价格非常昂贵。



技术实现要素:

本发明的目的在于提供一种通用游戏反作弊系统,通过对游戏核心模块的保护,拦截了黑客对游戏资源的入侵、窃取、攻击,有效的保护了游戏开发者辛勤的劳动果实。

为了实现上述目的,本发明的技术解决方案是:一种通用游戏反作弊系统包括解析单元、加密单元、生成单元、检测库启动包、加固单元、加速检测单元、模拟器检测单元、内存修改检测单元;解析单元与加密单元进行连接,加密单元与加固单元进行连接,生成单元与加固单元进行连接,检测库启动包与加固单元进行连接,加速检测单元与加固单元进行连接,模拟器检测单元与加固单元进行连接,内存修改单元与加固单元进行连接。

所述解析单元将要加固的apk安装包按android工程格式解析并还原,本单元将游戏apk安装包无缝还原、保证游戏中所有的资源完整性。

所述加密单元是本系统的核心部分,安卓平台的apk安装包本质上是一个zip文件,其结构如图3所示,其中:

classes.dex:android下的可执行文件,也就是java在android系统下的字节码文件;

resources.arsc:资源文件的索引文件,提供资源文件id到文件路径的映射关系以及字符串value;

androidmanifest.xml:清单文件,注册应用中的四大组件、application、权限等信息;

assets文件夹:存放应用的资源文件,包括运行在u3d上的dll文件及其他图形、声音、视频、模型资源文件;

lib文件夹:存放so文件,包括u3d的libmain/libmono/libunity三个so文件;meta-inf:存放签名相关的文件;

res文件夹:存放原生android应用的资源文件;

加密方式有很多种,目前主要包括以下几种:

1、dex文件保护;采用分片式按需加载技术,攻击者无法在内存中获取完整的dex文件,再加上dex内存分散功能,攻击者无法从一片连续的内存中dump出dex文件。

2、so文件保护;御安全加固保护逻辑,通过源码级的混淆,采取多种混淆方式,攻击者无法逆向其代码逻辑,另外,基于动态加载的so加壳技术,也使得攻击者无法逆向保护逻辑以及原apk中so的代码逻辑。

3、资源文件保护;防御安全加固系统,可以针对apk的assets及res目录下的所有文件进行加密保护并进行完整性校验,经过御安全加固系统加固后的apk,资源无法被篡改,例如无法增加广告界面,也无法盗版apk里面的资源,可以很好地保护开发者的知识产权。

本发明采用第三种加密方式,加密单元对unity3d编译生成apk安装包中的游戏代码dll文件安全加密与解密保护,保护dll文件不被非法窃取、篡改;防止非开发人员利用reflector反编译工具、reflexil分析插件对unity3d游戏的dll文件进行调试源代修改、源代码等。

所述生成单元将加固后的apk安装包重新生成加固过后的安装包、并打上证书。

所述检测库启动包用来启动模拟器检测库、加速检测库、内存检测库等检测程序。

所述加固单元是本系统的关键部分,本单元将加密后的文件加入模拟器检测库、加速检测库、内存修改检测库,最后加入检测库启动包4;经过加固后的文件会基于以下方式运行:首先运行检测库启动包,然后通过检测库启动包启动模拟器检测库、加速检测库、内存检测库,最后运行安装包程序。

所述加速检测单元检测有关加速模块是否被修改,一般是检测gettimeofday、clock_gettime或其他相关变量值或函数。

所述模拟器检测单元检测模拟器是否存在,是否开启,是否含有模拟器特征的程序在运行,防止模拟器非法运行,进行非法刷量与恶意调试等;模拟器可以使androidapk在电脑端运行,这是非常危险的,受保护后,可以防止运行在pc上的任何类型的android模拟器,防止电脑端的脚本、外挂、作弊器、分析调试工具的运行,防止电脑端各种不安全因素对游戏造成的危害。

所述内存修改检测单元检测内存中相关的模块名、是否有相关修改内存的包名、是否有修改器功能的特征;本单元是对内存数据的专业高级保护,可防止内存调试,防止内存数据被修改,避免黑客通过内存信息破解游戏;如果不对游戏进行高级内存数据保护,游戏在运行时可能存在内存中的数据被篡改和窃取的危险。

本发明的原理是:首先对apk安装包进行分析分解,然后对分解后的文件进行加密,加密后的文件继续进行加固,最后将加固的文件进行签名后重新打包生成apk安装包。

本发明的有益效果是:本系统专门针对游戏行业开发者设计开发的,特别是针对使用unity3d开发的游戏,给游戏需要保护的部分全方位加固,本发明具有以下优点:

1、本系统基于游戏apk安装包结构出发,针对黑客玩家经常对游戏操作的工具和手段,加入模拟器检测库、加速检测库、内存修改检测库和游戏代码加密模块等几个重要的部分,防止非开发人员利用反编译工具对游戏中dll文件进行调试源码、修改源代码,防止黑客玩家对游戏中内存数据的窃取、篡改和游戏速度的随意调整,防止黑客玩家在电脑端使用模拟器对游戏外挂、作弊、分析调试,保证玩家在游戏既定的游戏环境下操作及游戏。

2、游戏apk安装包经本系统加固,开发者可使用自己的签名证书打包apk,加固后,可上传至各渠道发行平台进行审核发行,如平台要求apk安装包需修改为渠道发行平台的签名证书,上传后由渠道自行修改,且不会影响加固效果;如渠道没有修改签名证书的要求,apk安装包可直接发行投放市场使用。

3、本系统无需联网,简单易用,对于开发者本身来说,只需准备好游戏apk安装包和签名证书即可;相较于使用第三方加固服务产品,大大减少了加固阶段消耗的时间;比如上传apk到加固服务方的网络耗时,加固异常时联系服务商处理加固异常问题的沟通耗时、加固环节到发行环节的操作耗时等;加固完成后可直接上传渠道发行平台进行审核发行运营,进一步提高了游戏发行上线的速度效率;同时,此系统也为专门的游戏开发者降低了游戏发行成本;游戏开发者可省下一笔游戏加固服务费用用于游戏技术钻研和游戏品质的提升,游戏开发者如果有多款游戏产品,也可统一使用此系统加固,方便可靠。

附图说明

下面结合附图和具体实施方式对本发明进一步描述;

图1为本发明结构示意图;

图2为本发明系统工作流程图;

图3为本发明软件名称目录示意图;

图中:1、解析单元,2、加密单元,3、生成单元,4、检测库启动包,5、加固单元,6、加速检测单元,7、模拟器检测单元,8、内存修改检测单元。

具体实施方式

由图1、2所示,一种通用游戏反作弊系统包括解析单元1、加密单元2、生成单元3、检测库启动包4、加固单元5、加速检测单元6、模拟器检测单元7、内存修改检测单元8。

解析单元1与加密单元2进行连接,加密单元2与加固单元5进行连接,生成单元3与加固单元5进行连接,检测库启动包4与加固单元5进行连接,加速检测单元6与加固单元5进行连接,模拟器检测单元7与加固单元5进行连接,内存修改单元8与加固单元5进行连接。

所述解析单元1将要加固的apk安装包按android工程格式解析并还原,本单元将游戏apk安装包无缝还原、保证游戏中所有的资源完整性。

所述加密单元2是本系统的核心部分,安卓平台的apk安装包本质上是一个zip文件,其结构如图3所示,其中:

classes.dex:android下的可执行文件,也就是java在android系统下的字节码文件;

resources.arsc:资源文件的索引文件,提供资源文件id到文件路径的映射关系以及字符串value;

androidmanifest.xml:清单文件,注册应用中的四大组件、application、权限等信息;

assets文件夹:存放应用的资源文件,包括运行在u3d上的dll文件及其他图形、声音、视频、模型资源文件;

lib文件夹:存放so文件,包括u3d的libmain/libmono/libunity三个so文件;meta-inf:存放签名相关的文件;

res文件夹:存放原生android应用的资源文件;

加密方式有很多种,目前主要包括以下几种:

1、dex文件保护;采用分片式按需加载技术,攻击者无法在内存中获取完整的dex文件,再加上dex内存分散功能,攻击者无法从一片连续的内存中dump出dex文件。

2、so文件保护;御安全加固保护逻辑,通过源码级的混淆,采取多种混淆方式,攻击者无法逆向其代码逻辑,另外,基于动态加载的so加壳技术,也使得攻击者无法逆向保护逻辑以及原apk中so的代码逻辑。

3、资源文件保护;防御安全加固系统,可以针对apk的assets及res目录下的所有文件进行加密保护并进行完整性校验,经过御安全加固系统加固后的apk,资源无法被篡改,例如无法增加广告界面,也无法盗版apk里面的资源,可以很好地保护开发者的知识产权。

本发明采用第三种加密方式,加密单元2对unity3d编译生成apk安装包中的游戏代码dll文件安全加密与解密保护,保护dll文件不被非法窃取、篡改;防止非开发人员利用reflector反编译工具、reflexil分析插件对unity3d游戏的dll文件进行调试源代修改、源代码等。

所述生成单元3将加固后的apk安装包重新生成加固过后的安装包、并打上证书。

所述检测库启动包4用来启动模拟器检测库、加速检测库、内存检测库等检测程序。

所述加固单元5是本系统的关键部分,本单元将加密后的文件加入模拟器检测库、加速检测库、内存修改检测库,最后加入检测库启动包4;经过加固后的文件会基于以下方式运行:首先运行检测库启动包,然后通过检测库启动包启动模拟器检测库、加速检测库、内存检测库,最后运行安装包程序。

所述加速检测单元6检测有关加速模块是否被修改,一般是检测gettimeofday、clock_gettime或其他相关变量值或函数。

所述模拟器检测单元7检测模拟器是否存在,是否开启,是否含有模拟器特征的程序在运行,防止模拟器非法运行,进行非法刷量与恶意调试等;模拟器可以使androidapk在电脑端运行,这是非常危险的,受保护后,可以防止运行在pc上的任何类型的android模拟器,防止电脑端的脚本、外挂、作弊器、分析调试工具的运行,防止电脑端各种不安全因素对游戏造成的危害。

所述内存修改检测单元8检测内存中相关的模块名、是否有相关修改内存的包名、是否有修改器功能的特征;本单元是对内存数据的专业高级保护,可防止内存调试,防止内存数据被修改,避免黑客通过内存信息破解游戏;如果不对游戏进行高级内存数据保护,游戏在运行时可能存在内存中的数据被篡改和窃取的危险。

具体操作实施:本系统要求电脑安装有windowsserver2008/windows7及以上操作系统,并且电脑中安装有java语言的软件开发工具包(即jdk)1.6或以上的版本;本系统为绿色软件无需安装;使用时直接把包含通用游戏反作弊系统的文件夹放在电脑的任意一个盘里,把需要加固的游戏apk包,放入反作弊系统里的apk文件夹中;将自己的签名证书重命名为androidkey.keystore并覆盖系统原有的签名证书;双击批处理文件start.bat启动加固过程,系统开始进行加固;等待一段时间加固完成后,会在signapk文件夹里生成加固好的apk包;

图2为本系统工作流程图,具体工作方式为首先对apk安装包进行分析分解,然后对分解后的文件进行加密,加密后的文件继续进行加固,最后将加固的文件进行签名后重新打包生成apk安装包。

以上所述,实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明技术的精神的前提下,本领域工程技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1