zoukankan      html  css  js  c++  java
  • 手机抓包方法

    Android上使用Tcpdump进行抓包

    工具包内容如下:(下载地址:http://download.csdn.net/download/yezhaohui2011/8368061)

          

    adb ——谷歌提供的安卓远程调试工具 。(用于PC连接手机并输入命令)

    tcpdump——Linux系统中普遍使用的一款开源网络协议分析工具。(放在手机内部进行抓包)

    wireshark——window 系统下的抓包工具。(查看分析抓取的数据包)

    抓包条件:手机需要取得 root权限

    使用方法:

    1、  把adb工具放到PC任一目录,然后进入cmd切换到工具目录,如:

           

    2、  通过USB线把手机和PC连接,并打开手机的USB调试模式

    3、  cmd 输入:adb devices  这个命令是查看当前连接的设备,如

          

    4、  把tcpdump 工具拷贝到手机,cmd输入:  adb push <本地路径> <远程路径> ,如:

         

    5、  给tcpdump 执行权限,分别输入adb shell -> su ->chmod 6755 /data/local/tcpdump

         

    6、  开始抓包,输入:/data/local/tcpdump –p –s 0 –w /sdcard/test.pcap

        

    crtl+c 结束抓包,这样在手机/sdcard目录里面就会保存一个test.pcap的文件.

    7、  把抓取的报文从手机上拷贝回电脑,输入:adb pull <远程路径> <本地路径> ,如:

       

       然后就可以用 wireshark打开查看报文内容了。

    可以看到向10.0.0.172发送的报文,即是移动网络发送的报文。

    中国移动  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

    中国联通  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

    中国电信  网关:10.0.0.200  HTTP端口: 80

     

    使用Fiddler工具进行抓包

    Fiddler工具简介

    Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。

    Fiddler的运行机制其实就是本机上监听8888(默认)端口的HTTP代理。 对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置,所以如果需要监听PC端Chrome或其他应用的网络数据包,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。

    相对于通过adb使用tcpdump+wireshark抓包的优势在于:

    1)  无需取得手机root权限

    2)  对Android和Iphone同样适用

    3)  操作更简单方便(第一次安装配置,第二次只需设置代理即可)

    4)  可以利用Fiddler的强大功能对数据包进行各种操作

    5)  可以查看https请求(Fiddler提供解密)

    注意:只能是手机已经连接上网,且与Fiddler所在的PC在同一局域网内,手机能通过fiddler代理上网才能使用该方法进行抓包。

     

    通过Fiddler进行手机抓包方法

    1、  PC端安装Fiddler,Fiddler作为代理服务器模式

         

    2、  配置Fiddler允许监听https

    打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:

         

    第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

    3、  配置Fiddler允许远程连接

    如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler以使配置生效,如下图:

         

    4、  配置手机端

           打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip(与手机同一局域网的IP),端口填写Fiddler端口,默认8888,如下图:

           

          这时,手机上的网络访问在Fiddler就可以查看了:

         

    使用Charles工具进行抓包

    Charles原理介绍

    charles是一款在Mac下常用的截取网络封包工具。Charles实现对Https进行抓包,使用的原理就是中间人技术(man-in-the-middle)。Charles会动态生成一个使用自己根证书签名的证书,Charles接收web服务器的证书,而客户端浏览器/客户端 接收Charles生成的证书,以此客户端和Charles之间建立Https连接,Charles和Web服务器之间建立Https连接,实现对Https传输信息的抓包。如果Charles根证书不被信任则无法建立Https连接,所以需要添加Charles根证书为信任证书。

    使用方法

    1、给Mac安装证书
    打开Charles,在Menu选择SSL Proxying > Install Charles Root Certificate,Keychain Access(钥匙访问串)被打开,如下图所示可以看到Charles Certificate已经被安装

      

    2、信任证书

    双击该行弹出证书详情,选择“Always Trust”(始终信任)

    3、给手机安装证书

    打开Charles,在Menu选择Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出提示框,按提示框操作即可(先设置代理然后访问证书安装页面进行证书的安装)

    也可以在Charles上选择Help > SSL Proxying > Save Charles Root Certificate先导出证书,然后adb等工具导入手机中进行安装

    4、开启SSL代理功能

    在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截所有Https的数据包了

     

    注意事项

    1、手机上有开启翻墙应用,如影梭等时,不要设置成全局代理,否则charles上是抓不到包,可设置分应用抓包-绕行模式--将待抓包的app勾选让其绕行即可

    charles工具更多使用介绍见:http://www.jianshu.com/p/68684780c1b0

  • 相关阅读:
    flash盖住层的解决办法
    编译Chromium
    关于Ubuntu上的版本依赖问题
    GridBagLayout
    使用JList遇到的奇怪问题
    Swing常用整理
    Swing中改变Table的column大小
    SwingUtilities.invokeLater
    git常用命令
    小马过河(bupt 311)
  • 原文地址:https://www.cnblogs.com/yezhaohui/p/4228371.html
Copyright © 2011-2022 走看看