xww2652008969 发表于 2022-6-10 15:26

某违法视频app解密

# 一,工具

`jadx`

`Fiddler.exe `

# 二,分析流程

## 1,播放视频

播放app里视频(因为视频类容属于非法内容,所以打了很多码,请谅解),发现提示需要开通vip。开始抓包

!(https://s1.328888.xyz/2022/06/10/CAEKg.jpg)

## 2,抓包(因为数据是https,设备经过处理)

!(https://s1.328888.xyz/2022/06/10/ChUYe.png)

发现图中url 像是视频地址,获取返回数据

!(https://s1.328888.xyz/2022/06/10/ChyXq.png)

这个应该是加密,只能逆向app

!(https://s1.328888.xyz/2022/06/10/ChJyA.png)

通过搜索关键字发现上面代码,encData是先用`AES/CBC/PKCS&Padding`加密然后再使用``base64`加密,需要寻找token。

因为`token`联想到验证发现请求头`Authorization`然后通过通过关键字查询发现一下代码

!(C:\Users\w\AppData\Roaming\Typora\typora-user-images\image-20220610014836758.png)

通过关键字查阅代码

!(https://s1.328888.xyz/2022/06/10/ChfPi.png)

怀疑`token`是Authorization,尝试解密,编写代码(token是隐私所以不写出来)运行

```java
      String encData = "ua6b7wMaDJkIQyVYFEVhykFKqcoCSrnAQrbnBQUJmS6GuAJwr8Qp6HGLiIE9q9qooxgVb/bVMkiVRIqOicXsUdJz9ftYhL0W86T/MIkJ2OODQG1yM1N7uXpIa7Zm6C3aGfTsqyqGwkoJzY6gpGSfLgY3g3NTSygZQcGjo3UqSlAYEbGtUufXG6rLVSBUbLWUFuaiwnifDcDpr47kzIjP6A4zOnxyJYj3iXky+zkbGJwNzsxW04gwr+mu05yFMzIbboQQztaLHTds7O9ZOwBG0FwwtR+OI16SvruzZNQI46VN/0lpNOnRIdXWJ22JwP0v24ULGBz4RSqcBtk4F9efuB2C8xjzrbgm3NGMOWgKdXDa8U02jDfmmMjrQO6weM2MQ8SfDTKZTg9O7auUOIgRij/qOoiUkfKN5prGkFWVpZJxhdSjSRZjLc7pjQnm0C4IZsecZYYgJ14pXrHc5nVuSSdkxQDwzTkNltuIDixy/OxWL4Yct92wpgY3MUSc5UZW/O1g53LSkQsSabt0WMHPJb7qbWSLb19TNUnLBszuxpGLCjQ5Bl4KNrjrWgRDGQT0eI83NxDsuBs2P+sgWL7gQPwoXEtHGnGtt7tWhxPanEhF827erO1OxNLvozQIew701w4dTGqeUjWL3+BGG3ZGXeDQKwBREUPWq723rmDiu5Mj9HNF27UA48ub5A4ScgTzomz81Z8q/ZcBi+QNAbgrcKW88u2sX6yafmjSYY/OApVyGFj9cgTSxmhYyKEGo+xcaJ7q5RMwPyRp11RqLMYV9vKXY0Q5eZ/tWE7Y8bJkCI2IREsQ3/eUAHVdoNQyeOzuZyFi7eI7AkhZAvCkceJSatWzke4UIMMcVDB/A6vWpC3X6E954IIeHbOb00cQNoUUMBw5q+nl+CY5qjiANE/p36wPNeIxBV92U1BduviZvx8N3SckF/73l7uE6JGNaJJpul1jUkolMxtsnRvffnV8EwFKNEzujvzRWNrwWKsg41a2Y12h+kL/BeRtRdCKub/BdMojn8Wd6o5xPDduGXlpLg==";
      String token = "这是token";
      try {
            String substring = token.substring(2, 18);
            SecretKeySpec secretKeySpec = new SecretKeySpec(substring.getBytes("UTF-8"), "AES");
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding ");
            cipher.init(2, secretKeySpec, new IvParameterSpec(substring.getBytes()));
            String str = new String(cipher.doFinal(Base64.getDecoder().decode(encData)));
            System.out.println(str);
      } catch (Exception e) {
            //TODO: handle exception
            System.out.println(e);
      }
```

!(https://s1.328888.xyz/2022/06/10/ChCMT.png)

生成字符串观察为json,优化一下并且发现m3u8地址,这个是视频地址,访问地址获取m3u8文件,`previewurl`为展示视频地址,`videourl`为完整视频地址,

`domain/enc.key`为假的key,文件AES加密,需要寻找key

!(https://s1.328888.xyz/2022/06/10/ChRGX.png)

查阅代码寻找关键字发现key是在本地

!(https://s1.328888.xyz/2022/06/10/ChYlZ.png)

!(https://s1.328888.xyz/2022/06/10/ChTOC.png)

发现上面二个文件 查看一下

!(https://s1.328888.xyz/2022/06/10/Chcxg.png)

kb文件就是key

使用开源工具`N_m3u8DL-CLI`尝试解密,解密完成

!(https://s1.328888.xyz/2022/06/10/Chwh1.png)

## 3分析请求头

解密视频后需要分析往上层分析

!(https://s1.328888.xyz/2022/06/10/ChfPi.png)

因为抓包时发现请求头`t`和`s`参数会变化都不一样,通过分析`t`为时间戳

!(https://s1.328888.xyz/2022/06/10/ChrAv.png)

`s`为`t`的某段数据数据的`md5`加密

上层更简单简单抓包就可以发现api,不做叙述。
PS;因为样本是内容是非法的,所以不提供样本

wcy1qse 发表于 2022-6-10 15:49

看见标题我以为你要开车,但是作为小白的我进来发现你在飙车,我看不到车。

wei190 发表于 2022-6-10 16:24

坚决打击违法,楼主快把破解了vip的文件发来,我举报

宅友 发表于 2022-6-10 17:13

我朋友也想要一个练练手

sdif000 发表于 2022-6-10 15:36

虽然看不大懂,还是顶一个,话说不提供样本,不好跟着学啊{:1_918:}

cadchxa 发表于 2022-6-10 16:56

这比光打雷不下雨还难受。

mxx7 发表于 2022-6-10 16:15

本来想学习一下 谁上个样品和成品 供我研究研究

w7879832 发表于 2022-6-11 08:38

有点意思~~~挺多APP都留个“尾巴”的。

xk1539287520 发表于 2022-6-10 15:37

看见标题我有个大胆的想法,但是作为小白的我进来看了以后表示看不懂。

zhuobin_c 发表于 2022-6-10 15:39

能够了解一下是怎么违法的么

ReLoading 发表于 2022-6-10 15:40

好歹给点 友情提示嘛{:1_918:}

gdcnjs 发表于 2022-6-10 15:50

话说,我就对违法的东西感兴趣

jinzhu160 发表于 2022-6-10 15:58

13457627838 发表于 2022-6-10 16:06

666爱了加油

lwapj 发表于 2022-6-10 16:07

我有个朋友想问问软件弄好了么?他想看看啥咋违法的
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某违法视频app解密