吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 68094|回复: 187
收起左侧

[iOS 原创] ios版抖音协议加密算法及源码

    [复制链接]
usualwyy 发表于 2019-4-7 18:37
本帖最后由 usualwyy 于 2019-4-7 21:50 编辑

前两年的工作中涉及到抖音协议的分析部分,分析了两个跟加密有关的接口,项目结束了,现拿出来与大家分享
因为项目结束,最新版本是否有改动不清楚了,当时测试可用的抖音版本:IOS 1.7.8-3.8.0


写的慢,先把标题写好,一个章节一个章节更新,细节慢慢完善,最后会把所有源码传到github,分析过程不知道有没有人想看,如果想看的话再另开一文写

1.设备信息生成方案:
设备信息中有几个重点:
(1) carrier、display_name字段:这个字段不是utf-8编码,是GBK编码,要做编码转换
(2) Idfa、VendorID字段:标准UUID算法生成即可
(3) Openudid:这个地方有点头疼,根据所有公开资料,包括抖音自己的代码逆向,都可以看出来实际上是随机生成的,但是随机的没法通过服务器校验,最后使用了真Openudid替换掉中间16字节的方法,服务器通过率在60%左右


2./service/2/device_register/接口加密算法:
device_register接口中post包体是加密的,算法实际上是AES,但是不知道为何标准AES实现跑出来的结果不对,不过没关系,直接从IDA伪代码里扒出来即可,中间有5处要修复xray的寄存器解析错误,我写的代码中已经修复过。


3.MAS、AS、TS算法:
这部分最头疼,花了很多时间一直想脱机跑,首先伪代码难以修复,因为有两个问题没法解决,1.ios的native API调用(例如线程锁) 2.类的上下文没法初始化,然后Unicorn模拟汇编代码也是一样的问题,没法解决native API调用,最后采用了Hook抖音app的encryptDataWithTimeStamp:parameters函数,然后在Hook代码中阻塞线程,跑个webserver,让抖音app自己初始化类并且准备上下文,然后webserver负责处理加解密,并且返回MAS AS TS


源码项目地址:
https://github.com/usualwyy/aweme-algorithm

源码结构简单说明:
1.API是所有加解密的接口,负责给其他需要抖音加解密的业务提供加解密服务,用golang+C混编实现,device_reg的加解密是C写的库文件,通过调用桥调用so,下个部分会说明。
2.aweme-aes是device_reg的加解密实现,纯C代码,编译出来是so库,供上面上面的API调用。
3.ios_aweme_lib的功能是golang->抖音app2lib的桥接,调用流程是API ->ios_aweme_lib ->抖音lib,因为早期的方案是把抖音app2lib,然后通过golang写的webserver(交叉编译到ios)调用这个桥接库,然后调用抖音app,实现encryptDataWithTimeStamp,后来直接采用阻塞app跑webserver的方案后废弃了。
4.ios_webserver,这是Hook抖音app并阻塞encryptDataWithTimeStamp然后跑webserver的实现,框架是monkeydev,框架代码没上传,github上有搜monkeydev就行。


所有代码都有效可用,我删掉了部分敏感路径、个人信息、无关备注,如果编译不过,注意改调用路径
授权协议:只允许研究、学习目的的分享、使用、修改,不允许任何商业用途。转载请注明出处,感谢。

免费评分

