抖音APP在每个请求的header中都加入了X-LadonX-KhronosX-GorgonX-Argus四个安全参数,当url变动的时候,这几个参数也会跟着变化,下面是一个完整的请求报文:

:method: GET
:path: /aweme/v1/user/profile/other/?sec_user_id=MS4wLjABAAAAQBGJwjwLS2x7fKNOIk0ikEcrmrSu1MfuXdNRm7JoSAryDsM_fiikEAs4o8ctzxBK&address_book_access=2&from=0&source=UserProfileFragment_initUserData&card_partition=0&card_style=0&hit_ab_test=0&btn_in_value=0&publish_video_strategy_type=2&user_avatar_shrink=188_188&user_cover_shrink=750_422&land_to=1&iid=2942735279997454&device_id=67318071897&ac=wifi&channel=zb_xiaomi_1128&aid=1128&app_name=aweme&version_code=200500&version_name=20.5.0&device_platform=android&os=android&ssmix=a&device_type=2014813&device_brand=Xiaomi&language=zh&os_api=22&os_version=5.1.1&manifest_version_code=200501&resolution=720*1280&dpi=320&update_version_code=20509900&_rticket=1651454866531&package=com.ss.android.ugc.aweme&cpu_support64=false&host_abi=armeabi-v7a&ts=1651454865&appTheme=light&app_type=normal&need_personal_recommend=1&is_guest_mode=0&minor_status=0&is_android_pad=0&cdid=177db117-37c2-4319-b81f-3a8bcf3825ec
:authority: aweme.snssdk.com
:scheme: https
accept-encoding: gzip
x-tt-request-tag: t=1;n=0
x-tt-dt: AAAT465OCUWBHLIFLLWDRAOZV6SQ53DIOVGI3TGX5ZFQEL6TC7WIWSCGHY2MEMXY4MT6J22FWWTNDKTZ3JO3SZBWDYMRZV4SHEIBWWRKGFP7BXYXNO7G7W5RT7N4AKFI3ZS7PI4PHW76P22O6GGPUEI
activity_now_client: 1651454867284
x-ss-req-ticket: 1651454866544
x-vc-bdturing-sdk-version: 2.2.1.cn
user-agent: com.ss.android.ugc.aweme/200501 (Linux; U; Android 5.1.1; zh_CN; 2014813; Build/LMY47V;tt-ok/3.10.0.2)
x-ladon: 340dT49UwIjjQe/iiLzSCsgT5u7OKpZ8hmzIytgIXBnie2xU
x-khronos: 1651454866
x-gorgon: 0404d0830005661279376ecf02ad114e1fe8d38fdcfb09275465
x-argus: Jq/WICxuXFby2OK3eLzyE2nvwb2f606a5CyuwIHbh5g55Z2XBggeOsOsJgfKvVb6eokLlO1CfPV+omvnUQJoAv7zWud4GmI9BTIXHIv8YuUhZJaxHOess0RHrWWghNOC6oM6JINIIxRBKOLFAKhlgcrhKD5d+Eo3Z+N8Pqudi2mIRm0qoDtJO7kcQKyiuUf1Agiz8j3EL5/KRb/wT/eLgvlIrlFbXH/embznew29SHkQqg==
cookie: install_id=2942735279997454; ttreq=1$1e528b9a96c268faf79ce13810ec8bc10881a223; odin_tt=c88215f56a38886dd63493a571f3dec29c275e9f6bb26a941bcc6e432ff24910aca50152cd09ce6ede8d86a9e09463905d14739a44ae9e42a128c78626e95020b91742db4b8b0e3764bff2db1e0ad9da

通过关键词搜索,在反编译的代码中并没有发现这几个关键词,这增加了分析的难度,我们可以从网络库初始化开始来一步步的分析,寻找突破口,通过分析我们发现抖音最上层使用的是retrofit,我们先找到了创建retrofit的类com.bytedance.ies.ugc.aweme.network.RetrofitFactory:

retrofit使用的httpclient是可以配置的,olm.LIZJtrue的时候使用的是okhttp,在创建过程中我们也发现增加了很多的拦截器,一般header中的字段都是在拦截器中插入的,因此我们重点分析各个拦截器,最终发现安全参数是在X.Vsc类中计算和插入的:

在拦截器中调用NetworkParams.tryAddSecurityFactor来计算安全参数:

这个地方调用了sAddSecurityFactorProcessCallback.LIZ来计算,进一步往下分析,最终调用了ms.bd.c.k.a()

a(int i, int i2, long j, String str, Object obj);是一个native方法,核心的计算逻辑使用c语言实现,通过以上分析可以发现抖音在X-LadonX-KhronosX-GorgonX-Argus四个安全参数的计算时花费了大量的心思,关键词全部抹掉,核心逻辑采用c实现并做了ollvm 控制流平坦化混淆,大大增加了分析的难度,提高了APP的安全性,抖音APP的安全参数计算流程分析就这些,感兴趣的朋友可以交流。

