[简单逆向]某直播APP 收费直播链接获取-AES解密
本帖最后由 闷骚小贱男 于 2021-6-27 11:06 编辑# 故事的由来
图片看到有人在推广所谓的"不花钱"APP(但是实际上并不是免费)
下载了试了试,如果都一个样的APP
不过这个APP稍微简单点。。几秒就定位到了
【健康生活,远离黄赌毒】
---
# 工具
1.jadx(或者MT/NP)
2.小黄鸟HttpCanary(因为FD没抓到请求,只抓到直播连接,但是小黄鸟全部抓到了,所以用小黄鸟)
---
# 步骤
## 列表抓包(getVideoList)
在FD中抓到直播连接为HTTP://XX.XX.XXX/XXX.FLV?AUTH_KEY=XXX的格式
返回的参数有:title/liveimage/nplayFlv等
| title|标题 |
| :-------------: |:-------------:| -----:|
| liveimage|直播封面图片|
| nplayFlv|疑似Flv直播地址的AES密文|
| userid|播主id|
| liveFree|是否免费类型|
| hostName|播主名|
---
## 反编译
jadx(MT/NP)搜索nplayFlv,得到
竟然直接找到了com.AA.BB.ui.activity.room.RoomMainActivity类
~~~java
AESUtil.decrypt(this.recordsDTO.getNPlayFlv(), "qwertyui12345678");
~~~
看一下这个AESUtil.decrypt
~~~java
public static String decrypt(String str, String str2) {
try {
byte[] decode = Base64.decode(str, 0);
SecretKeySpec secretKeySpec = new SecretKeySpec(str2.getBytes("UTF-8"), "AES");
Cipher instance = Cipher.getInstance("AES/ECB/PKCS5Padding");
instance.init(2, secretKeySpec);
byte[] doFinal = instance.doFinal(decode);
if (doFinal != null) {
return new String(doFinal, "UTF-8");
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
~~~
所以可得加密模式为AES/ECB/PKCS5Padding,key为`qwertyui12345678`
| 加密模式|key|
| :------------- :|:-------------:| -----:|
|AES/ECB/PKCS5Padding|qwertyui12345678|
然后复制一段nplayFlv尝试下解密
成功解密,说明之前的key是正确的
---
## 结案
AES/ECB/PKCS5Padding,key为`qwertyui12345678`
---
# 易语言拉取所有直播间信息
FLV直播,可在QQ影音中播放
包括收费直播间在内,均可抓到地址
強烈建議直接將成品分享出來!
讓這些灰色產業從業者破產!
賠的底褲都不剩!
淨化網絡,
人人有責!
從你我做起!
從現在做起,
從這一個app做起!
聽話,
分享出來! 逃亡的蛋挞 发表于 2022-12-23 23:09
竟然直接找到了com.AA.BB.ui.activity.room.RoomMainActivity类
大哥,你的目的是搜索这一串代码一定有 ...
当然是根据密文的key名nplayFlv,搜索到的类名 大佬,有成品吗?我朋友让我帮他问下! 本帖最后由 ppszxc 于 2021-6-27 11:20 编辑
小黄鸟呢 {:1_905:}远离黄赌毒。 ppszxc 发表于 2021-6-27 11:16
小黄鸟呢
论坛内有可自行下载 闷骚小贱男 发表于 2021-6-27 11:24
论坛内有可自行下载
谢谢,找到论坛作者了。 我朋友也想分析分析这个样本 可以老哥~! 大神可以搞下“小X己”的吗 大佬,你天天搞这些软件,肾还能撑得住么 我有个朋友也想学学 试试分析下这个样本能发下吗 谢谢