stars-one 发表于 2018-4-17 10:56

android破解总结之支付宝内购破解思路(三种思路)

本帖最后由 stars-one 于 2018-4-17 10:57 编辑

想学一下支付宝内购的相关知识,但是搜索了论坛,发现但是没有相关的帖子,于是便是打算自己来写一篇总结
一、9000的十六进制代码修改
搜索9000的十六进制,也就是搜索0x2328
可以找到一个smali,里面含有着switch_0这代码
http://images2017.cnblogs.com/blog/1210268/201801/1210268-20180104215049471-80503241.png
之后,我们进去就会看到一个switch结构的分支语句,将6001(对应着支付取消)的十六进制0x1771后面的switch修改为switch_0即可
http://images2017.cnblogs.com/blog/1210268/201801/1210268-20180104215251518-705364007.png
相信大家也不用我多解释什么了吧

但是,经过我的测试,这方法只适用于在手机不安装支付宝的情况下,如果有支付宝的话,唤起支付宝破解就是不成功的,如何解决呢,请往下看

二、在手机安装有支付宝的情况下,让其不唤起支付宝,而是跳转到支付宝的网页界面
这种方法我尝试了很久,但是都是不成功,如果有路过的大神,希望能够补充一下,感激不尽!!
三、搜索“9000”,修改对应的逻辑
一般来说,各个APP中都会有一个方法来验证支付宝返回的状态码是否为9000(就是是否成功支付),所以我们可以找到这个方法,修改它的判断条件,从而实现破解
在搜索出来的结果中,一般会有多个,可以看下面的图片

可以从搜索到的那个地方往下看看,看看是否有paysuccess的方法调用,如果有我们就能确定这个文件就是我们要修改的

上上一张图片,我选中了一条代码,这一条代码就是实现支付成功跳转的重要判断,我们可以看一下cond_2的代码

可以发现,如果跳转到cond_2的话,就说明是跳过了支付成功执行的相关代码,那么我们将这一行判断删除就行了,它就会执行支付成功的代码了

这里需要提一下,每个的APP的判断机制会有所不同,上面这一个就是判断是否不等于9000,是的话则跳转到支付失败,还有一些就是判断是否等于9000,是的话跳转到支付成功,请注意这两个的区别,具体情况需要具体分析

写帖不易,希望大家能多多评分,多给点CB!!

debug_cat 发表于 2018-4-18 19:03

搜索下支付宝的包名就知道了,调起其他APP,需要知道它的包名!或者搜索下,过去手机安装的APP的api,系统有挨批api可以检查,这个APP是否安装在系统中。如果这个逻辑写在支付宝的so中,就不知道怎么滴搞,java层还好

低调丶 发表于 2018-4-17 11:09

不唤起支付宝APP 那你还得破解支付宝的sdk 也就是对应的APP调用的sdk吧

CoderXI 发表于 2018-4-17 11:10

感谢分享

bbxcs 发表于 2018-4-17 11:18

感谢大神分享,

mylin 发表于 2018-4-17 11:22

gunxsword 发表于 2018-4-17 11:24

感谢分享心得.玩转APK,思路最重要!

hullua 发表于 2018-4-17 11:29

一直想问如何不调用支付宝

yangcongs 发表于 2018-4-17 11:32

666 我回去试一下

13GA 发表于 2018-4-17 11:49

受教了大佬{:1_893:}

by、小夜 发表于 2018-4-17 11:53

不错再总结微信内购就可以帮到很多小白了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: android破解总结之支付宝内购破解思路(三种思路)