使用 frida hook Android app

一文搞懂如何使用 Frida Hook Android App 根据自己的 android 版本,降级或升级 frida、frida-tool、frida-server的版本即可,比如 android10 实测可用的版本如下。创建 frida-server-upload.bat,实现拖入 frida-server 直接推送到设备并添加执行权限。在安装 frida 时候提示找不到 frida-14.2.18-py3.8-win-amd64.egg。创建 frida-server-start.bat,实现一键启动 frida-server 并转发端口。 阅读详情

Frida:

一种基于动态插装(dynamic instrumentation)技术的工具包,它主要是为测试人员、开发人员和逆向工程爱好者创建,在目标程序运行时,允许用户将 JavaScript代码注入其中,实现动态修改和调试。

支持修改多个平台的应用: Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD and QNX.

Github:frida/frida
frida 官方文档:frida doc


调试 Android app:

与同样出名的 Xposed 相比,Frida 不仅可以 Hook Java 层,同样支持 native 层。下面我们来具体操作:

1.安装 frida python 库:

pip install frida-tools
pip install frida        #可通过 pip install frida == 版本号 安装最佳适配自己手机的版本

虽然 JavaScript是用来编写实际注入和修改逻辑的语言,但官方提供了 Python库来管理 javascript 脚本和提供执行环境。输入 frida --version ,出现版本号即安装成功。

frida --version 
>>16.3.3

2. 手机端 adb 连接到电脑:

推荐使用无线 adb 调试,手机和电脑处在同一局域网,手机端进入开发者模式,打开无线调试,找到使用配对码配对:

电脑端打开命令窗口,输入 adb pair [手机ip:端口],回车后输入配对码完成配对。
输入 adb connect [手机ip:端口],完成连接,此端口为无线调试页面中显示的端口,并非配对端口。

adb pair [手机ip:端口]  #例如:adb pair 192.168.31.7:35405 端口每次配对都会发生变化
adb connect [手机ip:另一端口] #例如:adb pair 192.168.31.7:40535 

3. 推送 frida-server 到手机:

访问 https://github.com/frida/frida/releases 下载安卓平台的 frida-server,解压出来。需注意 frida-server 与 frida 和 frida-tools 版本需要匹配,最好保持一致。

将解压出来的文件 push 到安卓 /data/local/tmp目录下面:

adb push C:/Users/Administrator/Desktop/frida-server-16.3.3 /data/local/tmp/frida-server-16.3.3

进入 adb shell,进入 tmp 目录并赋予 frida-server 可执行权限,注意需要输入 su 获取 root 权限,否则无法访问文件目录。无误后输入 ./frida-server-16.3.3,未报错即运行成功。

adb shell
su  
cd data/local/tmp
chmod 777 frida-server-16.3.3

#运行:
./frida-server-16.3.3

注意:新版本 frida-server 不再需要端口转发,旧版需要新开一个 CMD 窗口执行 adb forward tcp:27042 tcp:27042,来将手机端口转发到电脑端口,便于通信。


Hook 前的最后一步:

以 Android 平台为例,了解一下 frida 的工作流程:

  1. frida-server:运行在安卓端,与电脑端进行通信,接收电脑端的调试请求,并将 JavaScript 编写的 hook 代码注入到目标 app 中。
  2. 电脑端:与 frida-server 通信,可以使用多种编程语言编写脚本和管理注入过程,最常用的是 Python。
  3. JavaScript脚本:编写具体的注入和修改逻辑,并通过电脑端提供的环境被推送到 frida-server 中,从而注入到目标 app。

对此,我们需要建立两个文件,一个 hook.js用于存放具体的修改逻辑,一个 hook.py用于自动管理注入流程,如:在合适的时机自动注入。

hook.py:

import frida
import sys
import time

# 应用包名
app_package_name = 'com.tencent.karaoke'

# 延迟注入时间(秒),防止dex未加载
delay_time = 2

# hook脚本所在路径
hookJs='C:/Users/Administrator/Desktop/hook.js'


def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    elif message['type'] == 'error':
        print("[!] {0}".format(message['stack']))

# 启动应用程序
device = frida.get_usb_device()
pid = device.spawn([app_package_name])
device.resume(pid)
time.sleep(1)  # 等待应用程序启动

# 延迟注入
print(f"Waiting for {delay_time} seconds before injecting script...")
time.sleep(delay_time)

# 注入脚本
with open(hookJs, 'r',encoding='utf-8') as f:
    script_code = f.read()

session = device.attach(pid)
script = session.create_script(script_code)
script.on('message', on_message)
script.load()
print("[*] Script injected successfully.")
sys.stdin.read()

hook.js 示例:

// 1.从内存中寻找包含android字样的类并打印
Java.perform(function() {
    Java.enumerateLoadedClasses({
        onMatch: function(className) {
            if (className.includes('android')) {
                console.log(className);
            }
        },
        onComplete: function() {
            console.log('Class enumeration complete');
        }
    });
});

将应用包名修改为需要被 hook 的 app,然后输入命令运行:

 python hook.py

开始 hook 吧!!!!

Frida Hook的简单使用 0x01 环境 python3.6、pycharm、安卓反编译工具jadx、样本apk包、charles抓包工具、电脑安装adb(安卓调试桥) python使用到的库:frida 一部root的安卓6.0手机:手机上安装frida-server 手机使用usb线连接电脑,且打开usb调试。使用adb的时候,选择授权该电脑。 0x02 抓包分析 配置代理 保证手机和电脑处于同一网络环境下,然后手机上设置电脑IP作为其代理IP。 查询电脑IP的方法:WIN+R打开运行->输入cmd->回车打开命令提 阅读详情

相关推荐

Frida hook 加固的 Android 应用

Android 加固应用Hook方式 --- Frida:https://github.com/xiaokanghub/Android 转载:使用 frida 来 hook 加固的 Android 应用的 java 层:https://bbs.pediy.com/thread-246767.htm 使用 Frida 给 apk 脱壳并穿透加固 Hoo...

墨鱼菜鸡 2056

frida 精髓:hook 参数、修改结果、参数构造、方法重载、隐藏函数的处理、远程调用(RPC)、互联互通、动态修改

hook参数、修改结果、参数构造、方法重载、隐藏函数的处理、远程调用(RPC)、互联互通、动态修改

freeking101的博客 1万+

用Frida Hook安卓APP实战:逆向分析MD5加密的完整脚本示例

本文详细介绍了使用Frida动态Hook安卓APP以拦截和分析MD5加密过程的完整实战流程。内容涵盖Frida环境搭建、Spawn与Attach两种核心注入模式的选择,并提供了一个可捕获明文、密文及调用栈的完整脚本示例,帮助安全研究人员和开发者掌握逆向分析的关键技术。

garlic的博客 816

【FridaHook整理】Frida安装及Hook安卓常用脚本

1 概述 在逆向过程中,Frida是非常常用的Hook工具,这个工具在日常使用的过程中,有很多通用方法,这里记录一下,方便查阅,部分函数使用的时候,可能需要稍微修改一下,本文记录是Android的方法,不涉及其他的 主要是搬迁的一下参考文章的片段 Android逆向之旅—Hook神器家族的Frida工具使用详解 Frida官方文档 看雪 Frida官方手册 - JavaScript API(篇一) 看雪 Frida官方手册 - JavaScript API(篇二) Js中几种String Byte转换方法

杰孑的博客 4万+

Frida动态Hook安卓APP的MD5加密:从原理到实战

在移动应用安全分析和逆向工程领域,动态插桩技术是理解应用运行时行为的关键手段。其核心原理是通过在目标进程运行时注入代码,实现对函数调用、内存访问等操作的拦截与修改,从而绕过静态分析面临的代码混淆、加固等障碍。这项技术的工程价值在于,它能让安全研究人员和开发者在无需深入理解复杂业务逻辑或反编译的情况下,实时观察和干预应用的内部状态,特别适用于分析加密算法、网络协议、关键业务逻辑等场景。以安卓平台为例,Frida作为主流的动态插桩框架,通过其JavaScript注入引擎和丰富的API,提供了对Java层和Nat

weixin_42539414的博客 335

告别抓包失败:用Frida搞定PDD安卓App的长连接屏蔽(附完整Hook脚本)

本文详细介绍了如何利用Frida动态注入技术突破PDD安卓App的长连接屏蔽,实现有效抓包。通过逆向分析关键方法并开发Hook脚本,成功绕过SSL Pinning和长连接限制,捕获完整API请求流。附完整Hook脚本和实战验证数据,为逆向工程和网络安全研究提供实用方案。

weixin_42552637的博客 498

安卓APP-HTTPS抓包Frida Hook教程

抓包完成后,用wireshark打开tcpdump抓包获得的pcap文件,在wireshark首选项-protocols-TLS中,设置(Pre)-Master-Secret log filename为上述sslkey.txt。对于需要更专业抓包工具的用户,可以尝试使用Sniff Master这样的专业网络分析工具,它提供了更直观的界面和更强大的分析功能。frida是大名鼎鼎的动态分析的hook神器,用它可以直接访问修改二进制的内存、函数和对象,非常方便。它对于Android的支持也是很完美。

2501_91590906的博客 2117

Frida动态Hook破解安卓App长连接加密协议实战

在移动应用安全与逆向工程领域,网络协议分析是核心技能之一。常规的HTTP/HTTPS抓包基于代理中间人(MitM)原理,通过拦截和解析明文或标准加密流量实现。然而,当面对采用长连接(Long Connection)与自定义二进制协议封装的App时,传统方法便会失效。这类技术通过建立持久加密通道(如TCP/WebSocket)并对数据进行私有序列化与加密,有效规避了代理抓包。其技术价值在于为应用提供了更高的通信实时性、安全性与防逆向保护。典型的应用场景包括电商、社交、金融等对数据安全与实时交互要求高的App。

weixin_30800987的博客 424

Frida Hook 安卓 app 快捷入口

Frida 是一款强大的动态分析工具,可用于 Hook 应用、分析加密逻辑、截取运行时信息等。本文结合真实场景,讲解如何使用 Frida 分析 App 中的页面跳转行为,并通过 ADB 模拟跳转。

qq_19127205的博客 1550

告别抓包失败:用Frida Hook搞定PDD安卓App的长连接限制(附完整Hook脚本)

本文详细介绍了如何利用Frida动态注入技术突破PDD安卓App的长连接限制,实现完整网络请求的捕获与分析。通过定位关键方法并修改其行为,解决了传统抓包工具在长连接场景下的局限性,提供了完整的Hook脚本和实战环境搭建指南。

weixin_33701251的博客 500

SPSS回归分析(线性:一元(简单)和多重;非线性logistic)

SPSS线性回归分析回归分析一、线性模型(针对连续因变量,线性关系)(一)简单线性回归(一元线性回归)1、绘制散点图2、建立简单(一元)线性回归模型3、建立模型后,检查预测结果(二)多重回归分析1、绘制矩阵分布散点图(论文专用你懂的)2、建立多重回归模型point 1:自变量加入方法:逐步(步进)法3、建立模型后,检查预测结果二、非线性模型(将非线性问题转换为线性问题)1、logistic分析的回归模型1.1 建立回归模型1.2 利用回归模型进行预测 根据之前的学习,通过评价实验得到了主观数据, 通过 描述

weixin_44394352的博客 5万+

Flutter框架开发的安卓App的抓包以及Frida安装和hook使用教程

flutter抓包 postern抓包 frida抓包 charles抓包

AdrianAndroid的专栏 2778

从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南

本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。

weixin_29256771的博客 180

Frida Hook Android App 进阶用法之 Java 运行时

FridaHookAndroid Frida-Android 进阶 frida 版本:12.11.18 系统:Ubuntu 20.04 LTS 0x10 官方 API 0x11 Java 运行时 官方API地址: https://www.frida.re/docs/javascript-api/#java ,这里给出几个常用的 API Java.perform(fn) 确保当前线程被附加到 VM 上,并且调用fn函数。此函数在内部调用 VM::AttachCurrentThread,然后执行 fn 回调函

个人笔记 1万+

【信号与系统实战解析】—— 拉普拉斯变换在电路分析中的关键应用

本文深入解析了拉普拉斯变换在电路分析中的关键应用。通过将时域微分方程转换为复频域的代数方程,系统化处理初始条件,并利用零极点图分析电路稳定性与频率响应。文章以RLC串联电路为例,详细演示了s域建模、性质运用及综合分析方法,为工程师提供了分析动态电路的强大工具与清晰视角。

weixin_29093017的博客 174

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5077

安卓APP的hook安装与使用

hook 的安装与使用

jesting880626的博客 3327

BART non-Cartesian 重建:并行成像 压缩感知

本文主要使用并行成像和压缩感知方法实现non-Cartesian MRI 数据的重建。

张哥频道:电生理信号和磁共振成像 1182

Frida Hook实战:一键提取Android App加密密钥与密文

在移动应用安全与逆向工程领域,加密算法是保障数据传输与存储安全的核心技术。其原理是通过特定算法(如AES、RSA)和密钥,将明文转换为不可读的密文。理解加密流程对于安全审计、漏洞挖掘和协议分析具有重要价值,尤其在App安全测试和通信协议逆向等场景中。传统逆向方法往往需要深入分析汇编代码或进行繁琐的动态调试,过程复杂且门槛较高。而动态代码插桩技术,特别是Frida框架的应用,为这一过程带来了革新。Frida允许从外部向目标进程注入代码,实时拦截和修改函数行为,从而实现对加密函数调用的监控。基于此,可以设计自动

weixin_33829657的博客 459

CloudCompare 二次开发(16)——计算点云最值

不依赖任何第三方点云相关库,使用ClopudCompare计算点云最值。

点云侠的博客 518

【补充篇】三万字了解AUTOSAR软件架构(一)

主要讲解了AUTOSAR软件架构的分层及各个栈的作用

weixin_47571898的博客 1119

Frida实战:5分钟Hook一个安卓App的登录密码加密函数(附Python+JS双版本代码)

本文详细介绍了如何使用Frida框架快速Hook安卓App的登录密码加密函数,包括环境检查、目标定位、Python和JS双版本Hook脚本实现,以及常见问题的解决方案。通过实战案例,帮助开发者快速掌握Frida在安全分析中的应用,提升逆向工程效率。

weixin_30387339的博客 340

某智能物流无人值守系统 ExportReport SQL注入漏洞复现

某智能物流无人值守系统 ExportReport存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 818

Windows平台Frida+Python安卓APP逆向分析实战:从环境搭建到Hook脚本编写

动态插桩技术是软件逆向分析与安全测试领域的核心方法之一,它允许在不修改原始程序的情况下,实时监控和干预其运行时行为。其原理是通过向目标进程注入代码,拦截函数调用、读写内存数据,从而实现对程序内部逻辑的深度洞察。这项技术在移动安全、漏洞挖掘、协议分析和自动化测试中具有极高价值,尤其适用于安卓APP的运行时行为分析。Frida作为一款主流的动态插桩框架,以其跨平台、支持JavaScript脚本和强大的动态交互能力,成为逆向工程师和安全研究员的得力工具。结合Python进行自动化脚本开发,可以构建高效的分析工作流

weixin_34186128的博客 378

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

安卓APP使用Frida Hook进行HTTPS抓包完整教程

详细讲解在Windows10主机和BlueStacks模拟器上配置adb、frida,通过Frida Hook和tcpdump抓取HTTPS数据包,并使用Wireshark解密。涵盖从环境设置到数据解密的完整流程。

2501_91510632的博客 533

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: web3系列———5.layer2,零知识证明,Rollup,DeFi等(完结)
下一篇: 常用的 Android frida hook 代码片段
nothing one
博客等级 码龄6年 691粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值