这里分享下 快手iOS APP聊天协议分析过程。
-
iOS逆向首先需要获取一个脱壳的APP,脱壳简单就不说了,可以用crackerxi+来操作。
-
将下载后的ipa文件用解压缩软件(如7zip等)解压,从解压后的目录Payload/Aweme.app/找到Aweme可执行文件,拖入IDA进行反编译,ida可以检测objective-c语法。
3
然后进入主题,既然是聊天发消息,就尝试在ida里搜索"message",看看能否找到对应的类或函数。
这里找到了messageBaseViewController,发现一个名为didSendContent: 的函数,根据名字可以大概推断出这应是发送消息的入口,此函数又调用了checkAndSendMessage,
应该是发送前的检查操作,如消息长度等,重点关注回调block,
-
进入回调函数,可以看到这里出现了一些参数,如目标uid,消息类型等,最后调用sendMessage方法
-
先看看prepareToSend 方法,里面发现了createConversation方法,应该是创建对话,每个聊天都需要先创建一