安卓逆向(Xposed-Hook)

关于参数问题

📌 如果方法是这样

public int addNumbers(int a, int b) {
    return a + b;
}

📌 Hook 代码

XposedHelpers.findAndHookMethod("com.example.app.Calculator",
    lpparam.classLoader,
    "addNumbers",
    int.class, int.class, // 两个参数,都是 int
    new XC_MethodHook() {
        @Override
        protected void beforeHookedMethod(MethodHookParam param) {
            XposedBridge.log("[+] addNumbers 被 Hook,参数: " + param.args[0] + ", " + param.args[1]);
        }
    });

📌 beforeHookedMethodafterHookedMethod 的区别


💡 简单理解

方法 执行时机 作用
beforeHookedMethod 目标方法执行前 获取/修改参数,阻止方法执行
afterHookedMethod 目标方法执行后 获取/修改返回值

beforeHookedMethod


beforeHookedMethod 作用

  1. 在方法执行前,获取参数param.args[0]
  2. 修改参数,让方法运行时使用新的参数param.args[0] = "NewValue"
  3. 阻止目标方法执行param.setResult(null)

beforeHookedMethod 获取参数

📌 如果目标方法是

public void setUserInfo(String username, int age) {
    System.out.println("User: " + username + ", Age: " + age);
}

📌 Hook 代码

XposedHelpers.findAndHookMethod("com.example.app.UserManager",
    lpparam.classLoader,
    "setUserInfo",
    String.class, int.class,  // 方法的参数类型
    new XC_MethodHook() {
        @Override
        protected void beforeHookedMethod(MethodHookParam param) {
            // 获取方法的参数
            String username = (String) param.args[0];
            int age = (int) param.args[1];

            XposedBridge.log("[+] 用户名: " + use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aaiier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值