首页
社区
课程
招聘
[原创]抖音短视频x-gorgon算法入口定位查找过程笔记
发表于: 2020-6-2 17:44 36558

[原创]抖音短视频x-gorgon算法入口定位查找过程笔记

2020-6-2 17:44
36558


        抖音作为目前流量最大、日活跃最高的平台,目前也有很多不同行业的人对它进行逆向分析研究,在抓包分析过程中,抖音的通讯会涉及到一个叫x-gorgon的签名,该签名是发送数据请求必不可少的基础参数,本贴就专门记录此次分析笔记。


        假设我们的业务需要爬虫获取抖音的热门视频列表,那么我们先通过抓包来定位到具体的接口,这里我选择使用charles工具进行抓包,具体配置https方法可以参考https://bbs.pediy.com/thread-258996.htm的方法。

        

        通过抓包发现接口是来自: https://aweme.snssdk.com/aweme/v2/feed/ 后面跟了很长的参数,具体字面意思分析估计是手机的型号以及抖音自己生成的一些信息,我们发现其返回的是protobuf格式,charles已经帮我们解析好了,那么我们编写python3脚本构造一个跟他一样的请求进行尝试。

        

        我们发现能够正常的返回数据,但是我们看到他的header除了 x-gorgon和x-tt-trace-id以外,其他的都很好理解,我们会发现,如果我们改变了URL的参数,但是header内容得不到对应的修改,就会返回不到数据,如下图所示:


        那么我们就能够更加确信header里的x-gorgon对它进行了一次签名,所以我们直接jadx上手阅读一波反编译后的代码,这里我直接搜索了x-gorgon关键字,列出了以下结果:

这里我选择了hashMap.put("X-Gorgon", a3);这一行,跳转进去我们来分析一下它的代码

        这里我们看到有一个它的值是来自a3,a3则是通过String a3 = a.a(com.ss.sys.ces.a.leviathan(i, currentTimeMillis, a.a(a2 + str4 + str5 + str6)));这行代码进行获取到的结果,我们看到它传了4个参数,我们来仔细看一下这4个参数具体都是什么内容:

        a2来源:

            String b2 = tt.d(str);

            d.a(b2);

        str它就是该方法传进来的参数,我们后面可以通过hook方式来获取它的具体内容,而它会执行tt.d()、d.a() 进行2次操作,我们对其tt.d()跟进去

        

        我们看到它对这个字符串进行了取 ? 和 # 中间值,怀疑是url,如果是url证明它只是取了url后面的参数,那么继续看它的下一个方法:d.a() 

        

        我们看到这里就是进行了MD5签名取值,那么a2分析到此结束,我们继续分析第2个参数


        str4来源:

            

        这里非常简单,它就是枚举传进来的第二个参数map,判断如果有X-SS-STUB这个值的话就获取,反之则填充32个0,那么我们抓包发现并没有X-SS-STUB这个参数,实际上如果我们的包是POST的话它就会有,实际上它就是POST数据的一个MD5签名值。


        str5来源:

    

            str5也非常简单,也是枚举map里面有没有COOKIE,如果有就把COOKIE进行MD5,那么该参数也到此结束了


        str6来源:

        这里我们记得str3是cookie,它执行了tt.e(str3) 方法获取一个返回值,如果它不是空同样给这个返回值md5,那么我们跟进去看一下它是做了什么处理:

    

        这里我们看到它是枚举了cookie里面有没有sessionid这个值,如果有就取出来,那么str6到此结束


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 6
支持
分享
最新回复 (44)
雪    币: 3040
活跃值: (1150)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
分析的真好,为楼主点赞,期望楼主更新更多的这样的文章!
2020-6-2 18:25
0
雪    币: 1744
活跃值: (3449)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
angelToms 分析的真好,为楼主点赞,期望楼主更新更多的这样的文章!
捕捉到大佬
2020-6-2 18:38
0
雪    币: 2719
活跃值: (1595)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
angelToms 分析的真好,为楼主点赞,期望楼主更新更多的这样的文章!
大佬  是要取阿里了么
2020-6-2 22:47
0
雪    币: 7796
活跃值: (3500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大佬,so方法不逆向怎么调用呢?
2020-6-3 07:42
0
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
6
感谢分享~
2020-6-3 09:41
0
雪    币: 768
活跃值: (690)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
优秀。感谢大佬
2020-6-4 09:13
0
雪    币: 12
活跃值: (340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Java层的都是皮毛
2020-6-4 15:21
0
雪    币: 135
活跃值: (410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
虽然主要部分在so层 不过也不错了啊
2020-6-5 11:58
0
雪    币: 205
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
继续跟到反混淆,ollvm抽出算法,单调仍然无用,还有Xlog的风控。
2020-6-8 14:19
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
大佬,你用jadx看的是反编译APK文件之后的哪个dex文件找到这个加密参数的啊;我这反编译之后有9个dex文件,搜遍了也搜不到这个x-gorgon参数
2020-6-9 17:55
0
雪    币: 198
活跃值: (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
dy是不是有反调试,ida f9一直崩溃
2020-6-10 09:57
0
雪    币: 190
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
https://blog.csdn.net/chl191623691
这个是你吗?怎么感觉是偷你的链接?
2020-6-18 05:00
0
雪    币: 1744
活跃值: (3449)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
15
shazi https://blog.csdn.net/chl191623691 这个是你吗?怎么感觉是偷你的链接?
谢谢大哥提醒,这是别人抄过去的。
2020-6-19 02:32
0
雪    币: 71
活跃值: (242)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
算法都有 比如点赞 但是就是功能用着有限制 点几次就不成功了  你可以过抖音的风控吗
2020-7-1 19:35
0
雪    币: 1671
活跃值: (2188)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
17
LoveMeiL 算法都有 比如点赞 但是就是功能用着有限制 点几次就不成功了 你可以过抖音的风控吗
抖音风控可以用设备池啊。
2020-7-1 20:25
0
雪    币: 71
活跃值: (242)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
18
chionyuna 抖音风控可以用设备池啊。
需求是一个设备哦 我自己当主播 给自己导流 不是一群ck给别人导流
2020-7-1 20:51
0
雪    币: 400
活跃值: (365)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

~

最后于 2020-8-20 22:45 被satng编辑 ,原因:
2020-7-1 22:15
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
20
LoveMeiL 需求是一个设备哦 我自己当主播 给自己导流 不是一群ck给别人导流
现在当主播真难,还得懂逆向
2020-7-1 23:34
0
雪    币: 71
活跃值: (242)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
satng 有算法,那就提交完整的风控数据,就可以了
哥们 你可以搞定么 合作下?
2020-7-2 10:14
0
雪    币: 400
活跃值: (365)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22

~

最后于 2020-8-20 22:44 被satng编辑 ,原因:
2020-7-2 15:38
0
雪    币: 344
活跃值: (314)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
看来就hook玩的转
2020-7-2 17:47
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
有获取device_id 的接口吗
2020-7-3 16:25
0
雪    币: 1781
活跃值: (644)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
25
chionyuna 抖音风控可以用设备池啊。
你好 你说的设备池是怎么样的?
2020-7-10 21:31
0
游客
登录 | 注册 方可回帖
返回
//