【安卓破文】google play 破解(一):钻石修改
转载请注明文章出处:http://d-iao.weebly.com/2002739029/google-playBlog建立了有一段时间 都没空整理 今天抽出点时间写个教程
破解play验证 有2种方式
1.内购破解
2.修改数据
前者破解必须安装play商店 否则不能完成内购
国内很多手机都不自带play商店 所以有时候就算破解了内购
别人手机若没play商店 同样无法内购成功
所以大多数的破解者 都是选择后者直接修改游戏的钻石或金币达到想要的效果
最近看到一款游戏代码比较简单 很适合写个入门教程 所以就打算写篇文章
今天的主角是一款过关的RPG游戏 看说明是超过100万的下载量的游戏 我们来看看
我们来看看内容
从上图里我们可以看到 游戏货币分为3种
1.ticket 门票
2.gold 金币
3.gem 钻石
经分析 ticket 和 gold 可以使用gem买 然而钻石则要用真钱买
所以 我们只要对gem的数量进行修改即可
可以从上图的右上角 gem shop里看到 这游戏的钻石叫做gem
点击 gem shop后 可以看到如上图 gem的购买是通过真钱购买
现在对游戏基本要修改的东西有了了解 我们可以开始反编译了
这里为了更好的让我们了解整个过程 我使用IDE进行反编译
对于国外游戏 都很喜欢用NDK来开发 所以当我们看到如上图lib目录下有SO文件的时候 我们就应该先从SO文件下手
这时候要用IDA打开SO文件 IDA的使用我就不多介绍了 不懂的人请看IDA使用相关指南
IDA载入SO后 如上图 全部默认 无需设置 然后点OK
打开后点击右上角的Exports观看函数
如上图 按ALT+T打开搜索窗口 然后输入“gem” 接着按OK 开始搜索 要继续搜索下一个 就按CTRL+T
CTRL+T几次后 看到有个“getGem”的函数 就是获取钻石数量 我们直接双击 来看看代码
从图中的解释 我们可以知道 gem的数量在R0里 所以我们只要修改R0的数量即可
接着点击Hex View-A 进入16进界面 我们来看看对应机器码
整句getGem的代码
000BDA4802 4B 7B 44 1B 68 18 6870 47
我们直接将
LDR R3, =(m_gem_ptr - 0xBDA4E)
ADD R3, PC
LDR R3,
LDR R0,
BX LR
修改为
MOVS R0,0x2800 //0x2800 =10240 也就是gem数量 =10240个
BX LR
对应机器码是
02 4B 7B 44 1B 68 18 6870 47
改为
A0 20 80 01 70 47 00 00 00 00
由于IDA没有保存功能 我们只能借助其他16进工具来进行修改 这里使用C32ASM以16进方式打开
CTRL+G 搜索对应地址 “000BDA48" 如上图高亮的地方
修改为如上图的结果 然后点击左上角的保存 此时 我们已经完成修改了 现在可以进行打包签名了
由于游戏有保护 导致IDE无法直接回编 这里我们直接将游戏APK包后缀改为rar类型 如上图
然后把修改好的SO文件 拖到“lib\armeabi”目录里
修改好后再把后缀名改回apk 接着用签名工具进行签名apk文件 签名好后会生成新的已签名文件
接着我们把机子上原版卸载 重新安装我们修改后的版本
如上图我们可以看到 gem的数量=10240 证明我们修改成功了 真的成功了吗? 那我们来验证下 随便购买个物品看看
嘿嘿 有购买成功的提示了 到这里 表示我们已经破解成功了
教程就到这里 感谢大家收看
下一篇文章: ”google play 破解 (二) :inapp内购破解“
ps: 有时间再写
初学安卓哈,不懂ARM,学习完教程有个疑问,这里00是什么指令?
对应机器码是
02 4B 7B 44 1B 68 18 6870 47
改为
A0 20 80 01 70 47 00 00 00 00 来了吾爱发现自已以前根本就是小孩子过家家 这才是真真的破解好尴尬看不懂
天哥好淫!{:301_992:} 膜拜大牛的精华破文,很精彩。 很详细呀,谢楼主分享。 以前计算机课学过什么十六进制的,这个是么。。。 超级详细,感谢楼主分享 感谢楼主分享,顶贴支持~ 膜拜大牛,谢谢楼主分享 太腻害了.哇咔咔
膜拜大牛,谢谢楼主分享