zoukankan      html  css  js  c++  java
  • [转] Android实时抓包分析 : 善用adb调试桥

    Android实时抓包分析 : 善用adb调试桥
     

    谈到android网络抓包,很多人都能想到牛逼轰轰的神器tcpdump。方法就是在android机器上面安装tcpdump,然后通过-w参数把抓包记录到本地,再把抓到的.cap文件导到pc上面用wireshark来分析。这里步骤非常多,在和后台联调的时候,这个效率是非常低的。

    能不能在android上面启动抓包,然后直接在pc端看到实时抓包结果?

    有了adb调试桥,我们就可以做到这么便捷。

    一、准备工具:

    1、android 系统root
    
    2、android上安装tcpdump
    
    3、android上安装netcat,可以直接使用busybox的版本
    
    4、pc的wireshark的安装目录下需要有nc客户端
    
    5、把android手机和pc通过usb调试连接上

    二、命令:

    1、android上先执行:

    /data/tcpdump-arm -n -s 0 -w - | nc -l -p 11234

     * 11234是示例,端口可以自己定

    2、pc上启动adb forward:

    adb forward tcp:11234 tcp:11234 && nc64 127.0.0.1 11234 | wireshark -k -S -i -

     * 这里的11234要和前面启用11234要保持一致

    3、如果抓包成功,那么pc端的wireshark是自动启动的,并且可以看到网络包

    三、实现原理:

    关键的逻辑在adb forward这个命令,这个命令实现了端口映射的功能:

    Forwarding Ports
    You can use the forward command to set up arbitrary port forwarding — forwarding of requests on a specific host port to a different port on an emulator/device instance. Here's how you would set up forwarding of host port 6100 to emulator/device port 7100:
    
    adb forward tcp:6100 tcp:7100
    You can also use adb to set up forwarding to named abstract UNIX domain sockets, as illustrated here:
    
    adb forward tcp:6100 local:logd 
  • 相关阅读:
    mysql设置指定ip远程访问连接实例
    Hibernate学习笔记之EHCache的配置
    关于Hibernate中的Configuration
    Hibernate的一级缓存
    Hibernate工作原理
    org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
    微信多客户端
    【hadoop之翊】——CentOS6.5 Linux上面编译Hadoop2.4源代码
    HDU 2102 A计划 (三维的迷宫BFS)
    SSO 中间件 kisso
  • 原文地址:https://www.cnblogs.com/jhj117/p/4528886.html
Copyright © 2011-2022 走看看