吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1981|回复: 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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
<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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
3#
FewChapters 发表于 2025-3-31 15:11
牛的,我从来没想过自己编写,一直用的别人现成的
4#
walykyy 发表于 2025-3-31 15:22
跟着正已大佬学习安卓错不了,杠杠的
5#
Ling9527 发表于 2025-3-31 15:24
蹲蹲,等图补上了再来看
6#
cqbstj 发表于 2025-3-31 15:31
感谢LZ分享。
7#
cming0420 发表于 2025-3-31 15:36
感谢大佬分享
8#
tusub 发表于 2025-3-31 16:25
感谢大佬分享
9#
BBG77 发表于 2025-3-31 17:20
分享不错,记录分享也是一种学习方式
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-4-6 13:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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