文章向大家介绍安卓逆向,解决app抓包抓不到的问题,主要包括安卓逆向,解决app抓包抓不到的问题使用实例、应用技巧

news2024/11/24 18:42:19

本文章向大家介绍安卓逆向,解决app抓包抓不到的问题,主要包括安卓逆向,解决app抓包抓不到的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

有时候app抓不到包,这不是工具的问题,而是你没有搞清楚网络协议,

网络协议

网络协议,比如http协议,这是全球通用的,大家约定好的,你要开发软件,就要遵守这个协议,

浏览器都是只能抓到应用层,

TCP/IP五层模型
五层协议:
应用层:用户使用的应用程序都归属于应用层,作用为规定应用程序的数据格式。
抓包工具,比如fiddler,Charles,都是只能抓应用层的协议,wareshark可以抓传输层的协议,但是一般不用这个软件太重了,
http协议,FTP,SMTP协议,都在应用层,
tcp,udp,在传输层,
ip协议,在网络层,

传输层:网络层帮我们找到主机,但是区分应用层的应用就是靠端口,所以传输层就是建立端口到端口的通信。(端口范围0-65535,0-1023为系统占用端口)
网络层:区分不同的广播域或者子网(否则发送一条数据全世界都会收到,是灾难)。
数据链路层:定义电信号的分组方式。
物理层:基于电器特性发送高低点电压(电信号),高电压对应数字1,低电压对应数字0。


c)OSI七层模型
七层协议:(应用层、表示层、会话层)、传输层、网络层、(数据链路层、物理层)

比如pc版本的qq客户端,你就抓不到包,因为这个没有用http协议,而是用的tcp协议,所以你抓不到

你发了一个微信消息给另外一个人,发生了什么?

这个就是遵守这个tcp/ip五层协议,

先从应用层往下封包,----然后到物理层开始传输,---到了对方那里之后开始从物理层开始解包,----一直到在微信里面开始展示出来,

抓包方式:

抓包方式

第一种抓包:代理抓包

1,代理抓包,比如fiddler,Charles,这都是使用的代理抓包,这是抓的应用层,这种是用的最多的,

优点:
配置简单/抓取解析SSL方便
缺点:
APP对代理抓包的检测屏蔽越发厉害

原理:

注意,这个fiddler这样的工具,只能抓http,https,websocket三种协议,比如发一个邮件是抓不到的,因为这是smtp协议,

这种代理抓包,又叫做中间人攻击,

所以这个工具的抓包原理是什么样的,就是使用的代理,把请求拦截,然后转发,

代理抓不到包的原因第一种:app设置了自己的代理

主要是app设置了自己的代理,安卓会优先走app自己设置的代理,所以就不会走抓包工具的代理,

如果判断app没有走我们的fiddler代理呢?

就是保持网络连接,关闭抓包工具,如果app还能访问正常,就说明没有走我们的fiddler代理,因为正常是fiddler关闭了之后,整个的app就访问不了了,

怎么解决这个问题?

使用一个app,proxydroid,这个app强制把代理往fiddler上面转,

原理就是配置了全局代理,强制把ip指向指定的端口上,

案例:mm应用市场

代理抓不到包的第二种:ssl pining ssl证书校验,这个是大部分的app抓不到包的原因

就是app对服务端的证书做校验,我们也叫做单向认证,

而fiddler上面肯定是没有这个证书的,所以app会校验不过,

为什么浏览器不会出现这个问题,因为浏览器不会校验这个证书,而app是公司自己开发的,可以加这个校验的功能,

怎么解决这个问题,

ssl pinning解决办法:

1.使用Hook手段 Hook APP端网络请求库对 ssl证书的判断方法

借助xposed 模块 justtrustme apk 地址:https://github.com/Fuzion24/JustTrustMe  ----通过安吉星演示

借助frida 程序 DroidSSLUnpinning https://github.com/WooyunDota/DroidSSLUnpinning  ----这个没有演示,

解决的思路是直接强制校验证书通过

示例:安吉星

2.逆向APP 扣出里面的证书 放到charles里 让charles使用真实证书做代理(在双向验证中讲) ---这种没有演示

部分 ssl pinning 失效的原因:---这种没有演示

Hook 失败,APP的网络请求库代码被混淆,或者大厂自己实现了一套网络请求库

解决办法:

逆向APP,找到证书验证的地方,修改xposed 的 justtrustme 或者 frida的DroidSSLUnpinning 代码,

重新Hook

这个是一个比较麻烦的事情,

代理抓不到包的第三种,双向认证

双向认证 使用者很少,会影响服务器性能 很难找到有app使用这种app

双向认证解决办法:

客服端校验仍然使用SSL unPinning方法

服务端校验,需把APP里的证书导入到代理抓包软件中,让代理抓包工具使用真实的APP证书。charles 比较方便配置

示例:soul

如何找到APP里的证书

反编译APP 在assert文件夹里有.p12 .pem之类文件cer ssl

反编译后,在源代码里大量搜索

