当前位置: 首页 > 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是中文名称,会显示乱码,如果是英文则没问题。中文的话,则只能在包分析里面去看了,如下:

在这里插入图片描述

http://www.xdnf.cn/news/711793.html

相关文章:

  • Spring框架学习day1--基础概念
  • 深度解析UniApp盲盒系统开发:从源码架构到多端部署全流程
  • 基于STM32F10X的BMP280程序
  • 滚珠导轨:电子制造“纳米级”精度的运动基石
  • 如何用命令行将 PDF 表格转换为 HTML 表格
  • 责任链模式:构建灵活可扩展的请求处理体系(Java 实现详解)
  • ZYNQ移植FreeRTOS和固化和openAMP双核
  • 设备制造行业项目管理难点解析,如何有效解决?
  • 塔能科技:为多行业工厂量身定制精准节能方案
  • Kotlin 活动事件通讯跳转深度讲解
  • 职业本科院校无人机专业人才培养解决方案
  • KeePass安装与KeePass设置中文教程
  • springboot多模块父pom打包正常,单模块报错
  • clickhouse如何查看操作记录,从日志来查看写入是否成功
  • 湖北理元理律师事务所债务优化实践:在还款与生活间寻找平衡支点
  • [NOIP 2001 普及组] 数的计算 Java
  • 高防IP能抗住500G攻击吗?
  • PostgreSQL的聚集函数
  • Nest全栈到失业(三):半小时图书管理系统-User
  • Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)
  • CRMEB 单商户Java版 v2.3公测版发布,欢迎体验!
  • 收集飞花令碎片——C语言(数组+函数)
  • 酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方法
  • 小程序为什么要安装SSL安全证书
  • LeetCode 55 45:跳跃游戏与跳跃游戏 II - 贪心算法详解
  • 前端开发中 <> 符号解析问题全解:React、Vue 与 UniApp 场景分析与解决方案
  • 题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结
  • WPF log4net用法
  • STM32 AD单通道与多通道实战指南
  • 【QT】理解QT的“元对象系统”