Xposed学习笔记

关于 Xposed:Xposed 插件开发详细流程 场景Hook 方法说明登录自动通过Hook 登录函数,修改返回值或参数跳过验证页Hook 验证函数,设置修改 UI 内容HookonCreate()后修改控件属性控制按钮逻辑HookonClick()替换服务地址修改静态字段,如BASE_URL获取 Token或。 阅读详情

书读百变,其义自见。

本篇博客只是一个简单的学习笔记,记录一下我的第一个xposed模块的编写流程。
(1)创建一个工程。有没有Activity都可以。
(2)下载Xposed api,将下载好的api复制到libs目录下。
(3)AS工具下在api上右键选择add as library,将jar包导入。
(4)将build.gradle
build

中的

compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.0.1'
    testCompile 'junit:junit:4.12'
    provided files('libs/api-82.jar')

改为

provided fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.0.1'
    testCompile 'junit:junit:4.12'
    provided files('libs/api-82.jar')

(5)修改AndroidManifest.xml
xml
(6)新建类,实现接口和重写函数。

public class Main implements IXposedHookLoadPackage{
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable{
        if(!loadPackageParam.packageName.equals("com.example.a13251.login")){//如果包名不为com.example.a13251.login则退出
            return;
        }
 //重写findAndHookMethod实现对类的hook
        XposedHelpers.findAndHookMethod("com.example.a13251.login.MainActivity", loadPackageParam.classLoader, "isCorrectInfo", String.class, String.class, new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {//在要hook的类之前执行
                XposedBridge.log("劫持了"+param.args[0]);
                XposedBridge.log("劫持了"+param.args[1]);
            }

            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {//在要hook的类之后执行
                XposedBridge.log("劫持结束了"+param.args[0]);
                XposedBridge.log("劫持结束了"+param.args[1]);
            }
        });
    }
}

参数说明 (by瘦蛟舞)

findAndHookMethod(Class clazz, //需要Hook的类名 ClassLoader, //类加载器,可以设置为 null String methodName, //需要 Hook 的方法名 Object… parameterTypesAndCallback 该函数的最后一个参数集,包含了:

(1)Hook 的目标方法的参数,譬如:

“com.android.internal.policy.impl.PhoneWindow.DecorView”
是方法的参数的类。

(2)回调方法:

a.XC_MethodHook
b.XC_MethodReplacement

(7)在app->src->main下新建assets文件夹,在文件夹内新建xposed_init文件,文件上声明模块的入口
init

rukou

以上步骤没有固定顺序,只要全部做完签名打包即可。
安装后在xposed管理程序上面勾选模块,重启手机。

Android 集成Xposed框架 前言 Xposed(框架) Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的系统框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块或插件。 XopsedInstall 是管理和安装Xposed框架及Xposed模块或者插件的应用工具(apk); 注意:要区分Xposed和XposedInstall的概念; Xposed及XposedInstall https://github.com 阅读详情

相关推荐

Xposed框架分析

1. 概述 1.1 什么是hook hook本质就是劫持函数调用,但由于处于linux用户态,每个进程都有自己独立的进程空间,所以必须先注入到所要hook的进程空间,修改其内存中的进程代码,替换其过程表的符号地址。 Android中一般通过ptrace函数附加进程,然后向远程进程注入so库,从而达到监控以及远程进程关键函数挂钩。 Hook的难点在于寻找函数的入口点、替换函数,这就涉及到...

成长中的蒲公英 1万+

Xposed框架开发

Xposed_zygote进程启动后会初始化一些so文件(/system/lib、/system/lib64),然后。Zygote是Android的核心,每运行一个app,Zygote就会fork一个虚拟机实例来运行app,执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。当系统启动的时候,就会加载由 Xposed Framework 替换过的进程文件,并且,Xposed。Zygote的启动配置在init.rc 脚本中,由系统启动的时候开启此进程,对应的。

AdrianAndroid的专栏 2628

Xposed 模块开发指南

基于此框架,开发者能够创建出各种强大的模块,且这些模块可以在功能不冲突的前提下同时运行,极大提升了系统的可定制性。通过这种方式,Xposed 能够在不修改 APK 的情况下,通过注入代码动态修改 Dalvik/ART 虚拟机的行为,实现在系统和应用中的 Hook 和修改功能。Xposed 是一个针对 Android 系统的框架,允许开发者通过 Hook(钩取)系统或应用的函数来修改其行为,实现个性化功能,无需修改原始 APK 文件。通过反编译的结果得知,如果flag不为null,就达到我们的目的。

VBP_2025的博客 1335

Xposed 模块开发 -- 基础

xposed 模块开发创建

TF的博客 1280

Xposed Framework框架使用

Xposed Framework 为 Android 用户和开发者提供了一个强大的工具,可以灵活地修改和扩展系统及应用程序的功能。通过模块化设计,用户能够根据自己的需求自定义设备体验,同时开发者也能轻松创建功能强大的模块。Xposed Framework 通过动态代码注入、反射和 ART 的结合,实现了对 Android 系统和应用的深度修改和扩展。它的模块化设计使得用户可以灵活选择需要的功能,同时也给开发者提供了便捷的开发环境。

jmshl的专栏 3588

Xposed系列--入门篇

背景 本文主要从Xposed的安装、使用等基础知识进行讲解 安装 环境: Pixel 2 Android 8.1 下载XposedInstller_3.1.5.apk 下载xposed-v90-sdk27-arm64-beta3.zip adb push xposed-v90-sdk27-arm64-beta3.zip /sdcard/ adb reboot recovery Install --> 选择xposed-v90-sdk27-arm64-beta3.zip --> swipe刷入

Tasfa的博客 1479

[免费专栏] Android安全之Android Xposed插件开发,小白都能看得懂的教程

转移发布平台通知:将不再在优快云博客发布新文章,敬请移步知识星球... ...

橙留香Park的博客 9436

xposed模块入门开发1

声明xposed入口我们需要新建一个assets文件夹,并创建文件xposed_init,在里面填上xposed模块的入口.这里我们声明自己的类“com.joh

Xposed入门教程

2019年8月27日16时51分47秒 以前一直没机会接触Android Hook方式的逆向 今天有空试了下,以前也很少写这种东西, 今天第一次,认真写下,记录一下

lemisky的博客 3万+

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)和汇丰控股(0005.HK)为例,使用 Python 进行数据请求和解析。