Hook 监听Assert文件夹 知道读了哪些文件

可能有密码 Hook java.security.KeyStore 查看密码

通常有上面三个手段,就可以把大部分抓不到包的问题都解决了,

代理抓不到包的第四种,没有走应用层-----了解

socket通信是IP层,fiddler/charles抓不到,用wireshark抓包 在网卡混杂模式里讲wireshark

比如PC QQ

解析socket通信数据麻烦,要分析APP协议解析部分

代理抓不到包的第五种,私有协议----了解

这种不是通用的协议,

wireshark能抓到,不知道协议细节,解不了包。

需要分析APP协议解析部分

第二种抓包:网卡混杂抓包--了解

2,网卡混杂抓包,webshark,这个能抓传输层,和应用层,但是一般不用这个软件太重了,

第三种抓包:路由器抓包--了解

3,路由器抓包,网络组网方式,因为所有的流量都要从路由器过,使用特殊的路由器,可以进行路由器抓包,

公司有的老板,监控每一个员工的访问记录,就是路由器可以监控每一个机器的访问记录

这个也没有什么可将的,你去买一个有这个功能的路由器就可以了,

第四种抓包:hook域名--了解

4,hook域名,把https改成http,

5,hook网络请求库,比如request,

这种hook的抓包就比较麻烦了,了解一下有这种方式,但是不做为掌握,

注意:

 1.安卓7.0(包括7.0)以后,安卓系统不再信任用户安装的证书。(例如 fiddler/charles的代理抓包证书) mumu模拟器
解决7.0以后用户证书不信任问题两种方法:
(1)root手机,把代理证书放到系统证书根目录下
用户CA证书目录
/data/misc/user/0/cacerts-added
系统CA证书目录
/system/etc/security/cacerts
问题:
有的手机root /system 分区是只能读 仍然不能把证书放到系统根目录, 比如魅族pro5
df 命令
mount -o rw,remount /system
(2) hook 系统方法,强行让系统信任用户证书:
比如:使用xposed框架的justtrustme模块 和 frida的DroidSSLUnpinning
tricks:
1.优先使用安卓系统低版本抓包
优先使用安卓4.0 5.0 6.0抓包
2.优先使用APP低版本抓包
比如微信7.0以下 在安卓4.0-6.0上 容易抓包微信小程序
优先使用能用的APP最低版本

所以工具充分准备,

各种抓包工具都准备好,fiddler,Charles,wirsshark,

各种模拟器都安装一下,夜神,mumu,雷电,4.0 5.0 6.0

各种手机都准备一下,安卓4.0 5.0 6.0 7.0 root过的,还有苹果手机,

没有必要因为一个抓包非要搞定一个高版本的app,我们只是要数据,不是要对抗新版本。

 还想学习的话,记得收藏及关注哦
 
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
                    

                                                                                                                 
  ⑤ Python学习路线图(告别不入流的学习) 
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,还有同行大神一起交流技术哦
   ————————————————
「学习资料 笔记 工具 文档领取」

图片

备注“csdn111”
小姐姐邀你一起学习哦~~
和志同道合的测试小伙伴一起讨论测试技术吧!

 一定一定一定 要备注暗号:CSDN111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

透视金融科技Q3财报:规模效应显现,深化小微服务覆盖面

面对复杂的经济环境,助力实体经济发展、服务小微企业仍是金融领域的挑战和机遇。 近日,在美上市的多家金融科技公司先后公布了截至2022年9月30日的2022年第三季度财报。在国内疫情多点散发、经济复苏承压背景下,金融科技企业们仍展现了强大的…

计算机毕业设计之java+ssm美味厨房点餐系统

项目介绍 本美味厨房点餐管理系统是针对目前美味厨房点餐管理的实际需求,从实际工作出发,对过去的美味厨房点餐管理系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,…

HTML+CSS项目案例

文章目录1、成绩表2、青蒿素3、静夜思4、毕业季再见青春5、个人信息6、咖啡1、成绩表 案例演示&#xff1a;&#xff08;table、tr、td、th的练习&#xff09; 实现代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8">&…

java集合框架------Collection接口

导语 对于多个同一类型的数据进行存放和处理时&#xff0c;相信很多人想到的第一个方法就是使用数组&#xff0c;但是数组的使用有非常多的局限性&#xff0c;比如长度不够啦&#xff0c;增删操作需要移动多个元素啦。 对于此种问题&#xff0c;采用集合才是最好的解决办法&a…

[附源码]计算机毕业设计springboot基于Web的绿色环保网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

uni-fab彩色图标按钮

资源已经上传了。大家直接可以引用uni-fab就可以https://download.csdn.net/download/qq_39504612/87216560 1. 下载彩色图标 1.首先&#xff0c;从iconfont官网&#xff08;iconfont-阿里巴巴矢量图标库&#xff09;选择自己需要的图标加入项目中&#xff0c;点击下载至本地…

Alibaba Nacos 客户端注册从客户端项目到nacos项目的整体流程核心梳理

