- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《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)