吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 42014|回复: 95
上一主题 下一主题
收起左侧

[iOS 原创] iOS逆向---抖音私信分析

  [复制链接]
跳转到指定楼层
楼主
qazx84265 发表于 2019-5-26 12:32 回帖奖励
本帖最后由 qazx84265 于 2019-6-29 19:55 编辑

这里分享下 抖音iOS APP聊天协议分析过程。

1. iOS逆向首先需要获取一个脱壳的APP,有越狱手机的可以从手机上脱壳,没有的话可以从pp助手上下载一个(记住需要是越狱的)。


2. 将下载后的ipa文件用解压缩软件(如7zip等)解压,从解压后的目录Payload/Aweme.app/找到Aweme可执行文件,拖入IDA进行反编译,ida可以检测objective-c语法。
然后进入主题,既然是聊天发消息,就尝试在ida里搜索"message",看看能否找到对应的类或函数。
这里找到了messageBaseViewController,发现一个名为didSendContent: 的函数,根据名字可以大概推断出这应是发送消息的入口,此函数又调用了checkAndSendMessage,
应该是发送前的检查操作,如消息长度等,重点关注回调block,


3. 进入回调函数,可以看到这里出现了一些参数,如目标uid,消息类型等,最后调用sendMessage方法

4. 继续进入,sendMessage方法调用了prepareToSend 方法,以及一个回调


5. 先看看prepareToSend 方法,里面发现了createConversation方法,应该是创建对话,每个聊天都需要先创建一个会话,
也就是先检查跟目标用户之间是否已有对话(可以理解为聊天列表是否有记录)


6. 回到4中提到的prepareToSend 执行后的回调block(即创建对话完成后执行的操作)
可以看到这里继续调用了了sendMessage:conversation:方法(conversion即createConversation返回的会话对象)


7。整个消息发送的函数调用链还是比较长的,就不一一列举,只要跟着入口函数深入,就能看到整个过程


8。在调用链中,可以找到了构建消息体的过程


消息类型:


9。可以看到im消息是走的google的protobuf协议(不熟悉的可以找相关资料了解一下,就是一个序列化协议),发送消息的protobuf
消息结构大致如下图,消息内容,类型等参数都是设置在TIMPBNSendMessageRequestBody里。


10. 然后要做的就是找到上述几个结构是什么样的,这里我们可以通过逆向出抖音代码的头文件进行查看。
使用class-dump工具(使用方法请自行查找)从第1步中的可执行文件中dump出头文件。
这里贴出来,构建protobuf消息体只需要将头文件中的字段联系起来就行。






11。
构建出protobuf消息体后,剩下的发送过程就很简单了,
首先protobuf消息体序列化得到字节集,
然后使用常用的post操作就可以了,消息类型前面已经提到过了,这里补一张发送的名片、链接消息效果




12。总结一下:抖音聊天消息发送过程就是:
   第一步:调用cloud/token接口获取im token
   第二步:登录im服务,登录过程参考【7】的调用链
   第三步:构建创建对话protobuf,创建对话
   第四步:使用获取到的对话信息,构建发送消息protobuf,发送消息

   消息发送这块主要是找到消息体的构建方法,本身不涉及复杂的算法,只有发送post中才会用到通用算法as/mas、x-gorgon、x-ss-stub等,
这些算法有时间,可以整理一下源码(纯c源码),另外看到论坛上已经有朋友分享了用过hook 方式搭建webServer方式来调用app 内部api
来进行加密,也是很巧妙、省时省力的方式。



免费评分

参与人数 19威望 +1 吾爱币 +24 热心值 +18 收起 理由
韦超龙 + 1 我很赞同!
喜剧之王星爷 + 1 + 1 感谢大佬分享
qq1335988969 + 1 + 1 牛逼啊 老铁!!
cheersgo + 1 谢谢@Thanks!大神 你QQ是?有事请教
GTO + 1 + 1 谢谢@Thanks!
syc2002 + 1 + 1 谢谢@Thanks!
蘑菇君丶 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fei8255 + 1 + 1 用心讨论,共获提升!
wangyeyu2015 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yuum + 1 + 1 我很赞同!
彭哥列第十代 + 1 + 1 热心回复!
submarine1620 + 1 + 1 用心讨论,共获提升!
xuexiyixiaxia + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
笙若 + 1 + 1 谢谢@Thanks!
derain + 1 + 1 谢谢@Thanks!
mimimimimimi + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
__star__ + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
迷失自我 + 1 + 1 谢谢@Thanks!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

推荐
yy_yhzf 发表于 2020-6-27 14:53
安卓抖音私信我也搞出来了,太艰难了
推荐
Boy77wapj 发表于 2019-5-27 19:21
求大佬编译成deb越狱插件啊  谢谢  可以逆向微信的聊天吗 做成微信匿名群聊撒
推荐
lizongde 发表于 2019-5-27 19:23
沙发
derain 发表于 2019-5-27 18:47
膜拜大佬
3#
武胜造纸农 发表于 2019-5-27 18:55
厉害厉害
6#
qqzhen88 发表于 2019-5-27 21:13
又是一个大佬
7#
Makarove 发表于 2019-5-27 23:11
是大佬了,学习到了
8#
Joduska 发表于 2019-5-28 01:16
能不能来个PHP的方式
9#
mhsytalc 发表于 2019-5-28 06:52
感谢分享,很有水平。
10#
qq871053603 发表于 2019-5-28 07:32
很不错的样子,学了不少东西!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-26 22:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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