效果图:
使用 jadx 搜索X-Gorgon 定位到java代码
下图便可以看出X-Gorgon 由c2+str2+str3+str4加密而来
c2参数 通过xposed 或者 frida hook 下图得出str参数,就是url去掉域名
os_api=23&device_type=M5s&device_platform=android&ssmix=a&iid=94522513079&manifest_version_code=820&dpi=320&uuid=864565030445123&version_code=820&app_name=aweme&version_name=8.2.0&ts=1579249001&openudid=e524b7fba132eb2d&device_id=60981739188&resolution=720*1280&os_version=6.0&language=zh&device_brand=Meizu&app_type=normal&ac=wifi&update_version_code=8202&aid=1128&channel=tengxun_new&_rticket=1579249002445
md5(str) 得到c2参数
str2参数是post请求from表单数据,str2=md5(from) 如果不是则为str2=00000000000000000000000000000000
str3同样通过hook得到是cookie,str3=md5(cookie)
str4 也是通过hook得到是cookie中登入的sessionid=54292e529b3e7bdeecc6d98fb92357d1的参数,如果没有登入的情况为00000000000000000000000000000000 得出star4=md5(sessionid)
X-Gorgon=leviathan(currentTimeMillis, com.ss.a.b.a.b(c2+str2+str3+str4))
点进去是native方法,这里如果破解算法就需要去分析libcms.so文件
我这里使用xposed来挟持加密,NanoHTTPD开放接口调用
使用xposed 加载得到加密方法的对象
NanoHTTPD 接口代码
测试加密接口:
http://127.0.0.1:8709 post
参数 | 说明 |
---|---|
cookie | 上图的cookie |
urlParameter | 上图 c2 |
form | 上图 str2 |
timestamp | 10位的时间戳 |
返回结果图:
怎么使用:
adb forward tcp:8709 tcp:8709 先端口转发
http://127.0.0.1:8709 post 表单请求,参数和上面的一样