r0capture安卓应用层通杀脚本-使用文档
| 本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! |
r0capture安卓应用层通杀脚本-使用文档
操作环境
- win10
- Google nexus5x
- Python3.9
- Pycharm2021
- frida==14.2.17
- frida-tools==9.2.4
- 推荐环境:https://github.com/r0ysue/AndroidSecurityStudy/blob/master/FRIDA/A01/README.md
工具脚本简介
- 仅限安卓平台,测试安卓7、8、9、10、11 可用 ;
- 无视所有证书校验或绑定,不用考虑任何证书的事情;
- 通杀TCP/IP四层模型中的应用层中的全部协议;
- 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
- 通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
- 无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;
- (限制) 基于Java的虚拟机,暂未支持 flutter(开发框架),flutter走的已经不是java的虚拟机了!
TCP/IP四层模型介绍
应用层
应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层
在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层
负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层(主机-网络层)
接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
环境准备
安装Python环境及frida:注意frida和frida-tools版本匹配,这里我选择指定版本安装的方式
pip install frida==14.2.17
pip install frida-tools==9.2.4
查看python所有安装包:pip list

下载安装frida-server
在 官方github页面的
release标签里,找到对应版本的frida-server,注意要匹配系统和架构,比如arm和arm64就不能搞错查看手机CPU 架构类型
adb shell getprop ro.product.cpu.abi

根据frida版本和手机CPU版本下载对应的frida-server

下载完成后进行解压,获得linux原生的可执行文件,我们将它重命名为frida-server将frida-server安装至手机
使用
adb命令将其推送到手机上去$ adb push frida-server /data/local/tmp/
然后使用
adb shell命令进入到手机中去,执行以下命令:$ adb shell
bullhead:/ $ su
bullhead:/ # whoami
root
bullhead:/ # cd /data/local/tmp/
bullhead:/data/local/tmp # chmod 755 /data/local/tmp/frida-server
bullhead:/data/local/tmp # ./frida-server &
[1] 6669frida-server运行成功。
至此所需环境准备完成
工具脚本用法
**下载安卓应用层抓包通杀脚本:https://github.com/r0ysue/r0capture**
两种抓包模式
Spawn 模式,直接抓包
python r0capture.py -U -f 包名
Attach 模式,将抓包内容保存成pcap格式文件
python r0capture.py -U 包名 -p 文件名.pcap
建议使用
Attach模式,从感兴趣的地方开始抓包,并且保存成pcap文件,供后续使用Wireshark进行分析。
导入脚本项目
导入到Pycharm项目中

安装项目所需的包
# pip install win_inet_pton
# pip install hexdump
# pip install loguru
在要执行文件
r0captue.py的上一级开启一个命令行或直接cd 到要执行的目录,如下图所示:

在开启的命令行中两种方式的任意一种进行抓包,建议使用Attach模式,从感兴趣的地方开始抓包,并且保存成pcap文件。
开始抓包
获取应用包名
1.adb shell am monitor
2.启动需要获取包名的应用
3.窗口就会打印出来当前应用的包名

给应用添加读取存储空间权限
启动frida-server
adb sehll
su
cd /data/local/tmp/
./frida-server &
ps | grep frida

检查是否启动成功:在电脑上新开一个
shell,运行frida-ps -U命令,即可显示手机中正在运行的进程。

Spawn 模式,直接抓包
用法:
python r0capture.py -U -f com.dianping.v1
Attach 模式,将抓包内容保存成pcap格式文件
先打开需要抓包的应用,然后在命令行输入
python r0capture.py -U com.dianping.v1 -p 123.pcap在操作想抓包的地方,对应的记录会保存至项目同目录下的pcap文件中

Press Ctrl+C to stop logging.Ctrl+C 结束,如果数据量很大的话,需要等待一会才能彻底关闭
分析数据
通过上面的方式将抓取到的pcap格式的文件通过
Wireshark打开,选择里面的某条数据内容使用分析->追踪流->分析抓包数据即可!如下图所示:


