黑客玩手游作弊全过程
最近下载了一款游戏『狂暴之刃』
好像是模仿psp的战神:斯巴达之魂
可惜游戏中的画面还是没有PSP做的好
在网上看到这款游戏的安卓破解版
都是内购破解,无限金币,无限钻石之类的
就想着既然那么多金币钻石
都是用来升级武器之类的
最终也就是升级他的攻击力
于是思考能不能修改它的攻击力呢?
开始着手试下
需要用到的工具如下:
Android killer
IDA pro
arm_asm
010Editor
首先将游戏apk拖入Androidkiller中解包
得到的目录结构,如下图:
随便浏览了一下
发现这是用cocos2d-x游戏引擎制作的
那么多数数据初始化应该就是在lib文件夹里
打开后缀名为.so文件所在的目录
以我的习惯就是先从比较大的文件开始看
因为游戏中初始化的东西多了,逻辑多了
那么它的so文件肯定也大
(个人观点,猜的,我也没使用cocos2d-x开发过游戏)
所以把大文件直接拖入ida中查看此文件
映入眼帘的是这样的一种格式,如下图:
那么一般我都会在Exports栏下搜索关键字
因为Exports栏下都是一些方法的输出
如果游戏中一般要获取钻石、金币之类的
正常的习惯就是getCoin,getDiamond。。。
但是一般我都直接搜Coin,Diamond。。。
因为如果写这个游戏的人他写的是get_Coin,get_Diamond。
或者别的,那我们就搜不到了,因为有下划线或其他的
那么我们直接在此栏下面Ctrl+F搜索attack(攻击)
得到一堆的结果
那么我们怎么判断哪个是真的获取攻击值呢
一般就直接找那种有getXXX什么的
当然可能也有别的情况,这里可能需要点英文基础
不懂的也可以立马百度查,看懂一些关键字
有时候也能大概猜到哪个函数的作用。
看到heroAttack,猜想有可能,点进去看下。
一脸懵逼,其实汇编我也看不太懂,还在学习中。
再继续看以下的方法看到有getWeaponAttack
这个极有可能就是获取攻击力的方法
点进去看看,按空格键,切换到试图模式
一般我看这种方法,都会大致浏览下整个方法
看起来不是很复杂,虽然也看不太懂
但是如果它要输出的话,肯定在最后获取一个数值
最后就是给R0赋值了,那我们就直接给它赋固定值吧
变成不管它上面的逻辑怎么处理
到最后一定是执行我们给的固定值
那么我们找到关键点了,点击此处,然后切换到Hex-view-1查看它的16进制码
复制它的地址及对应的16进制码
先放到txt文件中,然后关闭这个文件
怎么直接给R0赋值?
这里需要用到一个工具arm_asm.exe
这是一个汇编转16进制码的工具,此工具有些是无法转换的,例如。。。
关闭ida之后
我们再使用010Editor打开刚才的那个so文件
可直接把so文件拖入010Editor
因为知道最后获取攻击力的地址了
所以这里直接Ctrl+G跳转到那个地址
改完----保存----再次编译---运行
penta kill
已经破解的游戏和arm_asm工具:
http://pan.baidu.com/s/1miTyFgc 密码:8g4v
总结:
这里主要讲到so文件的修改方式
和利用一些关键词去修改,分享微不足道的思路
如果你有搞怪的方法,还请留言一起探讨下
以上只是用来技术交流
如果您使用该已经破解的游戏用于任何非法用途
均与本作者无关。