[简单逆向]某直播APP 收费直播链接获取-AES解密

[简单逆向]某直播APP 收费直播链接获取-AES解密

故事的由来

图片看到有人在推广所谓的"不花钱"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播主idliveFree是否免费类型hostName播主名

反编译

jadx(MT/NP)搜索nplayFlv,得到

竟然直接找到了com.AA.BB.ui.activity.room.RoomMainActivity类

AESUtil.decrypt(this.recordsDTO.getNPlayFlv(), "qwertyui12345678");

看一下这个AESUtil.decrypt

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

加密模式keyAES/ECB/PKCS5Paddingqwertyui12345678然后复制一段nplayFlv尝试下解密

成功解密,说明之前的key是正确的

结案

AES/ECB/PKCS5Padding,key为qwertyui12345678

易语言拉取所有直播间信息

FLV直播,可在QQ影音中播放

包括收费直播间在内,均可抓到地址

相关数据

妖刀姬技能
beat365体育亚洲网址

妖刀姬技能

⌛ 07-07 👁️ 432
南京大屠杀的死亡人数
365bet是合法的

南京大屠杀的死亡人数

⌛ 07-16 👁️ 988