【原创】安卓逆向实例 - 食谱大全【永久会员 + 免登录 + 解锁食谱教程视频】
本帖最后由 泄密无花 于 2023-2-10 15:27 编辑# 0x00 前言
最近想自己做饭,所以就有了这篇帖子
# 0x01 准备工作
食谱大全(最新版本:5.2.1):https://sj.qq.com/appdetail/com.jnzc.shipudaquan
使用工具:MT管理器、jadx
# 0x02 逆向功能
## 1、永久会员
### 定位关键方法
搜索 **isvip** 搜索出两个类中有同样的方法
第一个类:**amodule.model.User**
!(data/attachment/forum/202302/10/094939kjaxa8gzqbz1ceg2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "VIP-1.png")
第二个类:**acore.Logic.LoginHelper**
!(data/attachment/forum/202302/10/095024wd9sfvmbs6cmd692.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "VIP-2.png")
看得出来**acore.Logic.LoginHelpe**r 中的**isVip()** 才是判断 VIP 的逻辑
```Java
public static boolean isVip() {
return isUserVip() || (isDeviceVip() && !isLogin());
}
```
搜索 **isDeviceVip** 这个方法是判断VIP课程的,单独存在一个类
类名:**acore.Logic.DeviceVipManager**
!(data/attachment/forum/202302/10/101526jygu6iatz6j9mcml.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "isDeviceVip.png")
### 修改代码
经过测试,修改 **amodule.model.User** 中的 **isVip()** 方法是无法逆向会员的
所以接下来要重点关注 **acore.Logic.LoginHelper** 中的 **isVip()** 方法
!(data/attachment/forum/202302/10/102906rpz9ajkmuybdn9ab.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "VIP修改-1.png")
1、**普通用户**的展示界面
课程页面

我的页面

2、**VIP用户**的展示界面
课程页面
!(data/attachment/forum/202302/10/103040b8ll5m80l36706kg.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "VIP课程.png")
我的页面
!(data/attachment/forum/202302/10/103046yvjwos4sgxvvioi7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "VIP我的.png")
## 2、免登录
关注到 **acore.Logic.LoginHelper** 中还有一个 **isLogin()**
!(data/attachment/forum/202302/10/103449pv6wvqy8bb8hxzy9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "isLogin.png")
修改之后

未登录的页面
!(data/attachment/forum/202302/10/103310df2g5fdh2h6f9l2h.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
免登录页面

## 3、解锁食谱教程视频
搜索 **isDeviceVip** 这个方法是判断VIP课程的,单独存在一个类
类名:**acore.Logic.DeviceVipManager**
```Java
public static boolean isDeviceVip() {
String obj = FileManager.loadShared(XHApplication.in(), DEVICEVIP_XML, KEY_ISVIP).toString();
deviceVipStatus = obj;
return "2".equals(obj);
}
```
!(data/attachment/forum/202302/10/103947gv57khhb0z507vv0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "isDeviceVip-2.png")
修改之后
!(data/attachment/forum/202302/10/104846u90909j85xwkg58m.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "isDeviceVip修改.png")
还需要修改 **isUserVip()**
学习一下; 666666,大佬 感谢楼主分享,谢谢分享学习知识 超级实用,已收藏,感谢大佬分享!!! 大佬,有成品么 feiyu361 发表于 2023-2-28 11:21
大佬,有成品么
没有哦,写完文章我就删了{:6_225:} 好东西赶紧拿走 感谢分享 继续学习
页:
[1]