Lazy loaded image
安卓逆向
某音5神学习分析
字数 901阅读时长 3 分钟
2022-1-25
2024-7-5
type
status
date
slug
summary
tags
category
icon
password
转自:https://bbs.pediy.com/thread-269025.htm
首先吐槽一下某音的更新速度,简直是不要命一样 最短是两天一个小版本,并且吧所有算法秘钥都更新了一遍。
本文全篇以15版本为例,因为老版本的双神走的是XLOG接口,因为年代久远所以就不探讨了(其实也不远,就是抖音更新太快了,一个月多月一个大版本谁能跟的起)
搞逆向的朋友都知道,某音的算法自从最老版本的双神,成功的进阶为5神,但是最近看了17版本好像吧 X-tyhon给整掉了,并且之前的Mssdk 包好像也找不到了.
所谓的5神 由最早引入的 x-gorgon x-khronos 到后来版本的 x-argus x-ladon x-tyhon 命名规则是古希腊神话中的妖魔鬼怪 当然在分析5神 "libmetasec_ml.so"的时候发现了一个官方diss
notion image
没看错,官方DISS 最为致命,导致玻璃心的我当场崩溃 决定把它干翻看看他这馋人的内部到底是什么样子
在大部分时间都是在处理ollvm跟vmp 这种东西枯燥无味就不展开讲了 直接上干货
5神 其中四神都是依赖于x-khronos 的时间戳加密算出来的结果.并且x-argus x-ladon x-tyhon 属于对称加密,导致某音可以直接反解拿到明文,让人十分头大

X-Gorgon

抖音自定义算法加密 由(URL+header[x-common-params-v2]的MD5)+(X-SS-STUB)+(x-khronos)+(版本号15.1为0124)组成的20字节的byte加密而成
例如:
0404是固定代表算法版本 后八位是4个byte的随机key 而最后的40位就是加密后的byte类型. 所以如果你有算法并且你抓包拿到了随机key 那么你就能算的跟真机算出的结果一样。

X-Khronos

毋庸置疑 时间戳 并且神中的时间戳都是由他而来

X-Ladon

这个神其实就是由(x-khronos+(-1588093228-1128)) 加密而来 秘钥就是解出base64的前4位+"1128"的MD5 ,如果不信可以用frida hook一下
notion image
这样你就会神奇的发现,每次解出base64的前4位都神奇的变成了78563412

X-Tyhon

这个东西你用刚才的frida脚本hook一下的话,你也会神奇的发现 他的秘钥是base64解密后的前两位跟后两位 而他的作用呢就是加密MSSDK返回来的一个token,好像17版本直接没了这个神. 也是你这东西能校验得浪费多大的算力.你得保存多少token

X-Argus

其实我知道,大家其实最关心的是这个神,古希腊神话中的百眼巨人,貌似能看穿一切,而且看他的长度,大家也知道他是最牛的神了.
直接说结果,这个东西解密完就是个protobuf 但是这个神用到了多重加密,跟mssdk的5重加密bqq的三重加密有的一拼
主要用SM3算法计算了你url跟X-SS-STUB 然后把你的deviceID ktoken跟时间戳也放到了protobuf里,所以大家不能用真机hook的方式哦,会被抓到滴
当然如果你登录了他还会在protobuf里增加了一个

xbdlanusk

这个值是登录smslogin返回的哦,代表你的个人信息! 所以千万不能用hook的方式哦
notion image
上一篇
短视频最新版quic协议解决方案
下一篇
某f新闻类APP sn

评论
Loading...