• 【ios 技巧


     

    对终端进行抓包是客户端测试中的一种重要手段。本文主要介绍了ios设备(iphone、ipad和ipodtouch)的几种常用的抓包方法。

    一、准备条件

    需要进行抓包的设备必须经过root,俗称越狱,主要利用redsn0w和各种iOSFirmwares进行,如越狱不用更换固件版本,只需使用redsn0w安装Cydia即可,网上有详细教程,此处省略。安装完毕,在3G或WiFi环境下启动Cydia,确认身份为“开发者”,如下图。

     

    通过Cydia源,用户可以下载和安装比appstore更高权限的软件,但是在Cydia源中下载程序时,如果ios设备锁频待机就会中断下载。我们可以在“设置-通用-自动锁定”中把时间设置为“永不”来防止待机。此外如果有同学发现在简体中文环境下使用Cydia搜索会闪退,请不要惊慌,参见附录即可解决该问题。

    Root后的设备,如不及时修改密码,容易被他人破坏你的系统,因此作为抓包的准备条件之一,请修改root密码,初始密码为alpine,可通过SSH连接访问或者直接在ios设备上的MobileTerminal上进行密码修改。

    二、抓包方式

    方法1:SSH连接访问ios设备抓包(通过USB)--强烈推荐

    【准备工作】

    ios设备上安装tcpdump(参见附录)

    PC上安装iPhoneTunnel(集成终端工具putty功能,附近中为免安装版本)

    【操作步骤】

    1.用USB线缆连接手机与PC,确保手机连接正确,启动iPhoneTunnel,绿灯表示TunnelStatus正常,此时点击LaunchTerminal按钮即可SSH进入手机,如下图;

    2.Putty出现一个提示窗口,如果你不是经常使用SSH,请直接点击“否”即可,如下图;

     

    3.接着PuTTY会以root用户身份尝试登录设备,并输入root密码;

    4.使用tcpdump进行抓包(参见附录),如下图。

     

    【方法点评】

    通过USB方式直接SSH进入设备,无论设备在WiFi还是2G/3G下,都可以进行抓包,而且使用简单,方法无局限性,值得采用。

    方法2:SSH连接访问ios设备抓包(通过WiFi)

    【准备工作】

    ios设备上安装tcpdump(参见附录)

    PC上安装putty(附近中为免安装版本)

    ios设备连接WiFi网络,且与PC处于同一个网络中,如无WiFi网络,可使用PC作为热点虚拟一个WiFi网络供ios设备连接

    【操作步骤】

    1.在ios设备上查看ip地址(设置Wi-Fi中,点击已连接WiFi右侧的小箭头可看到);

    2.点击putty,输入设备的ip地址,并选择连接类型为SSH,点击打开,如下图;

     

    3.以下操作同方法1的2-4步。

    【方法点评】

    PuTTY是通过WiFi方式SSH进入到手机的,必须知道手机的IP地址,如果手机没有WiFi就不能使用这种方法,因此该方法有一定的局限性。

    方法3:直接在终端上操作进行抓包

    【准备工作】

    ios设备上安装MobileTerminal、tcpdump(参见附录)

    【操作步骤】

    1.点击设备桌面“Teminal”图标;

    2.切换至root用户登录;

    3.使用tcpdump进行抓包(参见附录),如下图。

     

    【方法点评】

    不受网络条件制约,但由于是在终端上操作抓包,对ios设备来讲,MobileTerminal切至后台就不再工作,因此该抓包方法可行性较低,尽管如此,MobileTerminal对终端测试人员来说依然是一款很实用的工具。

    三、导出及其它

    Pcap文件生成后可通过91手机助手(IOS版)将文件下载至PC,然后通过Wireshark或Ethereal打开文件,分析报文。

    四、附录

    1.中文环境下Cydia搜索闪退问题解决方法

    首先把系统语言改为英文,之后进入Cydia,添加第一中文源(http://apt.178.com),添加源的方法如下:进入Cydia,点击Manage,然后点击Source,进入后点击右上角的Edit,再点击左上角的Add,输入源地址,点击添加,出现警告的话,点仍然添加。等待列表刷新完成即可,返回Cydia后在Manage>第一中文源下查找ios5Cydia中文崩溃解决补丁安装即可,如下图。再次将系统切换至简体中文后可正常使用Cydia搜索功能。

     

    2.OpenSSH安装

    OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据。安装完毕后,用户才可以使用PC通过远程访问来控制终端。启动Cydia后点右下角的“搜索”,即可找到OpenSSH。进入安装页面,点击右上角的Install完成安装,如下图。

     

    3. MobileTerminal安装

    MobileTerminal是一款在iOS设备上使用的终端管理软件,采用类似于命令行的非图形界接口管理iOS设备的进程,运行并不依赖于Openssh或者Telnet,是独立运行于系统上的app程序。进入Cydia后在Manage>第一中文源下查找能与系统适配的MobileTerminal并进行安装,如下图。

     

    4.tcpdump安装

    通过91手机助手(IOS版)可在终端上安装tcpdump,下载地址:http://apt.saurik.com/debs/如不确定哪一个适用自己手机,可对附件中的tcp安装包进行全部安装。

    如果在安装完毕后执行tcpdump提示libpcap的错误,需安装libpcap,如不确定哪一个适用自己手机,可对附件中的lib安装包进行全部安装。

    5.ios设备上tcpdump的使用

    对于一些ios设备如iphone及ipad,既可以接入WiFi,也可以接入2G/3G,在使用tcpdump命令时请注意网口类型,WiFi接入时网卡为en0,而2G/3G接入时网卡为pdp_ip0,而网卡不指定时默认为pdp_ip0。举例来说,

    WiFi下抓包tcpdump -i en0 -X -s0 -wdata.pcap

    2G/3G下抓包tcpdump -i pdp_ip0 -X -s0 -w data.pcap或tcpdump-X -s0 -w data.pcap

    五、Q&A

    (Ⅰ)如果SSH连接ios设备时提示“ServerUnexpectedly Closed Network Connection”,该怎么办?

    A:可通过重新安装OpenSSH来尝试解决问题。

    (Ⅱ)如果在安装了tcp安装包和lib安装包后执行tcpdump仍提示失败,该怎么办?

    A:有可能是缺少libcrypto.0.9.8.dylib文件造成,可从其它ios设备usr/lib路径下copy至本机再进行尝试。

  • 相关阅读:
    Astyle中文格式说明
    windows安装composer,配置环境变量,使用及报错处理
    Centos 中使用Supervisor守护进程(转载)
    react native Android返回键监听BackHandler
    IE兼容问题
    mysql修改root密码的方法
    11月15日jquery学习笔记
    2016年11月2日——jQuery源码学习笔记
    2016年11月1日——jQuery源码学习笔记
    windows下apache+php+mysql配置
  • 原文地址:https://www.cnblogs.com/kengsir/p/4310365.html
Copyright © 2020-2023  润新知