第8章 实战2-WhatsApp消息拦截.pdfVIP

  • 4
  • 0
  • 约 21页
  • 2017-05-26 发布于江苏
  • 举报
第8章 实战2-WhatsApp消息拦截

《iOS 应用逆向工程—分析与实战 》第8 章 第8 章 实战2-WhatsApp 消息拦截 8.1 WhatsApp 简介 WhatsApp ,国外非常流行的聊天软件,也是最早进入移动领域的聊天软件,之后才有Kiki 、 米聊、微信。因为微信占据了我们的视线,所以在中国用WhatsApp 的人很少,不过作为一款经典 app,它是很有研究价值的。据称他们的月活跃用户已经超过2.5 亿人,每天的消息超过10 亿条。 WhatsApp 的展现如图8-1 所示: 图8-1 从WhatsApp 的UI 上看,实在是一个非常简单、甚至有点简陋的app,和微信比起来真是简 单的不能再简单了。不过简单归简单,老外他们就是喜欢。 我们这次的目标是拦截收发的文本聊天信息,不是去读取数据库记录,而是从消息收发的层面 去做更多的工作。 《iOS 应用逆向工程—分析与实战 》第8 章 8.2 分析源代码结构,并定位监听点 8.2.1 class-dump 获取.h 文件 前面的内容已经提过如何获取破解版的IPA 文件,不管是通过clutch 破解还是从下载破解版, 都可以,在此不再多费笔墨描述。 打开WhatsApp 的目录,马上就能看到WhatsApp 的运行文件,如图8-2 所示: 图8-2 导出之后该class-dump 上了。 class-dump -H WhatsApp -o WhatsApp.h 很顺利就拿到了WhatsApp 的.h 文件,进去看一下,总共才317 个文件,如图8-3 所示。这里 面应该还包括一些第三方的代码,可以想见WhatsApp 的整体结构有多轻巧。 《iOS 应用逆向工程—分析与实战 》第8 章 图8-3 8.2.2 导入Xcode 把WhatsApp.h 中的文件导入到一个空的Xcode 工程中,如图8-4 所示,然后再来做代码的分 析。 《iOS 应用逆向工程—分析与实战 》第8 章 图8-4 8.2.3 找到WhatsAppAppDelegate 搜索”didFinishLaunchingWithOptions” ,如图8-5 所示: 图8-5 可以看到有3 个文件入选,但是前2 个AppDelegate 和UIApplicationDelegate 明显不是我们 要找的文件,再看第3 个WhatsAppAppDelegate 。 各位读者都是经验丰富的iOS 开发者,一眼就能知道这个文件代表什么:是的,我们找到 WhatsApp 的入口了!再仔细的查看WhatsAppAppDelegate ,很快就能看出眉目了。 《iOS 应用逆向工程—分析与实战 》第8 章 -(void)xmppConnectionDidConnect:(id)xmppConnection; -(void)chatStorageDidRemoveExistingStore:(id)chatStorage; -(void)chatStorageDidInitializePSC:(id)chatStorage; -(void)chatStorageDidDeleteChatSessions:(id)chatStorage; -(void)chatStorageDidUpdateChatSessionList:(id)chatStorage; -(void)chatStorage:(id)storage didUpdateChatSession:(id)session; -(void)chatStorage:(id)storage didReceiveMessage:(id)message; -(void)chatStorage:(id)storage didFailWithError:(id)error; 对WhatsApp 稍微有些了解的都知道,WhatsApp 的聊天协议是xmpp ,而我们仅仅是搜索 一下xmpp 这个关键字,竟然紧挨着就是chatStorage 这样的函数名,简直是意外之喜。

文档评论(0)

1亿VIP精品文档

相关文档