某影视APP算法逆向分析

简介: 某影视APP算法逆向分析

一、抓取数据包

1、请求头有%加十六进制,说以是url编码,先解密一下

GET  http://m.mapps.m1905.cn/User/sendVer?request=jYgPer7AuEqdM+DYqs/AbNb35UrMvjLwt4+f0p3RHXc=  HTTP/1.1

2、需要找的数值是requests的组成、pid(常量值)、key、did(设备编号)

GET  http://m.mapps.m1905.cn/User/sendVer?request=jYgPer7AuEqdM%2BDYqs%2FAbNb35UrMvjLwt4%2Bf0p3RHXc%3D HTTP/1.1
sid:
pid: 236
key: 69b39cb24632252f7bb891bdb1f0de85
did: 010067028741939
uid:
ver: 100/95/2016020901
User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.2; HD1900 Build/N2G47O)
Host: m.mapps.m1905.cn
Connection: Keep-Alive
Accept-Encoding: gzip

二、搜索链接里关键字"User/sendVer"

0a2653c851af460fa595bd959398a8f1.png

1、查看aay.b()函数,DESede算法

key:iufles8787rewjk1qkq9dj76,iv:vs0ld7w3

2、由于DESede是对称加密算法,密文是:jYgPer7AuEqdM+DYqs/AbNb35UrMvjLwt4+f0p3RHXc=,可以反推一下得到加密内容为:mobile=15836353612&templateid=1

0eacb84100b54626af849e6b562bf92a.png

三、搜索关键字key

2d65d23f6d4748949b924e4057485923.png

1、查看v0.i()函数

public String i() {
        return abh.a(abb.c() + "m1905_2014");
    }

2、查看abb.c()函数,获取设备id

public static String c() {
        String v0_2;
        try {
            TelephonyManager v0_1 =  (TelephonyManager)BaseApplication.a().getSystemService("phone");
            v0_2 = v0_1 == null ? "" : v0_1.getDeviceId();
        }
        catch(Exception v0) {
            v0_2 = "";
        }
        return v0_2;
    }

3、查看abh.a()函数,获取md5值

public class abh {
    public static final String a(String arg9) {
        int v0 = 0;
        if(!TextUtils.isEmpty(arg9)) {
            char[] v2 = new char[]{'0', '1', '2', '3', '4', '5',  '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
            try {
                byte[] v1 = arg9.getBytes();
                MessageDigest v3 =  MessageDigest.getInstance("MD5");
                v3.update(v1);
                byte[] v3_1 = v3.digest();
                char[] v5 = new char[(((int)v1)) * 2];
                int v1_1 = 0;
                while(v0 < v3_1.length) {
                    int v6 = v3_1[v0];
                    int v7 = v7 + 1;
                    char v8 = v2[v8 >>> 4 & 15];
                    v5[v1_1] = v8;
                    ++v1_1;
                    v5[v7] = v2[v6 & 15];
                    ++v0;
                }
                arg9 = new String(v5);
            }
            catch(Exception v0_1) {
                arg9 = null;
            }
        }
        return arg9;
    }
}

4、最终就是设备id+m1905_2014,然后再算md5

2e9b90b2ca334476abebe75bafe6eeaa.png

四、响应值解密

6de278e6d6694ce5bb08e7e842b7e74b.png

禁止非法,后果自负

目录
相关文章
|
5天前
|
JSON 监控 算法
员工上网行为监控:利用Scala编写数据处理和分析算法
企业在数字化时代利用Scala进行员工上网行为监控,以确保合规和网络安全。通过Scala的数据处理和分析能力,读取CSV日志数据转换为DataFrame,分析员工行为,如统计最常访问网站。此外,还展示了将监控数据以JSON格式提交至公司网站的函数,实现实时信息更新与安全防护。
30 5
|
1天前
|
算法 搜索推荐 数据挖掘
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
|
1天前
|
算法 数据可视化 数据挖掘
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
数据分享|R语言改进的K-MEANS(K-均值)聚类算法分析股票盈利能力和可视化
|
1天前
|
数据采集 存储 算法
数据分享|Weka数据挖掘Apriori关联规则算法分析用户网购数据
数据分享|Weka数据挖掘Apriori关联规则算法分析用户网购数据
10 2
|
4天前
|
机器学习/深度学习 数据采集 算法
共享单车需求量数据用CART决策树、随机森林以及XGBOOST算法登记分类及影响因素分析
共享单车需求量数据用CART决策树、随机森林以及XGBOOST算法登记分类及影响因素分析
11 0
|
5天前
|
移动开发 算法 数据可视化
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
|
7天前
|
算法 数据可视化 搜索推荐
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
29 11
|
7天前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
35 13
|
7天前
|
算法 数据可视化 Python
R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
13 0
|
12天前
|
算法
Copula 算法建模相依性分析股票收益率时间序列案例
Copula 算法建模相依性分析股票收益率时间序列案例
13 0