iOS APP抓包方法介绍之tcpdump

  1. 将手机通过usb口连在mac电脑上
  2. 通过xcode查看手机的uuid,如 rvictl -s f7f41359d97aa34487f574a4db2e028dfd4f7aa
  3. 打开终端,开启虚拟网口

    1
    2
    3
    4
    5
    6
    $rvictl -s f7f41359d97aa34487f574a4db2e028dfd4f7aa
    Starting device f7f41359d97aa34487f574a4db2e028dfd4f7aa [SUCCEEDED] with interface rvi0 (rvi0就是虚拟网口的名字,抓包的时候需要使用)
    $sudo tcpdump -i rvi0 -w trace.pcap
    tcpdump: WARNING: rvi0: That device doesn't support promiscuous mode
    (BIOCPROMISC: Operation not supported on socket)
    tcpdump: listening on rvi0, link-type PKTAP (Packet Tap), capture size 262144 bytes

  4. 然后就可以在手机上运行app,执行你想要的操作了。所有报文会存储在trace.pcap文件上

  5. 抓包结束后,记得删除虚拟接口
    1
    $ rvictl -x f7f41359d97aa34487f574a4db2e028dfd4f7aa

参考资料:
app developer: Getting a Packet Trace

rsync命令参数

参数说明
-v, –verbose 详细模式输出
-q, –quiet 精简输出模式
-c, –checksum 打开校验开关,强制对文件传输进行校验
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, –recursive 对子目录以递归模式处理

ssl交互handshake failure故障一则

现网运行正常的设备,突然有一天连不上服务器。设备维护人员和服务器维护人员都声称近段时间没做任何修改,不应该是自己引入的。 因为设备侧的功能是两年前我开发的,所以项目负责人把交互报文发给我,让我协助分析一下。
问题分析:从抓包的结果看,服务器报“handshake failure”错误,导致ssl连接建立失败,还没到应用层交互;所以关注ssl交互就行了,不用关心上层应用。

首先检查证书是否有效-- 正常
其次,因为在网设备都在用户家,改动的机会不大;所以推测是服务器维护的时候,有意无意中改动了相关配置。于是我提醒服务器维护员检查服务器支持的ssl版本列表,结果找到原因了
解决方案:修改服务器关于ssl的设置,增加对sslv3的支持,然后一切正常了。至于产生这个问题的原因……

,