搜游网:好玩的单机游戏下载站!

所在位置:首页 > 新闻资讯 > 什么软件有破解游戏(什么软件可以破解游戏内购)

什么软件有破解游戏(什么软件可以破解游戏内购)

发布时间:2023-08-11 11:47:28来源:搜游网

(
(
  • 游戏类别:
  • 游戏大小:3.19MB
  • 游戏语言:
  • 游戏版本:4.0
点击查看
扫码查看

以下转自52破解 yikuaiyingbi大神:


今日偶然看到一个还算热门的游戏,看到里面有内购的方法。尝试破解一下

1、拖入AK后重打包,安装到手机上后发现黑屏了

2、然后安装原版测试下,正常运行,那排除手机适配问题,应该就是有验证了

3、既然这样那我们为了确定到底验证的哪里,先只签名测试下,重新安装下,安装手机后还是黑屏。到这里我猜测十有八九是签名验证了

4、祭出四哥的工具,kstools拿出来一顿操作,然后自信满满的再次安装到手机上。发现还是黑屏,这就尴尬了,看来应该不仅仅是签名验证了。这时候没什么捷径可走了进代码分析吧

5、游戏包太大,使用jadx单独打开dex文件

6、然后使用Android killer打开apk。找到入口类后在jadx中打开

「逆向」Android killer和IDA破解Android游戏内购

这个类通过类名不难看出只是一个闪屏,我们要分析的应该不在这里,所以不用太关注,大致看下代码就行

「逆向」Android killer和IDA破解Android游戏内购

在oncreate最后执行了这个方法,看来是跳到了

「逆向」Android killer和IDA破解Android游戏内购

「逆向」Android killer和IDA破解Android游戏内购

定位到SplashScreen类中

「逆向」Android killer和IDA破解Android游戏内购

看起来也是一个闪屏,但是里面有一些初始化和加载so的操作,进入到MobileAuth.init(this);发现走进了这个native方法里。

「逆向」Android killer和IDA破解Android游戏内购

暂时先不管他了,继续往下一个activity看。也就是OnyxActivity类;先看onCreate方法中:

「逆向」Android killer和IDA破解Android游戏内购

也没有什么可以一看看出来的验证方法。懵逼,因为游戏并没有闪退,只是黑屏,看异常看不出有哪里出了问题,所以我在这些方法下面插入log,看执行到哪一个时候卡住了。

「逆向」Android killer和IDA破解Android游戏内购

为了防止寄存器使用乱掉出错,这里直接在原来基础上+2,增加两个寄存器,增加自己的log代码

「逆向」Android killer和IDA破解Android游戏内购

然后再次打包运行,发现卡在了10之后,11没有被打印出来,而且前面的日志重复输出,说明一直循环卡死了。invoke-virtual {v2, p0},Lcom/ubisoft/OnyxEngine/OurpalmChannel;->Init(Landroid/app/Activity;)V进到这个方法看看

「逆向」Android killer和IDA破解Android游戏内购

看着像是广告和支付的初始化,这个方法里有两处初始化地方,在这两处加完log信息后发现卡在了Ourpalm_Entry.getInstance(mActivity).Ourpalm_Init("2","1.0", "1.0", mListener);进去之后我的内心是崩溃的,这么多代码看的我头大,真的不想再一个个打印了,还好猛地看到了RunSign这个jni方法,熟悉的味道,先看看这个方法

「逆向」Android killer和IDA破解Android游戏内购

就是他

「逆向」Android killer和IDA破解Android游戏内购

打开IDA拖入so,方法在libourpalm_sdk_a.so内

「逆向」Android killer和IDA破解Android游戏内购

「逆向」Android killer和IDA破解Android游戏内购

到这儿几乎一目了然了,是做了dex+签名的效验

「逆向」Android killer和IDA破解Android游戏内购

在checksign这个函数内也发现了退出游戏的代码位置,既然这样我们直接选择简单的操作方式给两个跳转nop掉。

「逆向」Android killer和IDA破解Android游戏内购

「逆向」Android killer和IDA破解Android游戏内购

把上面的两条改为:C0 46(也就是NOP)

「逆向」Android killer和IDA破解Android游戏内购

改完后,再次重签名,安装,完美运行。

「逆向」Android killer和IDA破解Android游戏内购

接下来定位支付位置:其实刚刚分析代码时候已经大致看到支付位置了。为了确定还是分析下。刚刚分析到OurpalmChannel类时候,可以看到这里他自定义了一个 ourpalm.tools.android.logs.Logs类

「逆向」Android killer和IDA破解Android游戏内购

「逆向」Android killer和IDA破解Android游戏内购

这里我们把isShowLog的赋值改下

「逆向」Android killer和IDA破解Android游戏内购

这里初始化时赋值改为true,再次打包运行游戏,点击支付,成功打印日志:

「逆向」Android killer和IDA破解Android游戏内购

支付页面,我们没登录

「逆向」Android killer和IDA破解Android游戏内购

log日志页面

「逆向」Android killer和IDA破解Android游戏内购

下面这个pay方法也是这个类中

「逆向」Android killer和IDA破解Android游戏内购

这就对上了,说明是这个支付方法。写过支付的人应该都知道,支付的回调一般在handler或者提供的接口中,这里可以看出来他传入了mListener这个回调接口,我们看下这个接口初始化的地方

「逆向」Android killer和IDA破解Android游戏内购

「逆向」Android killer和IDA破解Android游戏内购

点进去OurpalmIAPListener中看下

「逆向」Android killer和IDA破解Android游戏内购

这里就能看到支付成功的位置了,就是OurpalmChannel.PayResultCallBackNative(true);和上面的支付失败也就是true/false的区别。至于为什么不是下面的那一堆。我看了下方法内部走到最后是一些统计的东西。然后我们在执行pay的那里,执行这个成功方法就行了。

「逆向」Android killer和IDA破解Android游戏内购

再次打包运行。点击购买,成功获得

「逆向」Android killer和IDA破解Android游戏内购

本文的目的只有一个就是学习逆向分析技巧,如果有人利用本文技术进行非法操作带来的后果都是操作者自己承担,和本文以及本文作者没有任何关系!

第一次发帖,不足之处大家多多指教。

kstools工具下载:https://github.com/fourbrother/kstools

什么软件有破解游戏(什么软件可以破解游戏内购)
  • 热门资讯
  • 最新资讯
  • 手游排行榜
  • 手游新品榜