客户端篇&#xff1a; 1、NacosAutoServiceRegistration类继承了AbstractAutoServiceRegistration类&#xff0c;AbstractAutoServiceRegistration类实现了ApplicationListener&#xff0c;实现了ApplicationListener接口的类都必须实现一个onApplicationEvent方法&#xff0c;…

CSDN页面左上角出现红色“不安全 | https” ,并且把鼠标放在上面的头像和消息时无法下拉菜单

CSDN页面左上角出现红色“不安全 | https”&#xff0c;如下图&#xff1a; 我不说多了&#xff0c;直接说吧 “不安全 | https”&#xff0c;先点击“不安全”看看&#xff1a; 点击“证书无效”&#xff0c;—>“基本信息” 点击“详细信息” 这三个截图都是有问题…

【元胞自动机】元胞自动机双边教室疏散【含Matlab源码 1208期】

⛄一、元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 何顿 康威设计了一个电脑游戏 “生命游戏” 后, 元胞自动机才吸引了科学家们的注意. 1983 年…

Vue3 | Vue3与Vue2相比的优势、创建项目的方式以及一些常见的Compositioin API

一、Vue3与Vue2相比&#xff0c;有哪些优势呢&#xff1f; 1、性能的提升&#xff1a; 打包大小减少41%初次渲染快55%&#xff0c;更新渲染快133%内存减少54%2、源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking3、新的特性 Composition API&…

[附源码]计算机毕业设计JAVA小型医院药品及门诊管理

[附源码]计算机毕业设计JAVA小型医院药品及门诊管理 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …

Vue3 - Pinia 状态管理(环境搭建安装及各属性使用教程)详细使用教程

目录初识 Pinia介绍环境搭建getters 属性actions 属性Pinia 模块化Pinia 解构 storePinia 数据持久化SEO初识 Pinia vue 官方文档&#xff1a;https://cn.vuejs.org/guide/scaling-up/state-management.html#pinia Pinia 官方文档&#xff1a;https://pinia.web3doc.top/ pinia…

hiveSql冷门但好用函数 --持续更新

hiveSql常用函数字符串函数to_jsonjson_tupletranslate日期函数next_day字符串函数 to_json 将STRUCT类型的数据转化为json格式字符串&#xff0c;此处需要另外学习一个named_struct()函数:自定义结构化数据的KVnamed_struct(k1,v1,k2,v2…)示例&#xff1a; select named_s…

吉时利2602A数字源表-安泰测试

吉时利Keithley2602A双通道系统数字电源 Keithley/吉时利2602A数字源表数字源表是吉时利新的I-V源测量仪器&#xff0c;可用作台式I-V特征分析工具或者构成多通道I-V测试系统的组成模块。作为台式仪器使用时&#xff0c;2600A系列仪器提供了一个嵌入式TSP Express软件工具&…

函数定义、this指向、闭包等

1、函数的定义和调用 1.1函数的定义方式 1、自定义函数&#xff08;命名函数&#xff09; 2、函数表达式&#xff08;匿名函数&#xff09; 3、利用 new Function (‘参数1’, ‘参数2’, ‘函数体’) 1、自定义函数&#xff08;命名函数&#xff09; function fn() {}2、函…

微服务框架 SpringCloud微服务架构 6 Nacos 配置管理 6.1 Nacos 实现配置管理

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构6 Nacos 配置管理6.1 Nacos 实现配置管理6.1.1 统一配置管理6.1.2 直接开干…

Chapter9.4:线性系统的状态空间分析与综合(下)

此系列属于胡寿松《自动控制原理题海与考研指导》(第三版)习题精选&#xff0c;仅包含部分经典习题&#xff0c;需要完整版习题答案请自行查找&#xff0c;本系列属于知识点巩固部分&#xff0c;搭配如下几个系列进行学习&#xff0c;可用于期末考试和考研复习。 自动控制原理(…

UG NX二次开发(C#)-CAM-获取所有的加工刀具表单

文章目录 1、前言2、加工模块的刀具2.1 进入加工模板2.2 创建加工刀具3、创建一个UI Styler程序3.1 创建一个UI Styler3.2 保存对话框4、创建GetMachiningToolList工程5、添加代码6、保存工程,生成dll7、配置工程8、测试效果1、前言 UG NX软件最擅长的就是生成加工程序,包括…

Express操作MongoDB

一、Express框架通过Mongoose模块操作MongoDB数据库 1、MongoDB数据库&#xff1a; ​ &#xff08;1&#xff09;存放数据的格式&#xff1a;key-value ​ &#xff08;2&#xff09;数据库(database) ——- 集合(collection) ——- 文档(document) ​ &#xff08;3&…

数字逻辑·时序线路设计【原始状态表】

这一篇着重原始状态表 组合线路设计与时序线路设计的区别 组合线路设计方法&#xff1a; 确定输入和输出写真值表写表达式并化简根据题目给出的门或者其他要求进行变换&#xff08;取反&#xff09;画电路图 时序线路设计方法&#xff1a; 确定输入和输出&#xff0c;建立…