zoukankan      html  css  js  c++  java
  • Mac OS X 在捕捉AppLAN通信包

    Mac OS X 在捕捉AppLAN通信包

    一.拍摄模式

    由于工作关系。经常要分析App wifi通讯协议。我的开发电脑是Mac Book.
    大体有例如以下几种模式:
    + App与server进行http通讯,这样的情况下Http调试神器Charles 就派上用场。

    (这个參见本人其他博文)
    + App 与智能设备进行Wifi设备,通常是TCP包居多,往往不须要联入互联网,仅仅是局域通讯。

    它须要用抓包软件Wireshark.

    本文就是这样的局域网Tcp模式,这样的模式下无法使用Charles代理器模式,直接在电脑上仅仅能抓自身的wifi包,无法抓到手机与智能设备之间的通讯。

    后来综合找到一种可行模式。即Mac OS X打开互联网共享充当一个路由器。

    然后手机和智能设备均接这个虚拟路由器进行通讯,在Mac OS X 执行Wireshark 来捕获全部经过这个虚拟路由器的包。

    二.打开Mac OS X 互联网共享

    在英文版也称为Air port 共享。


    它须要几个条件:
    1. 以太网需接入互联网,通常就是用网线接到自家的真正的路由器上,即使通讯无需互联网,也要如此,否则无法调出互联网共享模式。

    1. 智能设备能使用路由器通讯(一般这个是标准功能)

    打开方法例如以下:

    打开系统偏好设置–>共享
    Alt text

    在互联网共享中,作例如以下设置
    1. 选择以太网作路由器WAN口联接。


    2. 选择“Wi-Fi”共享给其他设备
    3. 点击”Wifi 选项”设置这个虚拟路由器的热点名,password
    4. 点击”互联网共享“打开虚拟路由器

    Alt text

    Alt text

    启动后,在左上角的Wifi 标志会出现一个小箭头。表示进入wifi共享模式
    Alt text

    三.安装wireshark

    wireshark 是基于Linux X11图形界面的强大网络工具,因此天然是支持Linux.随着X11 被移植到windows和Mac OS X。WireShark也支持多个操作系统。

    Mac OS X 10.10 安装X11应用程序XQuartz

    苹果最早在10.3 增加X11支持库,可是在10.10 又移走了对X11的支持,因此开发人员必须手工先安装x11支持库 XQuartz .

    首先下载
    http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.7.dmg
    执行dmg安装,但非常奇怪没有在应用程序栏出现图标。重新启动机器。


    但它是安装在 /Applications/Utilities/XQuartz.app 之下,因此你能够手工打开这个应用程序,它会出现一个终端窗体。

    安装WireShark

    这里 https://www.wireshark.org/download.html
    下载mac版安装

    在XQuartz终端下执行就可以执行

    sudo wireshark

    Alt text

    注意这里的sudo是必须的,否则没有权限使用wifi的设备结点。

    Alt text

    这是执行界面。

    注意在Mac Book 下。实际的wifi设备结点是 en1.仅仅有捕获这个网卡的包,才是手机和智能设备之间的包。
    Alt text

    開始抓包吧!

    这样当你的手机操作时,这时能就看到它的通讯包了。
    Alt text

    四.后记

    本架构也能捕获App移动互联网http通讯包。

    可是这一架构过于复杂,须要以太网。wifi,以及WireShark 的界面过于复杂。

    因此用App作http通讯时,抓包还是用Charles 简单好用(仅仅需wifi就可以)

    windows7 也能通过虚拟wifi功能实现相同机制,详细參见
    http://www.cnblogs.com/94YY/archive/2012/03/03/2378865.html

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    【异常】No ManagedConnections available within configured blocking timeout
    【异常】Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException
    【Redis】:Jedis 使用
    【异常】INFO: TopologyManager: EndpointListener changed ...
    【Java】JDK类 CountDownLatch
    【WEB】一个简单的WEB服务器
    【JAVA】Socket 编程
    【JBOSS】 JBOSS目录结构
    [SE0]简单的搜索引擎原理
    【ORACLE】 表空间信息
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4844720.html
Copyright © 2011-2022 走看看