IOS逆向分析之网络分析一

概要:前段时间写了冲顶大会逆向分析的文章后,收到很多同学关于逆向学习的各种问题,所以最近计划出个简单的iOS逆向学习的系列教程,希望可以带领大家入坑,教程主要有三块内容(网络分析,静态分析,动态分析)

在逆向过程中很多时候需要分析APP和Web端数据交互的内容那么最简单的方式即是抓包网络分析,这一节我们就介绍下Mac平台下如何抓包,如何对目标APP进行网络数据分析。

首先常用的抓包软件有Charles,Tcpdump等,笔者安装使用的Charles。

Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https协议。

Charles主要的功能包括:

截取Http和Https网络封包。

支持重发网络请求,方便后端调试。

支持修改网络请求参数。

支持网络请求的截获并动态修改。

支持模拟慢速网络。

Charles安装好后只需自己设置成代理服务器来完成封包的截取,设置也很简单选择菜单中的“Proxy”–“MacOSXProxy”来将Charles设置成系统代理。如下所示:

这样你就可以看到网络请求出现在Charles的界面中,包括你模拟器你的请求也会在这里,那么小伙伴会有疑问iPhone真机设备的网络数据包如何截取呢,也很简单只需将手机的代理服务器设置为电脑IP即可,如下操作

第一步:Charles的菜单栏上选择“Proxy”–“ProxySettings”,填入代理端口,并且勾上“EnabletransparentHTTPproxying”就完成了在Charles上的设置。

第二步:获取Charles运行所在电脑的IP地址,Charles的顶部菜单的“Help”–“LocalIPAddress”,即可在弹出的对话框中看到IP地址,如下图所示:

第三步:设置iPhone设备Http代理,在iPhone的“设置”–“无线局域网”中,点击当前连接的wifi名,可以看到当前连接上的wifi的详细信息,在其最底部有「HTTP代理」一项,点击后,然后填上Charles运行所在的电脑的IP,以及端口号,如下图所示:

至此所有电脑,模拟器,iOS真机设备所有的Http请求都已经可以通过上边的方法抓包分析获取Request和Respone等具体网络请求数据,可是Https的加密请求如何抓取呢?如果你需要截取分析Https协议相关的内容。那么需要安装Charles的CA证书。具体步骤如下。

第一步:我们需要在你要分析的设备上安装Charles证书。点击Charles的顶部菜单,选择“Help”–“SSLProxying”,–“InstallCharlesRootCertificate”安装到Mac上抓取Mac产生的Https请求,InstallCharlesRootCertificateonaMobileDeviceorRemoteBrowser”安装到iOS真机设备抓取iOS设备产生的Https请求,如下图所示:

第二步:Charles的菜单栏上选择“Proxy”–“SSLProxySettings”添加需要抓取的域名,如下图所示:

这样就可以分析目标App的所有网络请求,对其进行逆向数据分析,学习下优秀的API设计规范,根据抓包分析的数据格式,通过脚本语言或其他方式伪造网络请求修改数据。比如想自己写个新闻类App就可以抓黄易,某条分析其网络数据,笔者之前分析时记得黄易的接口设计要比某条的清晰明了,然后将就可以在自己的App中使用了。

这里在补充下Charles不仅仅局限于分析目标App中使用,我们日常开发中加快开发效率也有很大帮助,比如在和接口组联调时,如果接口说你参数没传对,你不需printlog逐步回溯代码看到底是不哪里参数传错了,只需要实时开启Charles把数据贴出来,啪啪啪的实力打脸接口组的童靴。另外Charles可以模拟慢速网络,修改网络请求内容,给服务端做压力测试,修改服务器返回数据,添加断点调试等各种强大的功能,感兴趣的同学可以自行学习相关使用方法。

我在下一节中我将分享如何对目标App进行静态分析,反编译二进制代码查看关键业务函数,用于Hook,更多骚操作,尽在iOSTips。

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/rzdk/804.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了