frida的安装使用以及解决抓包app时遇到的证书校验

frida的安装和使用

这里使用夜神模拟器来演示frida的使用,因为真机开启frida-server服务时需要root权限,模拟器自带root

  1. 下载夜神模拟器并启动 夜神官网

  2. 打开power shell, adb连接模拟器,查看模拟器的系统型号

     adb connect 127.0.0.1:62001
    ==already connected to 127.0.0.1:62001
    adb shell getprop ro.product.cpu.abi
    ==x86 
    
    
  3. 本机安装frida, frida-tools

     #安装frida, frida-tools
     pip install frida frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
     #查看frida版本,可以找到对应的frida-server的版本
     frida --version
     ==16.3.3
     
    
  4. 从frida github文件下载下载对应的frida-server版本,从以上的模拟器系统(x86),以及frida版本(16.3.3)寻找
    选择对应的frida-server版本

  5. 下载该压缩包文件后,一定要进行解压, 然后对解压后的文件进行重命名,名字可以自定义,为了方便,我这边重定义为frida-server

    解压缩后的文件重命名

  6. 将解压缩的文件上传到手机,并对文件进行权限设置,且运行文件

    #上传文件到模拟器的/data/local/tmp
    adb push frida-server /data/local/tmp/frida-server
    #进入模拟器系统
    adb shell
    #进入到tmp目录下
    cd /data/local/tmp
    #对frida-server进行权限处理,真机需要root, 但是模拟器自带root权限
    chmod 777 frida-server
    #执行frida-server, 切记前面加 ./
    ./frida-server
    ==没有任何报错且输出则表明该服务已经开启,如果想后台运行,则可以后台运行
    
    
  7. 另开一个命令行,转发端口,进行监听

    adb forward tcp:27042 tcp:27042 
    ​
    adb forward tcp:27043 tcp:27043
    
  8. 查看手机进程,能够查验到则说明安装成功

    #显示所有进程
    frida-ps -U
    

    在这里插入图片描述
    查看运行中的应用以及包名

    frida-ps -U -a
    

    在这里插入图片描述

  9. 示例: hook java层的函数

    Java.perform(() => {
        let MainActivity = Java.use('com.germey.appbasic1.MainActivity')
        console.log('start hook')
        MainActivity.getMessage.implementation = (arg1, arg2) => {
            send('Start Hook!')
            return '8'
        }
    })
    
  10. 示例: hook native层


Java.perform(function () {
    Interceptor.attach(Module.findExportByName('libnative.so', 'Java_com_germey_appbasic2_MainActivity_getMessage'),{
        onEnter: function (args) {
            send('hook onEnter')
            send('args[1]=' + args[2])
            send('args[2]=' + args[3])
        },
        onLeave: function (val){
            send('hook onLeave')
            val.replace(Java.vm.getEnv().newStringUtf('5'))
        }
    })
})
  1. 使用上面两个js文件对app进行hook
 #hook_java.js 实行hook的js文件
 #com.germey.appbasic1 app的包名,可以使用命令 frida-ps -U -a 查看运行中的app包名
 frida -U -l hook_java.js  -f com.germey.appbasic1

frida+DroidSSLUnpinning 解决charles抓app包https请求证书校验失败问题

正常使用charles抓app包的时候,比如百度, 会发现配置好代理后,页面无法加载,此时就是因为证书校验没通过,而使用frida+DroidSSLUnpinning就可以通过hook修改证书返回结果,从而跳过证书校验
  1. 下载charles并抓包app,可以查看该博客进行学习操作, 很详细!!Charles和夜神模拟器结合对安卓应用进行抓包

  2. 下载DroidSSLUnpinning github地址,下载zip文件,并解压

    在这里插入图片描述

  3. 进入到解压后的文件…\DroidSSLUnpinning\ObjectionUnpinningPlus目录下,对指定包名进行hook就可以跳过证书验证了


#查看现在模拟器上所有运行的app信息,包括包名
frida-ps -U -a
#com.baidu.searchbox  为包名,我这里使用的是baidu作为测试app
frida -U -l hooks.js  -f com.baidu.searchbox

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解锁高效运维新纪元:网络基础设施数字孪生管理工具

随着信息技术的飞速发展,网络基础设施的运维管理变得日益复杂。北京耐威迪科技股份有限公司凭借其创新技术,推出了nVisual网络基础设施数字孪生管理工具,这一革命性的解决方案不仅提升了运维效率,更在成本节约和项目进度上实现了突…

【Redis】Set 集合常用命令以及使用场景

集合(Set)类型的值是字符串的无序集合,并且每个值都是唯一的。本文将介绍 Redis Set 的常用命令包含示例、Set的内部编码以及使用场景。 集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中 1)元素…

2024最新总结:1500页金三银四面试宝典 记录35轮大厂面试(都是面试重点)

学习是你这个职业一辈子的事 手里有个 1 2 3,不要想着去怼别人的 4 5 6,因为还有你不知道的 7 8 9。保持空瓶心态从 0 开始才能学到 10 全。 毕竟也是跳槽高峰期,我还是为大家准备了这份1500页金三银四宝典,记录的都是真实大厂面…

VS2019安装插件image watch

image watch的作用: (1)放大、缩小图像; (2)将图像保存到指定的目录; (3)显示图像大小、通道数; (4)拖拽图像; &…

jenkins nginx自动化部署 php项目

