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()));

                        }
                    });
                }

            }
        });
    }
}
相关推荐
历程里程碑3 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
程序员泠零澪回家种桔子3 小时前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构
CodeCaptain4 小时前
nacos-2.3.2-OEM与nacos3.1.x的差异分析
java·经验分享·nacos·springcloud
Anastasiozzzz4 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
骇客野人4 小时前
通过脚本推送Docker镜像
java·docker·容器
铁蛋AI编程实战5 小时前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
晚霞的不甘5 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
SunnyDays10115 小时前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列
摇滚侠5 小时前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
云姜.5 小时前
java多态
java·开发语言·c++