#热门
某猫APP 逆向VIP去除视频保存相册教程

apple 92,029 2023-09-11 1
文章内容

今天无意间看到的一个帖子,写的很好~ 逆向的方式方法不止一个,仅供学习参考使用。比较适合新手的是使用MT管理器查找相关函数直接修改~
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
1.这篇分析过程 教程 可破解VIP,实际上VIP和普通没区别。
2.已修改取消了将视频缓存到相册的操作,避免打开相册社死。
3.自己实践之后,不要传播APP!不要传播APP!不要传播APP!

一、定位

 

某猫APP 逆向VIP去除视频保存相册教程

在APP的线路切换中选择VIP线路,会弹出 `只有VIP用户才能切换线路` 的提示框
打开 jadx 对APP进行反编译,搜索代码 `只有VIP用户才能切换线路`

某猫APP 逆向VIP去除视频保存相册教程

二、hook

某猫APP 逆向VIP去除视频保存相册教程

直接hook getIs_vip 函数

1
2
3
4
5
6
7
8
// 判断vip
let UserModel = Java.use("com.xxx.svideo.model.UserModel");
UserModel["getIs_vip"].implementation = function () {
console.log(`UserModel.getIs_vip is called`);
let result = this["getIs_vip"]();
console.log(`UserModel.getIs_vip result=${result}`);
return result;
};

hook结果打印

某猫APP 逆向VIP去除视频保存相册教程

可以看到 result = 0的,通过分析刚刚的代码,当返回值为 “1” 时则为VIP用户,修改一下hook代码,让它一直返回 “1”

1
2
3
4
5
6
7
8
// 判断vip
let UserModel = Java.use("com.xxx.svideo.model.UserModel");
UserModel["getIs_vip"].implementation = function () {
console.log(`UserModel.getIs_vip is called`);
let result = this["getIs_vip"]();
console.log(`UserModel.getIs_vip result=${result}`);
return "1";
};

某猫APP 逆向VIP去除视频保存相册教程


在APP中每看一个视频都会缓存到手机的相册中,为了防止打开相册社死,以下将把缓存的函数给hook掉

一、定位我是在寻找视频详情信息的时候定位到的


某猫APP 逆向VIP去除视频保存相册教程

进去之后发现都是和视频相关的,于是就仔细的找了一下,就发现了 videoData 这个函数


某猫APP 逆向VIP去除视频保存相册教程
进到第一个函数没看到我想看到的

某猫APP 逆向VIP去除视频保存相册教程
进到第二个函数,终于看到了File,getProxyUrl 这个函数大概应该(没细看):根据第一个url去下载成文件,并且返回一个本地的url连接,那么我们可以不去执行这个函数,直接将参数1也就是原始的URL直接返回


某猫APP 逆向VIP去除视频保存相册教程

二、hook

1
2
3
4
5
6
7
8
9
// 这个函数应该的作用(没细看):根据mp4url去下载到一个文件中,然后返回本地的一个url,为了防止打开相册社死,我们在hook代码中不去执行这个函数,
// 而是把参数1的url直接返回获取,这样子就不会中下载文件的操作,避免社死
let HttpProxyCacheServer = Java.use("com.danikula.videocache.HttpProxyCacheServer");
HttpProxyCacheServer["getProxyUrl"].overload('java.lang.String''boolean').implementation = function (url, allowCachedFileUri) {
    // console.log(`HttpProxyCacheServer.getProxyUrl is called: url=${url}, allowCachedFileUri=${allowCachedFileUri}`);
    // let result = this["getProxyUrl"](url, allowCachedFileUri);
    // console.log(`HttpProxyCacheServer.getProxyUrl result=${result}`);
    return url;
};


