zoukankan      html  css  js  c++  java
  • android 移动网络实时抓包

    2G、3G环境,那就必须root进去tcpdump 方式抓。

    准备:

    一、root 

      CF-auto-root: http://autoroot.chainfire.eu/

       需要清理全部数据,注意备份

       不用怕root 后的不安全,root权限由superU管理授权。

        root 后推荐: 绿色保护、fqrouter、xposed、XPrivacy。

    二、软件

       - adb  

          包含在android sdk中,通过USB debug 和android交互工具

       - tcpdump

          安装一个tcpdump 相关的app,app启动后会获取root权限将tcpdump安装好,当然不怕麻烦也可以下android tcpdump版本手动copy进去

      ----update 2015-1-2

        Android 5后,强制要求二进制文件支持PIE(Position-Independent-Executable) 提高系统安全性,能找到的tcpdump包基本都没PIE 无法执行,需修改tcpdump编译选项,刚找到编译好现成的了:http://www.liudonghua.com/?p=372 里面有下载(测试可用)。

       - busybox

         一个命令工具集合,在adb shell 提供大多数linux 下命令,我们要用到的nc 就在里面

    三、离线抓包

      - 方式一:adb usb 连接进去执行抓包

         adb shell su

         tcpdump -s 0 -w /sdcard/tmp.pcap

     - 方式二: tcpdump app 上执行抓包

         相关app 很多

          好处:可以不用usb连接,也能抓到正常使用环境的网络包,

                usb 连接时android 系统将不会进入深度睡眠,深度睡眠时客户端行为可能不太一样(wake lock、alarm、wifi switch..)

                同时推荐betterbatterystat http://forum.xda-developers.com/showthread.php?t=1179809

    -  拿出包

         抓完后,因为文件是通过root 账号写的,windows下看不到,mac本身不支持,所以停止回到系统shell

         adb pull /sdcard/tmp.pcap .     

      四、 实时查看抓包

         通过分享热度、360移动wifi 都能做到,不过存在问题:

          1. 只能wifi网络

          2. 因为是中间节点,抓的包的时序不一定是客户端包的时序

          2G/3G网络也可以做到,原理 将tcpdump 标准输出给nc、adb 只是端口映射,本机nc 连接adb 映射端口,将流给创建pipe,wireshark 支持pipe流

          脚本:

         1. adb_tcpdump.sh

    su
    tcpdump -s 0 -w - | busybox nc -l -p 11233
    

    2. adb_wireshark.sh

    adb shell < adb_tcpdump.sh &
    
    sleep 1
    adb forward tcp:11233 tcp:11233
    sleep 1
    
    mkfifo /tmp/sharkfin
    wireshark -k -i /tmp/sharkfin &
    
    nc 127.0.0.1 11233 > /tmp/sharkfin
    

    在mac 下执行./adb_wireshark.sh 就能弹出wireshark实时看看手机流量了

          

      

  • 相关阅读:
    emberjs初学记要
    自我的一点介绍(七夕礼物)
    JavaScript数据类型
    Vue+Webpack项目配置
    Git知识点整合
    Log4j简单配置解析
    如何明智地向程序员提问
    Navicat连接mysql报错1251
    多表查询sql语句
    PLSQL面向对象
  • 原文地址:https://www.cnblogs.com/lulu/p/3971041.html
Copyright © 2011-2022 走看看