iOS版抖音协议加解密算法的实现
这两年的工作中,涉及到了抖音协议的分析部分抖音web,分析了两个与加密相关的接口。 项目结束了,分享给大家
由于项目结束,目前尚不清楚最新版本是否有变化。 当时可供测试的抖音版本:IOS 1.7.8-3.8.0
1、设备信息生成方案:
设备信息中有几个关键点:
(1)字段:该字段不是utf-8编码,而是GBK编码,需要编码转换
(2)Idfa、字段:可以通过标准UUID算法生成
(3):这个地方有点头疼。 根据所有公开信息,包括抖音自己的代码逆向,可以看出它实际上是随机生成的,但随机的无法通过服务器验证。 最后用真人替换中间16字节的方法,服务器通过率60%左右
2.//2//接口加密算法:
接口中的post包体是加密的,算法其实是AES,但是不知道为什么标准AES实现的结果是错误的,不过没关系,直接从IDA伪中接就可以了代码,中间有5处需要修复xray寄存器解析错误。
3.MAS、AS、TS算法:
这部分是最麻烦的。 离线运行花了很多时间。 首先,伪代码很难修复,因为有两个问题无法解决。 1、ios API调用(如线程锁) 2、类的上下文无法初始化。 然后模拟汇编代码也是同样的问题,无法解决API调用,最后采用了Hook抖音app的tamp:函数,然后在Hook代码中阻塞线程,运行它,让抖音app初始化类并准备上下文,然后负责处理加解密抖音web,并返回MAS AS TS
源码结构简单说明:
1. API是所有加密和解密的接口。 负责为其他需要抖音加解密的服务提供加解密服务。 通过混合+C来实现。 加密和解密都是用C写的库文件。通过调用桥调用so,下一节会讲解。
2.aweme-aes是加密解密的实现,纯C代码,编译成so库,供上面API调用。
3、功能是->抖音桥,调用过程是API->->抖音lib,因为早期的解决方案是使用抖音,然后编写(交叉编译到ios)调用这个桥库,然后调用抖音应用程序实现了tamp,直接采用阻止应用程序运行的解决方案后被放弃。
4、这是hook抖音app并拦截tamp然后运行的实现。 框架就是框架代码就不上传了,搜索一下就可以了。
————————————————————————————————————————————
:专业的短视频、直播数据接口服务平台。 获取更多资讯,请联系:
覆盖主流平台:抖音、快手、小红书、
未经允许不得转载:新动力营销圈 » 抖音协议抖音数据采集中的加解密算法实现