闲来无事在某应用商店下了个单机斗地主尝试的破解玩玩。
先上效果图:
游戏界面是这样的:
游戏商城:
点开支付再关掉,显示支付失败,但是购买成功。金币增加了。
1.先反编译apk查找关键代码,反编译工具选择看自己喜好,我这里用的jeb
简单看下AM和包结构,可以看出是一款cocos2dx开发的游戏,另外没加壳。
2.搜索关键代码,支付失败弹窗信息很明显,直接搜索字符串“支付失败”
没想到这么容易就找到了,smsPurchaseFailCallBack方法点过去看看,支付失败传参是“0”,支付成功传参是“1”,最后是调用native方法smsPurchaseCallBackC去执行的这个过程先不管。这里思路很简单,把支付失败smsPurchaseFailCallBack方法的参数改为“1”,这个就和smsPurchaseSuccessCallBack方法一样了。
3.有了思路就可以动手改代码了
直接把apk里面的dex拖出来反编译,看下需要改的代码在哪个类,这里需要改的就是AppActivity$4.smali
打开AppActivity$4.smali,找到对应的代码,这里“0”改成“1”就行了
4.改完之后重新编译dex,替换掉原来的dex,删除证书文件夹,再重新签名就搞定了。
安装运行就有了上面的效果图,破解完成金币随便买。
免责声明:
本文的意图只是通过分析app学习安卓逆向技术,如果有人利用本文知识和技术进行非法操作进行牟利,带来的任何法律责任都将由操作者本人承担,和本文作者无任何关系。