记一次so修改无条件使用货币

【示例游戏】羽毛球高高手,某Tap平台上下载,(如果这句话涉嫌推广,请通知本人,本人会修改相关词汇)


【所需工具】IDA(爱盘里面有下载)


【开始操作】
经过本人的试验,这游戏有联网的dex验证,去除联网权限会闪退,所以把内容放到so文件上了
我们先解压出lib文件里面的libMyGame.so文件,用IDA打开分析

单击左边函数窗口,按Ctrl+F打开搜索窗口
我先搜过很多关键词,例如gold,coin,gem,diamond
在我搜索coin的时候,并没有发现getCoin类似的方法,所以没法直接修改大量货币,但是我看到如下这个方法

getNeededDiamondsCountToBuyCoins(CommonUtils *__hidden this, int)
翻译过来的意思是,获取购买金币所需要的钻石的数量


【修改思路】让这个方法返回0,或者负数,这样购买金币就可以不需要钻石了


【修改操作】
同步到对应的十六进制代码,按F2开始编辑

因为不确定是arm汇编还是THUMB汇编,所以我直接实验,先试试arm汇编
0000 A0E3---MOV R0,#0
1EFF 2FE1---BX LR
按F2保存后看见汇编代码出错了,所以判断不是arm汇编

现在换成THUMB汇编
0020---MOV R0,#0
7047---BX LR
多余的用00补齐

我们再来看看汇编代码,这次没问题了

然后保存后退出,替换掉原本的so文件,进入游戏测试一下,修改成功

【总结】
修改所需要钻石购买金币的数量为0,可以实现无条件使用钻石购买金币

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称