首页 > 代码库 > Cocos2d-x 游戏防打包解决方案

Cocos2d-x 游戏防打包解决方案

        做手机游戏的最怕的是啥,估计就是打包吧,打包党的猖獗致使很多好的手机游戏被淹没,所以,游戏开发者在这方面也是斗智斗勇!有没有什么好的防打包的技巧呢?

        先来看下,什么是打包党?

        打包党是一种职业,一种不光彩的职业,他们专门去下载别人的游戏安装包,反编译,然后加入自己的广告,最后重新打包上传到各个市场,从而谋取收益。

        下面进入正题,就Android游戏说下怎么防二次打包,也就是防打包党

        1.代码混淆

        Android本身就能进行代码混淆,代码混淆就是把类名、变量名、方法名变成各种abcd,增加源代码阅读的难度,这对于刚加入打包党的小黑客来说可能有点难度,也许能阻止一小部分比较懒惰的打包党,但是, 对于有技术含量的打包党来说,根本不是问题!

        2.在线检测包名、版本号

        如果你的游戏需要网络环境,那么,你可以在游戏里加一个机制,获取游戏安装包的包名以及版本号。包名和版本号Android本身的API就提供了接口。

        每次打开游戏,就获取包名和版本号,然后联网检测,联谁的网?比如你用友盟统计,那就可以用友盟的在线参数。在线参数里填写你游戏的包名和最新版本号,然后在游戏里对比在线参数和实际包名、版本号是否一致,不一致的怎么办?直接闪退!让打包党打包的游戏连审核都无法通过。

        不过,事实上,有些市场,并不是人工审核的,即使一打开就闪退的游戏,也有审核通过的可能。

         3.本地检测包名、版本号

        对于不需要联网的游戏怎么办?好吧,其实不联网的游戏,对我们也没有多大的意义了(因为没法放自己的广告了)。

        其实本地的检测也是一样的,获取版本号和包名,然后每次打包游戏之前都在代码里也写死一个版本号和包名,运行游戏的时候就对比一下。

        发现对不上的,果断闪退没商量~

        大家是不是觉得对比包名和版本号很无敌?打包党一定没法下手了吧?

        其实不然,版本号和包名都是从Android端获取的,只要打包党在Android端的代码里做手脚,把包名和版本号写死为你原来的包名和版本号,那就能顺利骗过了。

        所以,我们可以尽量把获取包名和版本号的代码写复杂点,比如创建好几个类,都是用来获取包名和版本号的,创建很多个函数,都是同样的功能,但是名字不同的。

        然后最终只使用其中一个看起来最不起眼的,前提是,你还记得你用的是哪一个 

        4. 加密

        以上的方法都有漏洞,都防止不了打包党,而且开发者本身能力、精力有限,没有那么多的时间去研究防二次打包、防黑客攻击的技巧。所以,各种移动安全保护公司就是这样产生的,有需求才会有市场。他们的出现,也正好可以解决广大Android应用开发者的难题,简直就是共赢!目前来说,比较专业的还是爱加密,他们不仅提供有免费版的加密,还有专门针对各种不同行业的加密解决方案,采用定制化的加密方案,全方位的为广大Android开发者提供保护服务! 

Cocos2d-x 游戏防打包解决方案