参与人数 82吾爱币 +76 热心值 +74 收起 理由
党哥 + 1 + 1 热心回复!
alketo + 1 + 1 用心讨论,共获提升!
chenwu8728 + 1 + 1 我很赞同!
zhousen05 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
yi025 + 1 + 1 谢谢@Thanks!
bitpeach + 1 + 1 鼓励转贴优秀软件安全工具和文档!厉害了!
alzn + 1 + 1 用心讨论,共获提升!
t39612770 + 1 + 1 热心回复!
chen19209 + 1 + 1 热心回复!
Gtadiao + 1 + 1 谢谢@Thanks!
overwhelming + 1 + 1 用心讨论,共获提升!
微信a37156 + 1 + 1 热心回复!
她在远方 + 1 热心回复!
旧年白白白 + 1 + 1 我很赞同!
bricher9988 + 1 + 1 我很赞同!
小Q主人 + 1 + 1 谢谢@Thanks!
longyin + 1 + 1 用心讨论,共获提升!
Anonymous丶X + 1 + 1 鼓励转贴优秀软件安全工具和文档!
DSKI + 1 谢谢@Thanks!
戒酒李白 + 1 + 1 我很赞同!
78k + 1 六批!!!!!
E147852 + 1 + 1 热心回复!
睡衣狗 + 1 + 1 热心回复!
xiexie + 1 用心讨论,共获提升!
kaiserFeng + 1 我很赞同!
visily + 1 + 1 谢谢@Thanks!
小小小英雄啦 + 1 + 1 谢谢@Thanks!
hij554477862 + 1 + 1 谢谢@Thanks!
新欲旧欢 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
倾诉 + 1 + 1 谢谢@Thanks!
zjkkg1 + 1 + 1 谢谢@Thanks!
631894213 + 1 热心回复!
ByteCoder + 1 OMG, 我司的device_register接口都被你发现了!!
ark.l + 1 找了很久了,谢谢楼主啦
qq314384 + 1 + 1 我很赞同!
bb8820 + 1 我很赞同!
majia4473970839 + 1 我很赞同!
wentwhite + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
Colse + 1 + 1 我很赞同!
WSNBB + 1 + 1 看不懂,但还是给你加加分
ck07880506 + 1 + 1 我很赞同!
panqiqi + 1 不错
贡嘎拉 + 1 + 1 用心讨论,共获提升!
tigerliu + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lm339lm + 1 + 1 学习了!!!!
YunsChou + 1 + 1 谢谢@Thanks!
niaiwoxiangshei + 1 + 1 热心回复!
第七封信 + 1 + 1 我很赞同!
耳食之辈 + 1 用心讨论,共获提升!
laughingsir38 + 1 + 1 热心回复!
disdet + 1 鼓励转贴优秀软件安全工具和文档!
二师兄 + 1 + 1 ++++++++++
dreamer2020 + 1 + 1 谢谢@Thanks!
佳友达灵 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
waka丶耗子 + 1 + 1 我很赞同!
白日梦梦妖 + 1 谢谢@Thanks!
johnzuo + 1 + 1 用心讨论,共获提升!
Mr.番茄炒蛋 + 1 + 1 用心讨论,共获提升!
VikyPluto + 1 + 1 谢谢@Thanks!
987002995 + 1 + 1 用心讨论,共获提升!
sky0458123 + 1 + 1 我很赞同!
ggshihai + 1 + 1 热心回复!
zycode + 1 + 1 谢谢@Thanks!
午后的草莓树 + 1 + 1 用心讨论,共获提升!
asewq916 + 1 + 1 谢谢@Thanks!
「青」 + 1 + 1 流批
LLingding + 1 + 1 谢谢@Thanks!
吱吱克里斯 + 1 + 1 热心回复!
xiaomi + 1 + 1 蝉蝉可以啊!
laodan + 2 + 1 鼓励转贴优秀软件安全工具和文档!
Anonymous、 + 2 + 1 非常感谢,如果能把过程贴出来就更好了
C60 + 1 + 1 谢谢@Thanks!
hxnm + 1 + 1 热心回复!
WarnSake + 1 + 1 热心回复!
a半岁音书 + 1 + 1 热心回复!
椎名牧 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
koreancoco + 1 + 1 我很赞同!
zhangziyu + 1 + 1 我很赞同!
空山谷雨 + 1 + 1 我很赞同!
Ernest1 + 1 + 1 热心回复!
bigboss + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

52pojiewang52 发表于 2019-4-7 20:28
正真的好帖子
 楼主| usualwyy 发表于 2019-4-7 22:07
本帖最后由 usualwyy 于 2019-4-7 22:08 编辑
hackest 发表于 2019-4-7 22:03
https://github.com/yuanchao1893/douyin_encryption/issues/2    求解Device_id 这个参数是怎么获取的
ht ...

device_id是在device_reg接口服务器返回的,这是新硬件信息注册的第一步
你的git项目我看了一下,是android版协议,我这是ios版协议,差别非常大,不能混用
bigboss 发表于 2019-4-7 18:49
ZXT123 发表于 2019-4-7 18:54
厉害66666
沉迷学习 发表于 2019-4-7 19:19
快点更新
 楼主| usualwyy 发表于 2019-4-7 19:22

在把源码整理上传github蛤,别急
zhaolisheng 发表于 2019-4-7 19:49
楼主真厉害
空山谷雨 发表于 2019-4-7 19:56
楼主 ,安卓的有吗
 楼主| usualwyy 发表于 2019-4-7 20:15
空山谷雨 发表于 2019-4-7 19:56
楼主 ,安卓的有吗

安卓版的很多人分享过啦,百度能搜到
zhangziyu 发表于 2019-4-7 20:20
58同城有搞过没
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 14:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表