采集抖音数据时,除了加密参数x-gorgon外,还有一个很重要的点就是设备信息,分别有两个参数device_id和install_id。
一、注册分析
我这边发现,每次安装抖音App后,第一次打开,App会向一个接口发送注册请求(注册接口:https://log3-misc.amemv.com/service/2/device_register),会返回device_id和install_id,不过请求的body部分是经过加密的。
然后我就反编译APK后用JD-GUI工具看了下代码。
直接搜索device_register,然后发现在com.ss.android.deviceregister.b.c类下发现注册时调用了一个方法sendEncryptLog,这方法在com.ss.android.common.applog.NetUtil类下,我们直接分析这块代码。
分析后发现,当sendEncryptLog方法返回null时,body数据会不进行加密。
拿出Frida,直接hook,强行在sendEncryptLog方法中返回null。
Java.perform(function () {
var n = Java.use('com.ss.android.common.applog.NetUtil');
n.sendEncryptLog.implementation = function (v1, v2, v3, v4) {
if (v1.indexOf('device_register') > 0){
return null
}else {
return n.sendEncryptLog.call(this, v1, v2, v3, v4)
}
}
});
然后重装下App,打开,抓包后发现,body部分显示明文了。
然后我们模拟下这个请求就可以了。
二、最终效果
模拟下刚刚的请求,就可以得到新的设备信息了,new_user为1的时候表示是新设备,请求的设备信息记得改。
正文完