zoukankan      html  css  js  c++  java
  • 转: Android开发的网络抓包

    方法就是在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 
  • 相关阅读:
    Spring Boot + Vue 开发前后端分离的员工管理系统
    树莓派4B部署docker
    免费的论文查重网站
    JavaScript设计模式
    js继承的用法
    js闭包与柯里化
    Javascript编程小技巧
    spy-debugger和fiddler实现移动端抓包
    grid布局
    js判断对象是否为空对象的几种方法
  • 原文地址:https://www.cnblogs.com/jhj117/p/5775314.html
Copyright © 2011-2022 走看看