[简单逆向]某直播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 播主id
liveFree 是否免费类型
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

加密模式 key
AES/ECB/PKCS5Padding qwertyui12345678

然后复制一段nplayFlv尝试下解密
在这里插入图片描述

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


结案

AES/ECB/PKCS5Padding,key为qwertyui12345678


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

FLV直播,可在QQ影音中播放
包括收费直播间在内,均可抓到地址
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/a952252664/article/details/118268768
今日推荐