当前位置: 首页 > news >正文

android无root抓包(PCAPdroid)

  • 官网:https://github.com/emanuele-f/PCAPdroid
  • apk下载:https://github.com/emanuele-f/PCAPdroid/releases/

为了预防Github打不开,我在Gitee上克隆了一份:

  • https://gitee.com/daizhufei/PCAPdroid
  • https://gitee.com/daizhufei/PCAPdroid/releases/ Gitee在克隆时不会克隆release,所以我这里只是手动上传了1.8.6版本的apk,其它版本或者最新版本请从Github上下载。

PCAPdroid 是一款注重隐私的开源应用程序,可让您跟踪、分析和阻止设备中其他应用程序建立的连接。它还允许您导出流量的 PCAP 转储、检查 HTTP、解密 TLS 流量等等!

PCAPdroid 模拟 VPN 以便在没有 root 的情况下捕获网络流量。它不使用远程 VPN 服务器,而是在设备上本地处理数据。

使用Fiddler代理可以给Android抓包,但是它抓的是TCP连接的,PCAPdroid 则没有限制,比如我的App使用UDP连接也可以捕获。

PCAPdroid使用:

  1. 下载apk:https://github.com/emanuele-f/PCAPdroid/releases/
  2. 安装到手机上
  3. 启动应用,如下:
    在这里插入图片描述
  4. 点击“无转储”,然后选择“PCAP文件”,这样捕获的流量会转储到PCAP文件中。
  5. 在目标应用中,可以选择要捕获的app,如果不选择,则默认捕获所有app的流量。
  6. 点击标题栏的设置按钮,然后开启 “PCAPdroid扩展” ,这样可以向数据包添加应用名称,并在Wireshark中显示,当我们对多个app同时抓包时,通过应用名称可以快速区分流量是哪个应用产生的。
  7. 点击标题栏的运行按钮(三角形按钮)或者 “就绪” 两字即可开始抓包,如果是第一次运行会弹出一个VPN权限授权对话框,同意即可。
  8. 点击标题栏的停止按钮(四方形按钮)即可停止抓包。抓包文件保存在/sdcard/Download/PCAPdroid目录中,文件名类似于:PCAPdroid_29_5月_15_28_44.pcap
  9. 使用Wireshark打开pcap文件进可进行流量分析,示例如下:
    在这里插入图片描述
    如上图,可看到有SIP协议,因为我的App中使用了SIP协议来做即时通讯,我们随机点击一个SIP协议的请求,如下:
    在这里插入图片描述
    如上图,可以看到我们应用的SIP消息是使用UDP协议进行发送的。
  10. 之前我们开启了“PCAPdroid扩展” ,它会向数据包中添加应用名称,但是我们并没有看到这个数据,这是因为添加的应用名称不是标准协议里面的,需要添加插件来解析,下载插件:https://github.com/emanuele-f/PCAPdroid/blob/master/tools/pcapdroid_udpdump.lua
    在这里插入图片描述
    pcapdroid_udpdump.lua放到Wireshark安装目录中的\plugins\4.0\目录下,完整路径类似于:C:\Program Files\Wireshark\plugins\4.0\pcapdroid.lua
    再次打开pcap文件,如下:
    在这里插入图片描述
    如上图所示,可以看到有两个地方显示了应用名称,对于中文,一个地方正常,一个地方乱码。
  11. 可以把应用名称显示到列中,在任意一列中右击,然后选择“列首选项…”,如下:
    在这里插入图片描述
    在弹出地界面中,点击加号来添加一列,在Title中输入 “App”,在类型中选择 “Custom”,在Fields中输入 “pcapdroid.appname”,然后点击 “OK” 按钮即可,效果如下:
    在这里插入图片描述
    在这里插入图片描述
    Info这一列占的宽度很宽,所以默认情况下看不到App这一列,把Info这一列拉窄一点就能看到了。遗憾的是,如果App是中文名称,会显示乱码,如果是英文则没问题。中文的话,则只能在包分析里面去看了,如下:

在这里插入图片描述

相关文章:

  • Java消息队列与安全实战:谢飞机的烧饼摊故事
  • 智能外呼系统中 NLP 意图理解的工作原理与技术实现
  • 小型语言模型:为何“小”才是“大”?
  • 压力容器大屏监控系统 – 工业可视化HTML源码
  • 14.Java反射机制:解锁动态编程的魔法之门
  • 每日Prompt:卵石拼画
  • Java交互协议详解:深入探索通信机制
  • 2025年05月29日Github流行趋势
  • 新一代Python管理UV完全使用指南|附实际体验与效果对比
  • 【NebulaGraph】查询案例(七)
  • 快速了解 GO 之依赖注入与 mock测试
  • 【Elasticsearch】exists` 查询用于判断文档中是否存在某个指定字段。它检查字段是否存在于文档中,并且字段的值不为 `null`
  • Ubuntu Zabbix 钉钉报警
  • 3 分钟学会使用 Puppeteer 将 HTML 转 PDF
  • RK3568DAYU开发板-平台驱动开发--UART
  • STP配置
  • 【ConvLSTM第一期】ConvLSTM原理
  • day13 leetcode-hot100-24(链表3)
  • c++ opencv 形态学操作腐蚀和膨胀
  • OpenCV CUDA模块结构分析与形状描述符------在 GPU 上计算图像的原始矩(spatial moments)函数spatialMoments()
  • 网站建设哪个好/百度搜索怎么优化
  • 河北建设厅网站上不去/关键词英文
  • 网站中下滑菜单怎么做/石家庄网站建设公司
  • 烟台网络推广引流/湖北seo整站优化
  • wordpress付费破解/排名优化系统
  • 泰安哪家做网站好/怎么做好网络营销推广