android14上使用frida,

news2024/11/17 3:29:52

由于之前使用frida已经是2年前了,后来一直没有研究两年以后

首先手机得root才可以,

我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)​编辑https://optool.daxiaamu.com/index.php

由于之前使用的是frida 15.1.1在android14上一运行,手机就重启动

所以更新一下,frida到16.1.11

Releases · frida/frida · GitHubClone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/frida/frida/releases?page=1 

下载后,pc上执行

adb push /data/local/tmp frida-server-16.1.11-android-arm64

然后手机(root后)上执行

chmod 777  /data/local/tmp frida-server-16.1.11-android-arm64

然后在pc上安装调试运行环境,PC上已经有python 3.7,(anaconda)

 pip install frida-tools

pip install --upgrade typing_extensions

frida · PyPIDynamic instrumentation toolkit for developers, reverse-engineers, and security researchersicon-default.png?t=N7T8https://pypi.org/project/frida/#files

pip install frida-16.1.11-cp37-abi3-win_amd64.whl

调用代码

// hook_showlog.js
function byteArrayToHexString(byteArray) {
  return Array.from(byteArray, byte => ('0' + (byte & 0xFF).toString(16)).slice(-2)).join('');
}
function byteArrayToString(buffer, offset, byteCount) {
    var byteArray = Java.array('byte', buffer);
    var strContent = "";
    for (var i = offset; i < offset + byteCount; i++) {
        strContent += String.fromCharCode(byteArray[i]);
    }
    return strContent;
}

function printStackTrace() {
        var Thread = Java.use("java.lang.Thread");
        var currentThread = Thread.currentThread();
        var stackTrace = currentThread.getStackTrace();
        console.log("Current stack trace:");
        for (var i = 0; i < stackTrace.length; i++) {
            console.log(stackTrace[i].toString());
        }
        console.log("*************************\n");
        console.log("");
        console.log("");
}
function hookLog_all() {
    var Log = Java.use("android.util.Log");
    var pClass = Java.use("com.oplus.backuprestore.common.utils.p");

    //Get all methods in pClass
    var methods = pClass.class.getDeclaredMethods();
    for (var i = 0; i < methods.length; i++) {
        var method = methods[i];
        // Skip synthetic and bridge methods
        if (!method.isSynthetic() && !method.isBridge()) {
            // Create hooks for each method
            var methodName = method.getName();
            var hookMethod = pClass[methodName];
            hookMethod.implementation = function() {
                var args = [].slice.call(arguments);
                console.log(methodName + " arguments:", args);
                var result = this[methodName].apply(this, arguments);
                return result;
            };
        }
    }
}
function hookBundle() {

      // 导入Java类
var Bundle = Java.use("android.os.Bundle");

// 钩取Bundle类的toString()函数
Bundle.toString.implementation = function() {
    // 打印堆栈信息


    // 调用原始的toString()函数
    // 调用原始的toString()函数并获取结果
    var result = this.toString();

    // 打印结果
    console.log("BundletoString() result:", result);
    console.log("Bundle.toString() called from:");
    var stackTrace = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new());
    console.log(stackTrace);
    // 返回结果
    return result;
};

}
function hookBase64() {

      var base64Class = Java.use('android.util.Base64');
        // Intercept the decode method with String parameter
        var decodeWithString = base64Class.decode.overload('java.lang.String', 'int');
        decodeWithString.implementation = function (str, flags) {
            if (str.length < 25600) {
                console.log('base64 decode(String) called with str length: ' + str.length + ' str: ' + str + ' flags: ' + flags);
                console.log('');
            } else {
                console.log('decode(String) called with str length: ' + str.length + ', flags: ' + flags);
            }
            // Call the original method
            var result = this.decode(str, flags);

            // Convert the result to string
            var resultString = String.fromCharCode.apply(null, result);

            if (resultString.length < 12

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

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

相关文章

Amesim示例篇-案例1:空间中的铝块散热

前言 本文将通过一个案例继续对Thermal库的元件进一步讲解。 案例1&#xff1a;一个300mm*300mm*1000mm&#xff08;长*宽*高&#xff09;的铝板初始温度为45℃&#xff0c;竖直在环境为25℃的空间内静置60min。对流换热系数设置为5W/m2K。本文将通过两种建模方法对铝块的温度…

微软刚发布的Copilot+PC为什么让Intel和AMD尴尬?2024 AI PC元年——产业布局及前景展望

美国东部时间5月20日在微软位于华盛顿的新园区举行的发布会上&#xff0c;宣布将旗下AI助手Copilot全面融入Windows系统&#xff0c;能够在不调用云数据中心的情况下处理更多人工智能任务。 “将世界作为一个提示词就从Windows系统开始”。微软的新PC将是“CopilotPC”&#xf…

树洞陪聊系统源码/陪聊/陪玩/树洞/陪陪/公众号开发/源码交付/树洞系统源码

独立版本源码交付&#xff0c;自研UI和前后端代码 平台自带店员&#xff0c;无需自主招募&#xff0c;搭建直接运营 支持三方登录&#xff0c;官方支付、虎皮椒、易支付/码支付 支持首单体验、盲盒订单、指定下单等多个模式 支持钱包预充值、店员收藏、订单评价等功能 支持…

You must call removeView() on the child‘s parent first.异常分析及解决

问题描述 对试图组件快速的左右滑动过程&#xff0c;发现某一张图片没加载出来&#xff0c;偶现crash 问题分析 view在上次已经是某个ParentView的child&#xff0c;然而现在又把它做为另外一个view的child&#xff0c;于是出现一个view有两个parent。所以就产生了这个错误。…

深入了解Python代码中的缩进与逻辑结构

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、认识缩进在代码中的重要性 代码示例&#xff1a;天气与打球决策 二、缩进与逻辑嵌套 …

uniapp使用内置的switch组件的问题

说明 开关选择器 属性说明 属性名类型默认值说明平台差异说明checkedBooleanfalse是否选中disabledBooleanfalse是否禁用不支持&#xff1a;抖音小程序、飞书小程序typeStringswitch 样式 有效值&#xff1a;switch、checkbox colorColorswitch的颜色&#xff0c;通css的co…

Tensorflow入门实战 P01-实现手写数字识别mnist

目录 1、背景&#xff1a;MNIST手写数字识别 2、完整代码&#xff08;Tensorflow&#xff09;&#xff1a; 3、运行过程及结果&#xff1a; 4、小结&#xff08;还是很清晰的&#xff09; 5、 展望 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客…

摔到脑袋,没有骨折,没有脱位,脊髓怎么会损伤?

在一个周末的午后&#xff0c;小明在公园的足球场上不慎摔倒&#xff0c;头部重重撞到草地。虽然很快恢复了意识&#xff0c;但回家后却感到颈部僵硬&#xff0c;四肢无力。家人急忙带他前往医院就医做了相关检查。 经过医生的仔细检查&#xff0c;结果显示小明的头部没有骨折或…

《暮色将尽》跨越世纪的历程,慢慢走向并完善自我

《暮色将尽》跨越世纪的历程&#xff0c;慢慢走向并完善自我 戴安娜阿西尔&#xff08;1917-2019&#xff09;&#xff0c;英国知名文学编辑、作家。著有《暮色将尽》《昨日清晨》《未经删节》《长书当诉》等。 曾嵘 译 文章目录 《暮色将尽》跨越世纪的历程&#xff0c;慢慢走…

FastGPT私有化部署+OneAPI配置大模型

介绍 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景&#xff01; 官网地址 https://doc.fastai.site/docs/intro/ 部署 FastGPT提供…

atomic包装自定义类型

在学习原子变量之初&#xff0c;学过很多它的操作&#xff0c;但是很多都是在内置类型&#xff08;int、long等&#xff09;上进行的学习和实验。这次由于工作需要&#xff0c;要使用 atomic 来包装自定义类型&#xff0c;因此打算好好探究一番&#xff0c;把它彻底搞懂。 当要…

iOS系统故障怎么办?这三种苹果手机系统修复方法你一定要知道

随着苹果手机使用时间越长&#xff0c;苹果手机有时也会出现系统问题&#xff0c;如卡顿、崩溃、无法启动等。这些问题不仅影响用户的使用体验&#xff0c;还可能导致数据丢失。因此&#xff0c;掌握苹果手机系统修复方法显得尤为重要。本文将详细介绍苹果手机系统修复的常见方…

冯喜运:5.24今日晚间黄金原油行情如何操作

【黄金消息面分析】&#xff1a;在经历了连续两个交易日的大幅下跌后&#xff0c;黄金市场在北京时间5月24日欧市早盘迎来了反弹。金价目前位于2338美元/盎司附近&#xff0c;市场对此轮波动表现出浓厚的兴趣。本文将深入分析黄金市场的最新动态&#xff0c;探讨其背后的逻辑&a…

非阻塞sokcet和epoll

在Muduo网络库中同时使用了非阻塞socket与epoll&#xff0c;在此简单梳理下。 非阻塞sokcet和epoll共同工作的过程主要涉及网络编程中的非阻塞I/O和事件驱动机制。下面将详细解释这两者如何协同工作&#xff1a; 非阻塞socket简介 在传统的阻塞socket编程中&#xff0c;当调用…

web前端项目已有阿里巴巴图标基础上,再次导入阿里巴巴图标的方法

如果是第一次导入阿里巴巴图标请参考: vue项目引入阿里云图标_vue引用阿里云图标fontclass-CSDN博客 本文主要想讲在项目原有阿里巴巴图标基础上,再次导入阿里巴巴图标的解决办法: 1.iconfont.json对应修改就行,这个简单一看就明白; 2.iconfont.js主要改动<symbol><…

3D模型旋转显示不全怎么办---模大狮模型网

在3D建模和渲染过程中&#xff0c;我们有时会遇到旋转模型时显示不全的问题。这种情况可能由多种原因造成&#xff0c;包括模型本身的问题、软件设置不当、硬件配置不足等。本文将为您详细介绍几种可能的解决方法&#xff0c;帮助您解决3D模型旋转显示不全的问题。 一、检查模型…

活动回顾 |观测云在杭州论坛上闪耀:教育创新与技术领导力的双重荣耀

第二届服务韧性工程论坛在杭州顺利闭幕&#xff0c;观测云以其在可观测性领域的杰出成就和创新成果&#xff0c;成为了论坛的瞩目焦点。在此次以“人工智能驱动运维研发革命&#xff0c;SRE 助力出海企业构建健壮的 IT 生态系统”为主题的盛会上&#xff0c;观测云积极参与了四…

物联网实战--平台篇之(十)“我的“页面设计

目录 一、页面布局 二、头像 三、修改密码 四、重新登录 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631333.html 本项目资源文件htt…

【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection

文章目录 AbstractIntroductionRelated WorkMethodologyConsistent Dual Assignments for NMS-free Training &#xff08;无NMS训练的一致性双重任务分配&#xff09;Holistic Efficiency-Accuracy Driven Model Design &#xff08;效率-精度驱动的整体模型设计&#xff09; …

如何在window中快速建立多个文件夹?

时隔多年&#xff0c;再次开始撰写文章&#xff0c;但是这次却是以设计师的身份 1. 几个基础快捷键先记一下&#xff0c;要不更高级的玩儿不转&#xff08;1&#xff09;快速打开资源管理器&#xff08;2&#xff09;快速建立新文件夹&#xff08;3&#xff09;快速修改文件文件…