吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2373|回复: 26
收起左侧

[Android 分享] 编写Xposed模块--小白教程

[复制链接]
namename123 发表于 2025-3-31 14:13
本帖最后由 namename123 于 2025-3-31 16:49 编辑

《教我兄弟学Android逆向12 编写xposed模块》 - 吾爱破解 - 52pojie.cn
https://www.52pojie.cn/thread-1740944-1-1.html
看着这位佬和正己大佬的博客跟着学的
随便创建一个空项目
配置

进来等他配置一会,如果觉得慢,可以去.gralde/目录下设置镜像文件,网上有很多教程
下载上面博客的bridgeaPI

在这里点击到project 看得更方便

app目录下新建lib,复制我们的jar包进去
右键add as libray

然后
打开src/main目录下的AndroidManifest.xml 在application下进行编写,那xposed等工具识别这是个模块
[Asm] 纯文本查看 复制代码
        <meta-data
            android:name="xposedmodule"
            android:value="true" />
        <!-- 模块描述,显示在xposed模块列表那里第二行 -->
        <meta-data
            android:name="xposeddescription"
            android:value="这是一个Xposed模块" />
        <!-- 最低xposed版本号(lib文件名可知) -->
        <meta-data
            android:name="xposedminversion"
            android:value="89" />


在app项目下的build.gradle进行修改

改为compileonly
6.新建-->Folder-->Assets Folder,创建xposed_init(不要后缀名):只有一行代码,就是说明入口类
7.新建Hook类,实现IXposedHookLoadPackage接口,然后在handleLoadPackage函数内编写Hook逻辑
按照正己大佬的来


导入包
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class Hook implements IXposedHookLoadPackage {
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {

    }
}
然后在jadx中找到我们要hook的地方

复制为xposed片段
[Java] 纯文本查看 复制代码
package com.example.xposedhook;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class Hook implements IXposedHookLoadPackage {
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
        XposedHelpers.findAndHookMethod("com.ctf.backdoor.MainActivity", loadPackageParam.classLoader, "ooxx", "String", new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                super.beforeHookedMethod(param);
            }
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                super.afterHookedMethod(param);
            }
        });
    }
}

整理下来大约就是这样,大家上面几个包和参数需要大家自己改改
下面有两个方法

我们就可以开始编写xposed模块了
比如我这里,我要调用这个方法,自主传参然后输出
[Java] 纯文本查看 复制代码
public class Hook implements IXposedHookLoadPackage {
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
        if (!loadPackageParam.packageName.equals("com.ctf.backdoor")) {
            return;
        }
        Log.d("xposed", "handleLoadPackage: ");
        // 在类初始化后主动调用
        XposedHelpers.findAndHookMethod("com.ctf.backdoor.MainActivity", 
            loadPackageParam.classLoader, 
            "ooxx", 
            String.class, 
            new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    // 主动调用native方法
                    String result = (String) XposedHelpers.callStaticMethod(
                        param.method.getDeclaringClass(),
                        "ooxx",
                        "DWFmBkwae2inas+nZvG+Pg==" // 替换为实际要传入的字符串
                    );
                    Log.d("xposed", "主动调用结果: " + result);
                    XposedBridge.log("主动调用返回值: " + result);
                }
            });
    }
}

在启动模块然后运行
去loagcat就ok了!

免费评分

参与人数 2吾爱币 +8 热心值 +1 收起 理由
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Rick982637 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| namename123 发表于 2025-3-31 17:21
新建随便找一个 空白项目就ok,如果报错可以试试用grovy 和java,建议大家看正己大佬视频,很详细。
但是一些操作,可能更新迭代了,已经不适用了。本地镜像环境,刚刚也发了一篇,可以借鉴借鉴(不知道为什么经常被吞图片
mrzs10000 发表于 2025-3-31 14:55
FewChapters 发表于 2025-3-31 15:11
牛的,我从来没想过自己编写,一直用的别人现成的
walykyy 发表于 2025-3-31 15:22
跟着正已大佬学习安卓错不了,杠杠的
Ling9527 发表于 2025-3-31 15:24
蹲蹲,等图补上了再来看
cqbstj 发表于 2025-3-31 15:31
感谢LZ分享。
cming0420 发表于 2025-3-31 15:36
感谢大佬分享
tusub 发表于 2025-3-31 16:25
感谢大佬分享
BBG77 发表于 2025-3-31 17:20
分享不错,记录分享也是一种学习方式
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-30 15:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表