通过抓包分析得知,狗东app直播是一个socket连接,直播链接是固定的,只需要想办法生成token就能建立连接。
复制一下token的值搜索一下,还真能搜索到,原来token是通过接口返回的,那我们只需要模拟请求这个接口,就能得到她。
通过对该接口的分析得知,body里面的content每次请求都会变,那问题的根本就是破解content的加密算法。content算法很简单,但是在so层,花了大量时间才找到。就是一个简单得aes加密,把加密结果每76个字符加一个换行符就得到最终得值。key,iv,secretKey,random都是固定的。
text = f'{{"appId":"jd.mall","clientType":"android","groupId":"{group_id}","pin":"","random":"","secretKey":"","timestamp":{timestamp}}}'
encrypt_result = aes_encrypt(key=''.encode(),iv=''.encode(),text=text.encode())
encrypt_result = binascii.b2a_base64(encrypt_result,newline=False).decode()
content = ''
add_index = 0
for i in encrypt_result:
add_index+=1
data_content+=i
if add_index == 76:
content+='\n'
add_index=0
以上内容仅供交流学习