好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 LivedForward 于 2019-9-10 16:05 编辑
软件名称:音乐剪辑
这款软件UI做的特别漂亮,功能也很强大,可以作为一个音乐编辑的工具.
练手分析该软件内购授权思路,并解锁VIP全部功能.
软件授权机制做的很简单,希望大佬哥哥们批评指正.
.
软件没有订阅VIP之前底部有广告,启动界面也会有广告,而且每天功能使用会有次数限制
直接入正题:
软件没有加壳,只是对Java层的方法名和变量名进行了混淆,,可以说是非常简单了.
先将dex转化为jar,然后拖入jd-jui查看源码辅助分析.
这款软件直接修改支付结果是不行的,因为软件会后台异步获取订阅结果和订阅日期,这里就
选择对用户管理类作为入口点.因为一般订阅软件都有一个专门管理用户信息的类,里面就包含VIP
订等相关信息.
以微信支付为例:
在支付回调时会有Toast结果信息,我们根据这个信息定位到com.lixiangdong.songcutter.pro.activity.DingyueActivity
可以看到支付成功的函数调用了a(),跟进
,继续跟进ViewUtils里的重载a方法:
可以看到程序确实后台异步会从服务器获取订阅信息,大体思路就是匿名内部类实现了一个http通讯回调接口,
回调执行各种通讯结果,我们看到重写的a(LoginBean param1LoginBean)方法里,很明显 SPUtils这个类就是负责
管理用户信息的类.
再往后面看:
看到一个b()方法,应该可能就是初始化用户的相关信息,timeExpire,isVIP等等,
看到这里就好办了,我们可以手动将timeExpire和isVIP等字段赋值,但是timeExpire格式我们还需要
进一步查找.
在之前的一个类DingyueActivity 里看到这个函数:
在用户下订单之前会先对用户信息进行一系列判断,其中就有一个过期时间是否为2099-01-01
看到这里,我的思路就是将timeExpire和isVIP等字段进行修改,然后将用户初始化信息的代码放到程序入口的位置,这样程序启动
就已经是VIP用户了.
现在我们来修改程序对应的smali代码
这里是对应的初始化用户信息的smali代码,可以看到const/4 v3,0x0
这条指令意思是把0x0赋值给占4个字节的v3寄存器,猜想肯定是int型,0x0就是0.
在之前我们就已经知道程序初始化用户信息是将用户isVIP等boolean字段赋值为false
所以在这里我们肯定0x0就是false,所以我们将0x0改为0x1即true,然后将timeExpire赋值
为2099-01-01,将此段smali代码复制到程序入口即可啦!
效果图:登陆就是VIP,没有广告和功能次数限制了,即使不登陆也无广告和功能次数限制.
总的来说分析这个软件的订阅授权还是挺简单的. |
免费评分
-
参与人数 15 | 吾爱币 +12 |
热心值 +13 |
收起
理由
|
skyn
| + 1 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
隐世的王
| + 1 |
|
我很赞同! |
windy_ll
| + 1 |
|
我很赞同! |
对影三人
| + 1 |
+ 1 |
谢谢@Thanks! |
zhao.
| |
+ 1 |
我很赞同! |
整改到秃头
| |
+ 1 |
用心讨论,共<span id="transmark" style="display: none; wid |
sunnylds7
| + 1 |
+ 1 |
谢谢@Thanks! |
夕日黄
| + 1 |
+ 1 |
谢谢@Thanks! |
fei8255
| + 1 |
+ 1 |
用心讨论,共获提升! |
gaosld
| + 1 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
smile5
| + 1 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
liu2531428
| + 1 |
+ 1 |
我很赞同! |
xinkui
| + 1 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
indian806
| |
+ 1 |
谢谢@Thanks!感谢分享,是不是按你这个思路,我也能破解其他的了 |
gg8899mm
| + 1 |
+ 1 |
用心讨论,共获提升! |
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|