anliou 发表于 2020-12-22 11:38

实战分析某音 X-Gorgon 以及获取视频列表(附测试demo)

本帖最后由 anliou 于 2020-12-22 13:03 编辑

目前分析的抖音版本是 11.8.0 想要获取到短视频数据必须要有 2个参数才行 分别是 X-Gorgon 和 X-Khronos ,下面进行分析:

step1:
首先进行抓包 我这边推荐使用 fiddler 也可以使用 charles 可以自动解析 protobuf (charles 貌似有协议头部位全部小写的bug)
https://img-blog.csdnimg.cn/20201221230508751.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20201221230508745.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20201221230508710.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70


step2:
之后打开jadx 定位关键点 寻找关键字 X-Gorgon 或 X-Khronos
https://img-blog.csdnimg.cn/20201221230606623.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70#pic_center

https://img-blog.csdnimg.cn/20201221230634157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20201221230634143.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20201221230634114.png

这样定位到 这个native方法 com.ss.sys.ces.a.leviathan()这个方法

三个参数 分别是 int int byte[]

step3:
对方法进行hook 可以知道 第一个参数固定是 -1 第二个参数就是10位时间戳的整数值了 第三个参数是 4个md5的拼接

通过分析可知道 第一个md5 是 URL截取参数部分 也就是 ? 后面的内容 的md5(如果有x-common-params-v2 参数 则也需要一起拼接)
第二个 是 post内容的 md5 ,如果为空 则是 32个0
第三个 是 完整cookie的 md5 ,如果为空 则是 32个0
第四个 是 登录后有一个 sessionid 的md5,如果为空 则是 32个0
最后拼接成 16进制在转 byte[] (也就是 易语言字节集) 传入 leviathan 进行加密 即可获取到最终的 X-Gorgon


step4:
加密所在的类和明文都找到了,就可以直接接口生成加密信息了,
我这里提供一个我的测试接口(接口仅供学习测试使用,所以有调用时间限制,介意请勿下载~)

链接:https://pan.baidu.com/s/14Maj1KgCjQQiVpcMP0-OLQ
提取码:n1wq


https://img-blog.csdnimg.cn/20201221230655303.png
https://img-blog.csdnimg.cn/20201221230655304.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTY5MTk2MQ==,size_16,color_FFFFFF,t_70

最后完美获取到抖音短视频列表返回数据内容

本人原创文章,转载请注明

sunqinqiang 发表于 2020-12-22 18:10

com.ss.sys.ces.a.leviathan()也是调用so的,真正的加密在so里面吧!

anliou 发表于 2020-12-22 12:12

如果获取到 X-Gorgon   返回不到数据,

{"status_code":2154,"aweme_list": [],"has_more": 1,"min_cursor": 0,"max_cursor": 0}

把 iid 和 deviceid改成 自己设备的就可以

zouludaifeng 发表于 2020-12-22 11:41

学习 学习感谢大佬

nur11111 发表于 2020-12-22 11:50

学习一下了,非常感谢大佬

longling 发表于 2020-12-22 11:56

谢谢楼主分享   

cqlk001 发表于 2020-12-22 12:21

谢谢分享 试着来分析一把

aylitat 发表于 2020-12-22 12:38

不明觉厉。。。。。没看懂

橼莱铷茈 发表于 2020-12-22 12:55

感谢分享

Aloneranger 发表于 2020-12-22 14:21

学到了 感谢分享

ly260248556 发表于 2020-12-22 15:32


学习一下了,非常感谢大佬
页: [1] 2 3 4 5 6
查看完整版本: 实战分析某音 X-Gorgon 以及获取视频列表(附测试demo)