在当今快速发展的IT领域,自动化部署已成为提高工作效率和减少错误的关键。Jenkins作为持续集成/持续部署(CI/CD)的佼佼者,结合Docker容器技术和PHP编程语言,以及Ansible自动化工具,可以实现高效、可靠的自动…

AppFlow无代码轻松搭建模型Agent

随着大语言模型发展至今,如何深度开发和使用模型也有了各种各样的答案,在这些答案当中,Agent无疑是一个热点回答。 通过模型也各种插件的组合,可以让你的模型应用具备各种能力,例如,通过天气查询插件机票查…

使用 SwiftUI 为 macOS 创建类似于 App Store Connect 的选择器

文章目录 前言创建选择器组件使用选择器组件总结前言 最近,我一直在为我的应用开发一个全新的界面,它可以让你查看 TestFlight 上所有可用的构建,并允许你将它们添加到测试群组中。 作为这项工作的一部分,我需要创建一个组件,允许用户从特定构建中添加和删除测试群组。我…

MySQL周内训参照3、简单查询与多表联合复杂查询

基础查询 1、查询用户信息,仅显示用户的姓名与手机号,用中文显示列名。中文显示姓名列与手机号列 SELECT user_id AS 编号, phone AS 电话 FROM user; 2. 根据订购表进行模糊查询,模糊查询需要可以走索引,需要给出explain语句。…

什么是yum源?如何对其进行配置?

哈喽,大家好呀!这里是码农后端。今天来聊一聊Linux下的yum源及其配置相关的内容。简单来说,yum源就相当于一个管理软件的工具,可以想象成一个很大的仓库,里面存放着各种我们所需要的软件包及其依赖。 一、Linux下软件包…

【Linux进阶】基础IO函数详解

1.函数open和openat 调用open或openat函数可以打开或创建一个文件。 #include <fcntl.h> int open(const char *path, int ofag, ... /* mode_t mode */);int openat (int fd, const char *path, int oflag, ... /* mode_t mode */); 我们将最后一个参数写为...&#x…

Vue报错:Component name “xxx” should always be multi-word vue/multi-word-component

问题&#xff1a;搭建脚手架时报错&#xff0c;具体错误如下&#xff1a; ERROR in [eslint] E:\personalProject\VueProjects\vueproject2\src\components\Student.vue10:14 error Component name "Student" should always be multi-word vue/multi-word-compon…

windows下以服务方式安装prometheus和grafana

grafana 找到confi下的defaults.ini&#xff0c;找到http_port修改端口号 # The HTTP port to use http_port 3000启动 grafana-server.exe访问localhost:8601即可 下载winsw https://github.com/winsw/winsw 新建grafanaservice.xml <service><id>grafana&…

第一后裔/The First Descendant延迟高的解决方法

第一后裔/The First Descendant是一款备受玩家关注的射击游戏&#xff0c;该作拥有多个角色&#xff0c;并为其设定不同的概念和战斗风格&#xff0c;以及技能点&#xff0c;不仅能让玩家畅快作战&#xff0c;还能通过各种道具&#xff0c;不断强化角色能力值&#xff0c;让其战…

接口自动化测试框架实战(Pytest+Allure+Excel)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1. Allure 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不…

牛筋面,一口难忘的劲道滋味

在众多的平凉美食中&#xff0c;牛筋面以其独特的口感和丰富的口味&#xff0c;赢得了无数食客的喜爱。牛筋面&#xff0c;这一名字就给人一种坚韧、有嚼劲的印象。它并非由牛筋制成&#xff0c;而是因其面条的口感如牛筋般劲道而得名。牛筋面的制作过程颇具巧思。选用优质的面…

WebStorm配置路径别名

项目是 ViteVueTs 新建一个 jsconfig.json文件 {"compilerOptions": {"baseUrl": ".","paths": {"/*": ["./src/*"]}},"exclude": ["node_modules", "dist"] }然后在 vite.confi…

【Linux】进程优先级 | 环境变量

目录 Ⅰ. 进程优先级&#xff08;Process Priority&#xff09; 1. 什么是进程优先级&#xff1f; 2. 查看系统进程 3. 修改进程优先级 4.优先级调度原理 Ⅱ. 进程的切换&#xff08;Process Switch&#xff09; 1. 竞争与独立 2. 并行与并发 3. 进程抢占 4.实现切换…

MYSQL存储过程的创建

关于存储过程的题目 1、创建存储过程,查看user表中的所有数据 2、创建存储过程avg_order_quantity,返回所有订单的平均工资 3、创建存储过程show_max_bprice,用来查看bookS的单价最贵的价格 4、创建存储过程show_min_bprice,用来查看bookS的单价最低的价格&#xff0c;并将…

Unity免费领高级可视化编程自定义节点工具AI行为UI流程对话树状态机逻辑等FlowReactor价值50刀high level20240627

刚发现一款类似虚幻蓝图的可视化编程工具&#xff0c;原价50刀&#xff0c;现在免费领取了。赶紧去领取入库&#xff0c;防止作者涨价。 高级可视化编程自定义节点工具&#xff1a;https://prf.hn/l/BJbdvnD 作者其他资产&#xff1a;https://prf.hn/l/YLAYznV Unity免费领高级…

C#udpClient组播

一、0udpClient 控件&#xff1a; button&#xff08;打开&#xff0c;关闭&#xff0c;发送&#xff09;&#xff0c;textbox&#xff0c;richTextBox 打开UDP&#xff1a; UdpClient udp: namespace _01udpClient {public partial class Form1 : Form{public Form1(){Initi…