资源下载
https://download.csdn.net/download/qq_38154948/85061788
| 本文仅供学习交流使用,如侵立删! |
r0capture安卓应用层通杀脚本-使用文档的更多相关文章
- JsDoc脚本注释文档生成
使用jsDoc可使用特定注释,将注释的内容生成文档,可用于生成脚本库的API文档 jsdoc 文档: http://usejsdoc.org/
- itop4412开发版-安卓系统卸载默认apk使用文档
itop4412开发版的安卓系统默认不是最高权限,可以看见后面最后一个是$符号,如下图 1,所以 想我们需要进入 root 权限,可以看见后面最后一个是#符号,如下图所示.在这个变换中只需 要在超级终 ...
- javascript文档
DOM Document <html> Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页 ...
- ElasticSearch查询 第二篇:文档更新
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- JavaScript权威指南--脚本化文档
知识要点 脚本化web页面内容是javascript的核心目标. 第13章和14章解释了每一个web浏览器窗口.标签也和框架由一个window对象所示.每个window对象有一个document对象, ...
- elasticsearch——海量文档高性能索引系统
elasticsearch elasticsearch是一个高性能高扩展性的索引系统,底层基于apache lucene. 可结合kibana工具进行可视化. 概念: index 索引: 类似SQL中 ...
- ES 26 - 通过partial update局部更新索引文档 (partial update增量修改原理)
目录 1 什么是partial update 1.1 全量修改文档的原理 1.2 修改指定field的思路 1.3 partial update的优势 1.4 partial update的使用 2 ...
- ES(ElasticSearch)文档的表现形式以及增删改查
1. ES中的文档 ES是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document).然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索 ...
- python sphinx(文档生成器)入门
简介 Sphinx 是一个 文档生成器 ,您也可以把它看成一种工具,它可以将一组纯文本源文件转换成各种输出格式,并且自动生成交叉引用.索引等.也就是说,如果您的目录包含一堆 reStructuredT ...
随机推荐
- 219. Contains Duplicate II - LeetCode
Question 219. Contains Duplicate II Solution 题目大意:数组中两个相同元素的坐标之差小于给定的k,返回true,否则返回false 思路:用一个map记录每 ...
- 设计并实现加法器类 Adder
学习内容:设计并实现加法器类 Adder 代码示例: package 实验三; import java.util.Scanner; public class Adder { private int n ...
- 基础篇:java GC 总结,建议收藏
垃圾标记算法 垃圾回收算法 major gc.mini gc.full gc.mixed gc 又是什么,怎么触发的 垃圾回收器的介绍 Safe Point 和 Safe Region 什么是 TLA ...
- Spring大事务到底如何优化?
所谓的大事务就是耗时比较长的事务. Spring有两种方式实现事务,分别是编程式和声明式两种. 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交. 一.大事务产生的原因 操作的数据 ...
- CA周记 - Build 2022 上开发者最应关注的七大方向主要技术更新
一年一度的 Microsoft Build 终于来了,带来了非常非常多的新技术和功能更新.不知道各位小伙伴有没有和我一样熬夜看了开幕式和五个核心主题的全过程呢?接下来我和大家来谈一下作为开发者最应关注 ...
- k8s中label和label selector的基本概念及使用方法
1.概述 在k8s中,有一个非常核心的概念,就是label(标签),以及对label的使用,label selector. 本文档中,我们就来看看:1.什么是标签,2.如何定义标签,3.什么是标签选择 ...
- 13. L1,L2范数
讲的言简意赅,本人懒,顺手转载过来:https://www.cnblogs.com/lhfhaifeng/p/10671349.html
- FFT 小记
写在前面 \(Q:\) 为什么会心血来潮去学 FFT \(A:\) 当本蒟蒻还在努力消化凸包时:.所以本蒟蒻也来看一下 等等 摸头警告 .思维已经废了 About FFT FFT( \(Fast\ F ...
- 线程安全性-原子性之Atomic包
先了解什么是线程安全性:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称为这个类是线程 ...
- MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI
1. 前言 距离上次发<MAUI初体验:爽>一文已经过去2个月了,本计划是下半年或者明年再研究MAUI的,现在计划提前啦,因为我觉得MAUI Blazor挺有意思的:在Android.iO ...