kk_stoper的博客 1517

UEFI开发探索102 – ACPI探究01(UEFI配置表)

(请保留-> 作者: 罗冰 https://blog.youkuaiyun.com/luobing4365) ACPI探究01(UEFI配置表)1 大致规划2 UEFI Configuration Table(配置表)3 代码实现 最近有项工作,是修改ACPI表。问题本身并不复杂,但是由于代码需要移植到Option ROM上,遇到不少奇怪的现象。因此,花了不少时间,对ACPI进行研究。 任务是完成了,我的好奇心又被勾起来了。准备发挥“格物致知”的信念,把我认为的ACPI各方面的知识,好好地捋一捋。 1 大

8251

android基于xposed框架,学习笔记:Android Xposed 框架入门

学习笔记:Android Xposed 框架入门目录Xposed 框架简介Xposed 框架的具体使用原理分析Xposed 框架简介Xposed是一款优秀的android java层 hook 框架。它允许你在不修改apk源码的情况下,通过编写自己的模块来改变apk的行为。它的优点是采用了插件机制,模块能够适用不同版本的框架和rom。模块改变apk行为的操作发生在内存中,对源apk不进行任何修改。...

weixin_42565971的博客 665

【大模型12步学习路线 · 第3步 · ③IC验证实战篇】SOTA Prompt 逐字拆解

本文拆解了4篇SOTA LLM4Verification论文的Prompt设计,重点分析了AssertLLM、RTLFixer等模型在IC验证领域的Prompt工程实践。AssertLLM通过任务分解为3个专用LLM(Spec分析、信号映射、SVA生成),结合领域RAG和定制System Prompt,将SVA准确率从GPT-4的8%提升至89%。RTLFixer采用ReAct框架实现98.5%的RTL语法错误修复率。文章总结了Prompt设计的关键技巧:任务分解、结构化输出、置信度评分、允许"不确定"标记

元直的博客 584

Xposed学习笔记之蚂蚁森林能量自动收取模块

本文主要借鉴尼古拉斯_赵四大佬的文章 本人xposed小白一枚,看了尼古拉斯_赵四大佬的那篇文章入门,深入的原理什么的,大家可以深入研究一下尼古拉斯_赵四大佬的文章。 学习笔记 调试常用的函数Log.i("test","message");,PC端使用adb logcat -s test接收 获取app某方法的返回值 Object resp = param.getResult(); if ...

Mingx1n的博客 7862

芯片ATE测试PAT(Part Average Testing)学习总结-20250916

文章摘要:零件平均测试(PAT)是半导体制造中基于统计学的质量控制方法,分为静态和动态两种类型。静态PAT通过预先设定的固定限值(每6-8批次更新)筛选异常芯片,计算采用稳健平均值和四分位间距。动态PAT则根据实时数据调整限值,能更精确识别异常而不误判合格芯片。两种方法均采用"均值±6倍标准差"的计算公式,但动态PAT具有更好的适应性和准确性。该方法通过统计分析提高了芯片产品的质量和可靠性。

歌颂苦难的行为是无耻的; 1191

Trae辅助开发完全教程:从入门到企业级实战

《Trae AI IDE完全教程》系统介绍了这款AI驱动的下一代集成开发环境。教程从基础入门到实战应用,详细讲解了Trae的双重开发模式(IDE/SOLO)、智能编程助手CUE、行内对话、模型管理等核心功能。内容包括环境配置、项目创建、Python开发示例,以及RPC框架和iOS应用两个实战案例。Trae通过深度整合AI技术,显著提升编码效率,支持多种编程语言和主流模型,适合从新手到企业级开发者的不同需求。本教程帮助开发者快速掌握Trae的使用技巧,实现AI辅助下的高效编程。

MrLi的博客 764

学习笔记-Xposed特征收集

XPOSED魔改一:获取特征 写在前面 准备环境:选择XPOSED版本v89 准备环境:选择谷歌原版镜像7.1.2 准备环境:使用SuperSU进行root 准备环境:安装Xposed框架并激活插件 收集特征:底包详细信息 收集特征:日志输出信息 收集特征:插件开发配置信息 收集特征:XposedChecker源码 收集特征:逆向分析大厂方案 XPOSED魔改一:获取特征 写在前面 受...

ai agent 2025

无人机——电机篇(一)

1. 电机的定义 电机俗称“马达”,是无人机的动力来源,无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度,使得无人机能够盘旋空中,上升或下降,或向各个方向移动。2. 电机的分类 电机分为:“无刷电机”和“有刷电机” - 无刷电机:是采用半导体开关器件来实现电子换向,具有可靠性高、低干扰、低噪声低、寿命长等优点。一般应用在稍大型的飞行器,载重大,可以有更广泛的用途。 - 有刷电机:是内含电刷装置的将电能转换成机械能(电动机)或将机械能转换成电能(发电机)的旋转电机。有刷电机是所有电机的基

weixin_46066938的博客 1万+

Xposed 学习笔记1

在进行Android程序的逆向分析的时候,经常需要Android程序的静态分析和动态调试的结合,尤其是对一些加固后的Android类方法被调用的确认,需要Hook java类方法打印java类方法的调用堆栈。// 1.MultiDex情况下的,多dex文件中的类方法的Hook操作,例如:classes1.dex中的类方法。原文链接:https://blog.youkuaiyun.com/qq1084283172/article/details/80954759。

ww231dastt的博客 489

2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(五)(含2022年和2023年)

此部分包含华为机试真题,方向是数字芯片,内容详细包括设计、验证、后端等,大部分题目给出参考答案。华为机试都是从题库里抽题目,所以这些题目还是很有参考性的,甚至是完全一样,可以搜到的。(题目内容较多,将分开编写几个文章)

qq_42135020的博客 2083

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Xposed hook技术学习笔记

最近做一个安卓apk的逆向,需要用到xposed 中的hook技术,所以便学习了一下,在此纪录一下。 demo:apk用的是非虫大神的一个demo例子:crackme02 首先需要在manifest中填写三段                   android:name="xposedmodule"          android:value="true"/>         

zsd747289639的博客 5050

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

(学习笔记)Xposed模块编写(一)

Xposed模块编写

u011046452的博客 3204

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

Xposed 入门

Xposed的原理 Android基于Linux,第一个启动的进程自然是init进程,该进程会启动所有Android进程的父进程——Zygote(孵化)进程,该进程的启动配置在/init.rc脚本中,而Zygote进程对应的执行文件是/system/bin/app_process,该文件完成类库的加载以及一些函数的调用工作。在Zygote进程创建后,再fork出SystemServer进程...

yan822的专栏 2574

什么是Xposed和LSPosed框架?

是一个面向 Android 平台的模块化框架,允许开发者和用户通过加载模块来修改应用程序或系统行为,而无需修改应用程序的 APK 文件或系统文件。

王景程的博客 6710
上一篇: 关于动态调试的一些事情(一)
下一篇: 使用TraceView进行方法跟踪
Magic1an
博客等级 码龄9年 7粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值