lsposed开发hook找不到类

app加壳找不到类时使用

java 复制代码
package com.example.demoapp;

import android.app.Application;
import android.content.Context;
import android.util.Log;

import java.util.Arrays;

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 HookDemo implements IXposedHookLoadPackage {
    private static final String TARGET_PACKAGE = "com.dachuan.news";
    private static final String TARGET_CLASS = "cn.thecover.lib.common.manager.SignManager";
    private static final String TARGET_METHOD = "getSign";
    private static final String TAG = "HookDemo";

    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if (!TARGET_PACKAGE.equals(lpparam.packageName) || !lpparam.processName.equals(lpparam.packageName)) {
            return;
        }
        XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                ClassLoader classLoader = ((Context) param.args[0]).getClassLoader();
                Class<?> targetClass = XposedHelpers.findClassIfExists(TARGET_CLASS, classLoader);
                if (targetClass != null) {
                    XposedHelpers.findAndHookMethod(targetClass, TARGET_METHOD, String.class, String.class, String.class, new XC_MethodHook() {
                        @Override
                        protected void beforeHookedMethod(MethodHookParam param) {
                            Log.i(TAG, String.format("%s参数: %s", TARGET_METHOD, Arrays.toString(param.args)));
                        }
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) {
                            Log.i(TAG, String.format("%s返回值: %s", TARGET_METHOD, param.getResult()));

                        }
                    });
                }

            }
        });
    }
}
相关推荐
咩咩啃树皮5 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚6 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白7 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司8 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地9 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun3141599 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风11 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
z1234567898612 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112313 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
做个文艺程序员13 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus