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 PortsYou 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:7100You can also use adb to set up forwarding to named abstract UNIX domain sockets, as illustrated here:adb forward tcp:6100 local:logd 

更多相关文章

  1. android的wifi网卡移植详细过程已经通用驱动的问题
  2. 使用 Android(安卓)虛擬機器 - androidbmi/wiki/PlayEmulator
  3. android studio 使用adb命令传递文件到android设备
  4. Android(安卓)调试:java 跨工程调试 android 项目
  5. Windows下获取Android系统源码
  6. Android之adb
  7. android 环境安装、helloworld demo 创建运行
  8. .Net 转战 Android(安卓)4.4 日常笔记(5)--新软件Android(安卓)Stu
  9. Android(安卓)SDK安装更新Failed to fetch URL http://dl-ssl.go

随机推荐

  1. android运行模拟器脚本(批处理)
  2. 在Eclipse中进行Android单元测试
  3. android电池信息简介
  4. Android开发之拖动条/滑动条控件、星级评
  5. 笔记!
  6. Android 左右滑屏效果
  7. android adb 命令大全
  8. API 23 widget.Space——属性分析
  9. 在android创建bitmap避免低记忆法
  10. Android日志框架SLF4J Android