singlor 发表于 2022-1-17 12:00:23

v1.3.1内购破解之一下内购的方法和原理

概括

最近一直在研究反向,应用内购买破解了这块。我发现这很有趣。当然,也仅限于技术研究。下面通过单人游戏的内购破解来详细介绍内购的方法、原理和保护。

材料准备

1)APP下载,本次演示软件:登山赛车到天国探险

我们可以从它的官网下载,在其他市场下载低版本。

这里我又下载了一个v1.3.1,以后会有用。

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_0.jpg

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_1.jpg

2)至于工具,加个夜神模拟器就好了

3) 看一下,可以正常编辑回来,省了很多麻烦

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_2.jpg

应用内购买破解

01. 应用内购买流程

应用内购买是在应用中付费购买道具或其他东西。加入第三方SDK(支付SDK)。

支付SDK提供商(如中国移动、中国联通、支付宝等)首先开发了支付SDK,

并进行加固等保护,然后为开发者提供支付接口的使用指南,

开发者将支付SDK添加到APP后,通过相关配置使用SDK即可完成支付功能。

从国内单机应用来看,内购流程可以简写为:APP-支付SDK-支付SDK服务器-APP。

Play内购流程比国产安卓要复杂一点

国内主流的内购SDK开发主要分为两类:

即短信运营商(三大运营商)和第三方支付平台(微信、支付宝等)

02. 搜索关键字符

应用内购买的主要功能

90000×2328

从字面上看,可以知道是用来判断支付结果的(其中0×2328是9000的16进制)

02×01

直接搜索购买失败的

1)。安装游戏后,购买金币,填写任意金币,让它弹出购买失败的错误信息

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_4.jpg

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_5.jpg

2)。搜索关键字符“短信验证码验证失败”。另外,没有找到转码。

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_6.jpg

3)。尝试搜索其变量名“”

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_7.jpg

4)。果然版本更新了,但是名字没变,尝试搜索它的ID“”

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_8.jpg

5)。但是目前我还没有找到它的关键判断语句,所以,另找方法

02×02 搜索支付API密钥接口

1>我们看一下支付方式内购破解直接支付成功游戏,还有微信和支付宝天外神坛,但是我们这里看短信支付(朋友支付)

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_9.jpg

2>从输入的手机号码的错误提示可以看出是手机界面。在我们把它拉进去之后

搜索移动支付API的关键字“”(前面已经介绍过第三方SDK的相关信息)

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_11.jpg

3> 另外,查看.xml文件,发现原来应用的入口已经改变

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_12.jpg

4>我们看原始入口下的类(有需要的可以看反编译的JAVA代码),这里我们直接看Smali语句

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_13.jpg

5>跳转到:,显然这是一个API的返回码,我们看一下:

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_14.jpg

6> 从:的分支可以断定:与购买失败有关,反之:与购买成功有关

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_15.jpg

7>我们可以让它的判断永远成功,从而达到内购破解的目的。有很多方法可以改变它。

这里我们可以简单的使用 goto 命令,目标是让它跳转到一次购买成功

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_16.jpg

汇编中的跳转指令

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_17.png

1、goto:偏移量不能为0,通过短偏移量无条件跳转到目标;

2、If语句;

3、

- v0, : v0 是要判断的值;

:偏移表,表中的值是有规律的增加的;

- v0, : 偏移表中的值是不规则的。

8> 最后,我们来看看我们修改的结果

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_18.jpg

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_19.jpg

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_20.jpg

02×03 修改游戏记忆

这个不多说,直接上工具

一个。手机root,安装目标APP和内存修改器(这里用到了八神器)

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_21.jpg

湾。先启动八神器(类似于葫芦侠、幸运饼干、饼干修改器等)

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_22.jpg

C。进入app,开始竞速,然后拿出八件神器搜索金币的价值

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_23.jpg

d。由于数值较多,可以继续搜索进一步确定金币的内存数据

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_24.jpg

e. 可以看到只有一条数据发生了变化,直接修改即可。这里改为

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_25.jpg

F。修改成功,也意味着游戏没有保护

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_26.jpg

G。至此,你可以退出八神器继续飙车了,秋名山在等你

http://tt.ccoox.cn/data/attachment/forum/20220117/1642392023942_27.jpg

02×04 其他方法

其他方法如进程注入、Hook、修改初始数据(找到本地相关文件直接修改)等内购破解直接支付成功游戏,

反正就是要改,,,为了尊重开发者,还是按照游戏规则慢慢玩吧,不然会失去一些游戏的乐趣。
页: [1]
查看完整版本: v1.3.1内购破解之一下内购的方法和原理