点击上方 Android扫地僧 ,选择 星标 公众号html
重磅资源、干货,快上车!
java
LivedForward 算法
来源:https://www.52pojie.cn/thread-1022003-1-1.html服务器
写在前面:发完这篇文章,我就去捡废品了,记得点在看
微信
软件名称:音乐剪辑
app
这款软件UI作的特别漂亮,功能也很强大,能够做为一个音乐编辑的工具.
练手分析该软件内购受权思路,并解锁VIP所有功能.
软件受权机制作的很简单,但愿大佬哥哥们批评指正.
软件没有订阅VIP以前底部有广告,启动界面也会有广告,并且天天功能使用会有次数限制直接入正题:软件没有加壳,只是对Java层的方法名和变量名进行了混淆,,能够说是很是简单了.
先将dex转化为jar,而后拖入jd-jui查看源码辅助分析.
这款软件直接修改支付结果是不行的,由于软件会后台异步获取订阅结果和订阅日期,这里就选择对用户管理类做为入口点.由于通常订阅软件都有一个专门管理用户信息的类,里面就包含VIP订等相关信息.
以微信支付为例:
在支付回调时会有Toast结果信息,咱们根据这个信息定位到com.lixiangdong.songcutter.pro.activity.DingyueActivity
异步
再日后面看:
进一步查找.编辑器
在以前的一个类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,没有广告和功能次数限制了,即便不登录也无广告和功能次数限制.

总的来讲分析这个软件的订阅受权仍是挺简单的.
完
关于【逆向】,字面意思,就是反着来,正常开发是写java代码打包成apk,那么逆向就是由apk到java / c。在逆向这个小众的行业内,其实出路不只仅只有一条破解别人的代码,实质上它还能够作到保护。正所谓一攻一防。存在即合理,如今去各大招聘网站搜索【Android逆向工程师】,也仍是有一大堆的招聘需求。
关于逆向开发,若是有更多的兴趣,能够回复关键字【逆向】,获取如下资料包
推荐阅读
1. Android弹窗骚操做——无需权限显示悬浮窗,兼谈逆向分析app
点“在看”的都涨工资了

本文分享自微信公众号 - Android扫地僧(Android-Mas)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。