由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈。尤其是手游行业,如刀塔传奇、植物大战僵尸、2048等知名游戏被破解的案例不胜枚举。破解者通过各种工具篡改游戏内存中的数值、参数或广告等,达到过关、升级、谋取暴利的目的。破解一款手游到底有多难,360加固保()技术工程师为大家揭秘手游破解全过程。
《屌丝保卫战》是一款射击类游戏,游戏内涉及关卡、道具、虚拟金币等内容。通过简单几个破解步骤,即可完成关卡升级、虚拟货币充值等目的。
在游戏未进行任何安全保护措施前,破解者可以轻松将apk文件用winrar打开,将lib/armeabi文件解压出来之后用IDA(一款专业的逆向工具)打开。在IDA解析完成之后,搜索MyLoadBegin函数即可看到初始化的钻石数量,金币数量,vip等级等,这正是破解者进行破解的突破点。如图1所示, 10000为金币数量,100为钻石数量。
图1 初始化金币和钻石数值
通过图2则可以判断该代码是决定VIP等级的部分。
图2 初始化VIP等级数值
找到初始化数据后,破解者就可以对其进行任意数值和参数的篡改了,图3和图4是对游戏内的金币与钻石的初始化数值进行篡改的前后对比图。
图3 金币与钻石数值篡改前
图4 金币与钻石数值篡改后
图5和图6是对VIP等级进行篡改的前后对比图。
图5 VIP等级篡改前
图6 VIP等级篡改后
经过上面的数值篡改,前台页面最终展示的结果如图7和图8所示,能看到,钻石数量由初始的100改成了99999,金币数量由10000改成了99999。
图7钻石和金币数量篡改前
图8 钻石和金币数量篡改后
同时,如图9和图10所示,VIP等级也已经从初始的VIP1达到了满级。
图9 VIP等级篡改前
图10 VIP等级篡改后
通过以上几个简单步骤,就完了对游戏的破解和篡改。对破解者而言,这只是分分钟的事情,而对于游戏开发者,却是多少个加班和心血被付诸东流的惨剧。
魔高一尺道高一丈,越来越多的手游开发者为避免重蹈覆辙,已经提高了应用安全意识,开始通过第三方加固服务或代码混淆等多重手段来防御破解者的攻击。
据360加固保()技术工程师介绍,由于大部分Android手游的盈利模式为广告和增值服务(如购买金币、装备、卡牌),所以提高APP的安全性、保护开发者的收入变的尤为重要。360加固保不但可以防止八门神器、外挂等,更可以提供定制的so文件保护。前面提到的在破解手游时,libcoco用IDA打开可找到函数MyLoadBegin,而进行过加固保护后, IDA已经无法整成解析MyLoadBegin函数,导致破解者无从下手,从而达到保护游戏的目的。
面对层出不穷的破解和盗版问题,360加固保()致力于保护移动开发者的应用安全,加固后能有效防止手机APP被反编译、破解、二次打包等问题,从根源上保护移动开发者的收入和应用安全。
xg