完整hook代码

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// [url=home.php?mod=space&uid=686208]@AuThor[/url] :
// @Contact : 
// Frida Hook
// Frida代码提示的配置 npm i @types/frida-gum
/*
启动
frida -U -F -l hook_vip.js -o ./log/hook_vip.txt
frida -U -f com.xxxxx.app -l hook_vip.js -o ./log/hook_vip.txt --no-pause
*/
Java.perform(function () {
    console.log("kuaimao hook 进行中...")
    // 打印调用栈,主动调用,静态函数
    function showStack() {
        showSeparator();
        console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
    }
    function showSeparator() {
        console.log("<========================================================================================>");
    }
    // 判断vip
    let UserModel = Java.use("com.xxx.svideo.model.UserModel");
    UserModel["getIs_vip"].implementation = function () {
        // console.log(`是否为VIP.getIs_vip is called`);
        let result = this["getIs_vip"]();
        console.log(`是否为VIP.getIs_vip result=${result}`);
        return "1";
    };
    // 打印部分请求地址
    // let NewHomeDetailActivity = Java.use("com.xxx.svideo.ui.activity.NewHomeDetailActivity");
    // NewHomeDetailActivity["getVideoDetail"].implementation = function (path) {
    //     console.log(`NewHomeDetailActivity.getVideoDetail is called: path=${path}`);
    //     this["getVideoDetail"](path);
    // };
    // 获取视频ID
    let VideoModel = Java.use("com.xxx.svideo.model.VideoModel");
    VideoModel["getMv_id"].implementation = function () {
        let result = this["getMv_id"]();
        console.log(`视频ID VideoModel.getMv_id result=${result}`);
        return result;
    };
    // post请求的一些参数
    // var jSONObject = Java.use("org.json.JSONObject")
    // jSONObject.toString.overload().implementation = function () {
    //     let result = this.toString();
    //     console.log("jSONObject.put",result);
    //     return result;
    // }
    // 视频data总函数位置,下载
    // NewHomeDetailActivity["videoData"].implementation = function (videoDetailModel) {
    //     console.log(`NewHomeDetailActivity.videoData is called: videoDetailModel=${videoDetailModel}`);
    //     this["videoData"](videoDetailModel);
    // };
    // 具体封面图
    let VideoDetailModel = Java.use("com.xxx.svideo.model.VideoDetailModel");
    VideoDetailModel["getMv_img_url"].implementation = function () {
        let result = this["getMv_img_url"]();
        console.log(`jpg封面.getMv_img_url result=${result}`);
        return result;
    };
    // 具体mp4视频
    VideoDetailModel["getMv_play_url"].implementation = function () {
        let result = this["getMv_play_url"]();
        console.log(`mp4视频.getMv_play_url result=${result}`);
        return result;
    };
    // 这个函数应该的作用(没细看):根据mp4url去下载到一个文件中,然后返回本地的一个url,为了防止打开相册社死,我们在hook代码中不去执行这个函数,
    // 而是把参数1的url直接返回获取,这样子就不会中下载文件的操作,避免社死
    let HttpProxyCacheServer = Java.use("com.danikula.videocache.HttpProxyCacheServer");
    HttpProxyCacheServer["getProxyUrl"].overload('java.lang.String''boolean').implementation = function (url, allowCachedFileUri) {
        // console.log(`HttpProxyCacheServer.getProxyUrl is called: url=${url}, allowCachedFileUri=${allowCachedFileUri}`);
        // let result = this["getProxyUrl"](url, allowCachedFileUri);
        // console.log(`HttpProxyCacheServer.getProxyUrl result=${result}`);
        return url;
    };
})

 

收藏 (1) 打赏

感谢您的支持,我会继续努力的!

支持微信/支付宝赞助,为爱发电感谢赞助!

© 版权均为原软件应用开发所有,如有侵犯到您的权益,请联系邮箱:uczywcom@gmail.com下架。

优创资源网 apple 某猫APP 逆向VIP去除视频保存相册教程 https://app.ucgod.cn/6961.html

但行好事 莫问前程

相关文章

发表评论
16 条评论
2024年8月20日 19:28 回复

有新版的吗,我之前下过你另一个网盘里的,那几个只有某猫可以正常用,但是某猫又会自动保存相册,

    2024年8月20日 20:27 回复

    @qnd 没有。24年初后面就没碰过这类软件了~

2024年8月20日 19:12 回复

怎么屏蔽呢,能告知一下吗?谢谢了

    2024年8月20日 19:13 回复

    @qnd 我并没有测试,这是几年前逆向的一款软件。

2024年8月20日 11:58 回复

也就是说苹果版的去除不了自动保存相册吗?

    2024年8月20日 19:11 回复

    @qnd 这个理论是可以的,屏蔽掉它的功能就可以了。

2024年8月20日 09:13 回复

这个教程适应苹果系统吗?用什么修改

2024年8月20日 01:19 回复

能说简单点吗,新手有点看不到

2024年2月12日 05:31 回复

能给个下载地址嘛

2024年1月23日 19:30 回复

啥时候能上架呀

2023年9月21日 19:09 回复

大人版,都没了吗