├── 1.png ├── x-gorgon.md └── README.md /1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenydowa/deviceid-x-gorgon/HEAD/1.png -------------------------------------------------------------------------------- /x-gorgon.md: -------------------------------------------------------------------------------- 1 | ## 说明: 2 | 抖音版本里面加了好几个算法,有as,cp(早期就这两个),mas,X-Gorgon,X-SS-STUB算法,很多关键key之间有相互关联,只要有一个环节算错了,就会请求不到数据。目前版本的抖音加了很多的验证,及代码混淆,难度偏大。 3 | ## 目前iOS抖音8.x版本采用X-Gorgon算法,用于加密提交的url信息 4 | 1.X-Gorgon=034c124d000135224fe272bdf75f1c39cb9bd5e2ff04ee9b5577, 5 | 2.X-Khronos=1569139731 6 | 3.X-Gorgon 与 X-Khronos 参数,然后追加到请求头中进行请求 7 | 8 | ## X-Gorgon算法可用接口: 9 | 10 | 1.抓取抖音达人:基本信息(用户名、性别、粉丝数、获赞总数等相关数据); 11 | 2.抓取抖音视频:基本信息(作品获赞数、评论总数、所属作者、被转发次数、作品评论); 12 | 3.设备注册device_id加密; 13 | 4.粉丝列表; 14 | 5.作品评论列表; 15 | 6.关注列表; 16 | 7.商品橱窗列表; 17 | 8.热点榜; 18 | 9.正能量榜; 19 | 10.明星爱dou榜; 20 | 11.dou听音乐榜; 21 | 12.音乐信息榜; 22 | 13.音乐引用作品列表; 23 | 14.今日最热视频榜; 24 | 15.单个视频详情; 25 | 16.首页feed; 26 | 17.搜索用户 27 | 28 | ## 测试地址 29 | 30 | [https://www.showdoc.cc/527312186916410?page_id=3113306537235933](https://www.showdoc.cc/527312186916410?page_id=3113306537235933) 31 | 32 | ## 更多了解 33 | 邮箱: 34 | shenydowa@outlook.com 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # deviceid-x-gorgon 2 | iOS抖音风控加密算法的来龙去脉 3 | 4 | 5 | # iOS抖音风控加密算法的来龙去脉(一) 6 | 7 | 抖音通信协议的加密算法是目前最完善的了,一些关键函数都被VM混淆过 ,比如设备注册、视频信息等常用接口,只能通过动态调试跟踪去理解其过程。 8 | 9 | 我们先来分析一下常用的设备注册是如何生成的,这是请求抖音接口的第一步,如果没有它,请求抖音的任何接口都不会返回数据的。 10 | 11 | #### 1.抖音的设备注册接口 12 | 13 | ``` 14 | https://log.snssdk.com/service/2/device_register/? 15 | ``` 16 | method:POST 17 | 18 | body:设备信息加密数据 19 | 20 | url参数:设备信息参数 21 | 22 | #### 2.设备信息参数生成 23 | device_id的生成是根据我们提交给抖音里的参数进行计算的,所以我们要随机生成一些参数。 24 | 25 | ##### 重点参数: 26 | > carrier 27 | display_name字段:这个字段不是utf-8编码,是GBK编码,要做编码转换 28 | 29 | > Idfa、VendorID字段:标准UUID算法生成即可 30 | 31 | > Openudid:随机生成的 32 | 33 | 跟踪调试过程省略…… 34 | 35 | 通过动态调试最后定位到sub_101E7830设备加密函数 36 | 37 | sub函数的参数是传入一个字典 38 | 39 | ``` 40 | { 41 | fingerprint = ""; 42 | header = { 43 | access = WIFI; 44 | aid = 1128; 45 | "app_language" = zh; 46 | "app_name" = aweme; 47 | "app_region" = CN; 48 | "app_version" = "8.7.1"; 49 | carrier = "\U4e2d\U56fd\U79fb\U52a8"; 50 | channel = AppStore; 51 | custom = { 52 | "app_language" = zh; 53 | "app_region" = CN; 54 | "build_number" = 87100; 55 | "earphone_status" = on; 56 | }; 57 | "device_id" = ; 58 | "device_model" = "iPhone X"; 59 | "display_name" = "\U6296\U97f3\U77ed\U89c6\U9891"; 60 | idfa = "E3D93D3-U747-R394-E2033-HF383J3984JE"; 61 | "install_id" = ; 62 | "is_jailbroken" = 0; 63 | "is_upgrade_user" = 1; 64 | language = zh; 65 | mc = "00:00:00:00:00:00"; 66 | "mcc_mnc" = ""; 67 | openudid = 9234923948d9392934dkk3939935d93939r3a3s3; 68 | os = iOS; 69 | "os_version" = "12.1"; 70 | package = "com.ss.iphone.ugc.Aweme"; 71 | region = CN; 72 | resolution = "1024*768"; 73 | "sdk_version" = 0011; 74 | timezone = 1; 75 | "tz_name" = "Asia/Shanghai"; 76 | "tz_offset" = 99000; 77 | "user_agent" = "Aweme 8.7.1 rv:87100 (iPhone; iPhone OS 12.1; zh_CN) Cronet"; 78 | "vendor_id" = "6J3DJD34-3DE4-R3KD-DS33-739394839384"; 79 | }; 80 | "magic_tag" = "ss_app_log"; 81 | } 82 | 83 | ``` 84 | 85 | 我们所要替换的就是json里的vendor_id,openudid,idfa然后进行加密 86 | 87 | 加密过程的算法实际上是AES,首先使用标准Gzip压缩参数然后调AES进行加密。Android和iOS加密方法相同。 88 | 89 | ##### 流程图如下: 90 | ![流程图](https://github.com/shenydowa/deviceid-x-gorgon/blob/master/1.png) 91 | 92 | 93 | 完成上述步骤就可以提交设备注册请求了,成功请求结果如下: 94 | 95 | ``` 96 | { 97 | "server_time": 1557474647, 98 | "device_id": 61853858364, 99 | "install_id": 99375638378, 100 | "device_id_str": "61853858364", 101 | "install_id_str": "99375638378", 102 | "new_user": 1 103 | } 104 | ``` 105 | 106 | 107 | iOS抖音8系列版本针对设备注册的最新风控多了一个log算法。 108 | 109 | #### 3.问答交流 110 | 如果有什么不懂的可以联系我交流 111 | 112 | 邮箱: 113 | shenydowa@outlook.com 114 | 115 | 116 | 测试地址: 117 | https://www.showdoc.cc/527312186916410?page_id=3113306537235933 118 | 119 | 120 | 121 | #### 4.免责声明 122 | 123 | 请勿使用本服务于商用或大量抓取 124 | 若因使用本服务与抖音官方造成不必要的纠纷,本人盖不负责,纯粹技术爱好,若有侵权行为,可以与本人沟通。 125 | 126 | #### 5.其他 127 | 除了device_register算法还有mas,as,cp,X-gorgon算法,我会在下一篇讲解。 128 | [iOS抖音风控加密算法的来龙去脉之X-gorgon算法mas、as、cp算法(二)]() 129 | 130 | 131 | --------------------------------------------------------------------------------