小红书协议分析小记(1)

工作需要,今日开始着手小红书协议分析。
针对工作需求,下载最新版apk,拉入调试手机抓包,发现该app无法常规抓包,推测是使用了移动长连接发包,遂采用vpn全局代理模式,成功抓到数据。

主要请求如上图,分析相关协议,发现请求头中,有四个加密字段,分别是xy-platform-info,shield,xy-common-params,x-b3-traceid。url附带参数中,并没有什么需要特别处理的参数。
逐一分析,首先是xy-platform-info,发现其内容包括了platform=android&build=7080193&deviceId=****,应该是一个拼接字段,platform为android较容易理解,build类似于一个版本号之类的信息,deviceId为设备关联信息。
打开jadx查找关键字deviceId,共计27处调用,梳理一番后找到相关类如下图

frida代码搞起,hook其返回值。

跑出结果为

抛出报文说我返回参数类型不对,这里jadx也没有反编译成功,但是可以看到,hook到的返回值为deviceId的实际值,应该是关联到我们需要的部分了。
先把jadx反编译失败的部分找出来,拖入GDA后定位到该方法,得出方法代码如下

基本可以确定p.uUIDa的值为我们需要的deviceID,观察代码,发现他生成的方式有几种
p.uUIDa
UUID.fromString(v2)
UUID.nameUUIDFromBytes(v2.getBytes("utf8"))
UUID.nameUUIDFromBytes(v4.getBytes("utf8"))
UUID.randomUUID()

未完待续

posted @ 2021-09-17 16:56  DasNI  阅读(2936)  评论(0)    收藏  举报