APP小说VIP功能分析

admin 2024年6月28日19:45:14评论2 views字数 2008阅读6分41秒阅读模式

看完正己视频后一直想练手,又找不到好一点的目标,偶然一次听朋友说看小说要钱后就想到了一些小说APP,本来是直奔大一点的APP下手的,但是简单看了一下直接扔回收站了,转头找了一个小一点的APP作为练手。

PS:新手入门真不建议直接上手大厂APP,纯纯折磨。

某某小说

加固:腾讯加固。
检测:无frida检测,无xp检测。
版本:1.4.5


去壳

APP小说VIP功能分析

FunDex去壳,运行FunDex后启动APP等待一下后回到APP的私有目录会看到几个dex文件。

APP小说VIP功能分析

左边是APP私有目录,右边是APP结构。对比一下dex文件可以发现左边有两个dex文件与右边的dex大小刚好一致,由此可以推断这两个dex文件就是壳,而剩下的dex文件就是脱壳后的。

把脱壳后的dex文件替换到APP结构目录中后修复一下dex文件签名APP安装(如有核心破解可不签名)。启动APP无闪退即脱壳成功。


VIP分析

拖到jadx分析,isVip大法找到方法。

public boolean isVip() {
return this.vip;
}

在User类下定位到这个isVip方法,显然这个是用户信息类了。

我首先尝试使得这个isVip方法直接返回true

frida调试

let UserVip = Java.use("com.*******.******.****.model.****.User");
UserVip["isVip"].implementation = function () {
let result = this["isVip"]();
result = true;
console.log(`User.isVip result=${result}`);
return result;
};

spawn 和 attach 模式均可以,刷新一下APP后可以看到Hook代码回显。

APP小说VIP功能分析

同时APP也显示了会员信息。

APP小说VIP功能分析

测试一下vip功能是否正常:

APP小说VIP功能分析

显然只修改 isVip 的返回值是无法正常使用vip的功能的。

回到 isVip 方法继续分析,查看方法的交叉引用:

APP小说VIP功能分析

其中这个return嫌疑最大,跟进方法分析:

private static final boolean b() {
User u = AppHelper.c().u();
return (u == null || u.isVip() || u.getVipEndTime() == g.f("key_last_vip_end_time", 0L, 1, null)) ? false : true;
}

其中的 isVip 方法已经处理过了,那么剩下的就是getVipEndTime方法了。
该方法直接返回了 vipEndTime 属性的数据。

不妨交叉引用看一下这个方法的调用:

str = String.format("会员有效期至:%s", Arrays.copyOf(new Object[]{DateTimeUtil.e(u.getVipEndTime() - 1440000)}, 1));

如此以来,代码就明确了。

虽然使得isVip方法直接返回了true,但 vip 的时间是小于当前时间的,所以vip功能无法使用。

1440000显然是时间戳了。

直接构造一个大于当前时间的时间戳使得 getVipEndTime 方法永久返回这个时间戳。

Hook:

 

let UserVipTime = Java.use("com.*******.******.****.entity.User");
UserVipTime["getVipEndTime"].implementation = function () {
// console.log(`User.getVipEndTime is called`);
let result = this["getVipEndTime"]();
result = 4735689600000;
console.log(`User.getVipEndTime result=${result}`);
return result;
};

此时再看vip到期时间:

APP小说VIP功能分析

测试vip功能:

APP小说VIP功能分析

正常使用。

PS:这个APP还可以自定义用户名,如果直接调取 User类下的 getNick 方法设置返回值的话是无法正常显示自定义用户名的。需要在调用 getNick 方法前调用一次 GetMobile 方法,具体逻辑就不再阐述了。


结语

其实逻辑并不复杂,稍微有点 java 功底都可以分析出 vip 的逻辑。以上算是看完正己大佬视频后的一个小锻炼,不过这还远远不够,在我寻找目标时发现一款天气APP,也可以分析出 vip 的逻辑,再后来编写为XP模块,目前已经完成对两款APP的 vip 功能 hook。

免责声明:
以上分析仅作为技术交流,凡是以此文章作为破坏目标APP,牟利均与作者无关。[/md]

APP小说VIP功能分析

看雪ID:嘎嘎真的很棒

https://bbs.kanxue.com/user-home-978681.htm

*本文为看雪论坛优秀文章,由 嘎嘎真的很棒 原创,转载请注明来自看雪社区

APP小说VIP功能分析

原文始发于微信公众号(看雪学苑):APP小说VIP功能分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月28日19:45:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   APP小说VIP功能分析https://cn-sec.com/archives/2897246.html

发表评论

匿名网友 填写信息