抖音接口安全参数X-Ladon、X-Argus计算过程分析相关推荐

  1. 抖音X-GorgonXgorgon等参数在线生成

    概述 抖音版本里面加了好几个算法,有as,cp(早期就这两个),mas,X-Gorgon,X-SS-STUB,X-Khronos算法,很多关键key之间有相互关联,只要有一个环节算错了,就会请求不到数 ...

  2. 抖音小店商品接口_抖音接口

    抖音小店商品接口_抖音接口 {"msg": "","code": 200,"data": {"toast&qu ...

  3. python抖音接口_「docker实战篇」python的docker-抖音分析接口数据分析(21)

    上节xposed已经安装完毕,设置对应的android的版本和代理服务器. 准备工作 1.xposed和JustTruestMe的安装 2.抖音安装完毕 启动fildder 点击进入指定的粉丝界面 查 ...

  4. 通过抖音接口获取账号视频的播放量,点赞,评论,转发数据

    现在有一批抖音账号需要实时反馈视频的播放量,点赞,评论,转发数据,人工又太麻烦,所以又找上了我们- 再此记录下吧 实验发现通过抖音的接口可以返回账号视频的json数据,只需要进行解析就行 然后只需要传 ...

  5. 抖音评论采集接口_抖音接口

    抖音评论采集 {"msg": "","code": 200,"data": {"log_pb": { ...

  6. 仿抖音 抖音接口开发文档

    用到的工具 前端框架 API接口 后端IDEA 分层 数据库

  7. Auto.js 抖音--留痕--参数分析

    环境: VS Code Auto.js Pro 7.0.4 安卓全机型 跳转 // 会在手机显示一个控制台,打印的信息会在手机端显示(需要开启悬浮窗权限) // autojs在手机端显示调试信息,也就 ...

  8. 探店视频批量剪辑神器如何设置抖音发布 接口参数

    探店视频批量剪辑神器如何设置抖音发布 接口参数 抖音几口配置--代理商后台 1.去获取抖音Client Key和Client Secret 审核通过之后,点击详情,复制Client Key.Clien ...

  9. 抖音APP接口签名算法分析

    抖音作为一款日活超过1亿的优秀APP,其客户端与服务端的通信方式很值得APP开发者去研究和学习,为了保护其数据,客户端请求数据的接口都进行了加密,未经过加密处理的url,请求的时候不会返回数据,这里以 ...

最新文章

  1. Linux 内核中的 Device Mapper 机制
  2. 容器的使用(6-12)
  3. 30天敏捷结果(15) - 保持一个最佳状态的大脑
  4. 远洋整站下载器不能用https_最后下载个喜马拉雅
  5. idea如何反编译字节码指令_美团点评:Java字节码增强技术,线上问题诊断利器...
  6. u盘 连接服务器系统软件,u盘服务器系统
  7. 建立密钥,远程登录LINUX----ssh-keygen
  8. spring项目部署到resin4中的无法注入问题
  9. 聊聊flink的Table Formats
  10. android设备多屏互动,大神教你玩转多屏互动-PC投屏安卓篇
  11. 码农小汪-非常不安逸 怎么我写的注解没有自动给我生成时间呢!javadoc 配置起来非常的简单
  12. Windows创建用户定义的服务(srvany.exe和instsrv.exe )
  13. OC学习笔记之011IOS应用开发入门--控件2进度条、拖动条、警告框、日期选择器、选择器
  14. optimizer.zero_grad()
  15. Re5:读论文 TWAG: A Topic-guided Wikipedia Abstract Generator
  16. Vscode 附加进程调试
  17. 小米之家真的是有效的渠道模式么?
  18. javascript 模拟退格键_javascript禁止Backspace退格键的多种方法
  19. 冷热水龙头_冷热水龙头原理是什么 冷热水龙头原理及结构图
  20. Why WebRTC|前世今生

热门文章

  1. every()数组方法
  2. 十六进制七段LED显示译码器 静态显示
  3. PAT甲组1151 LCA in a Binary Tree思路解析和代码
  4. Web大学生网页作业成品:个人博客主页 (纯HTML+CSS代码)
  5. unity 解决乱码_unity3d 中文乱码解决方法——cs代码文件格式批量转化UTF8
  6. 《程序员的自我修养》读书笔记——动态链接
  7. VB中使用DirectX库的简明教程(3)
  8. win7 加载 usb3.0驱动
  9. [工具推荐]_iOS音频批量转换
  10. 嵌入式Linux驱动学习【8】—— Nand Flash