package com.example.xposedhook;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import java.lang.reflect.Method;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class Hook implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lppararm) throws Throwable {
if (lppararm.packageName.equals("xxx.xxxx.xxxx")) {
XposedBridge.log("start hook");
// Class clazz = lppararm.classLoader.loadClass("com.xxxx.xxx.xxx.xxx.xxx");
// XposedHelpers.findAndHookMethod(clazz, "invoke", new XC_MethodHook() {
//
// protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
//
// super.beforeHookedMethod(param);
//
// Log.d("cxa"," has Hooked!");
//
// }
//
// protected void afterHookedMethod(MethodHookParam param) throws Throwable {
// Object[] ars=(Object[])param.args[2];
// Log.d("cxa",ars.toString());
//
// }
//
// });
//hook 多dex
XposedHelpers.findAndHookMethod(Application.class, "attach",
Context.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
ClassLoader cl = ((Context) param.args[0]).getClassLoader();
Class<?> hookclass = null;
try {
hookclass = cl.loadClass("com.kuaishou.android.security.kfree.a");
} catch (Exception e) {
Log.e("DEBUG", "load class error", e);
return;
}
Log.i("DEBUG", "load success");
XposedHelpers.findAndHookMethod(hookclass, "invoke", Object.class, Method.class, Object[].class,
new XC_MethodHook() {
//TODO: 相关hook操作
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
Log.d("cxa", " has Hooked!");
}
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Object[] ars = (Object[]) param.args[2];
Log.d("cxa", ars[0].toString());
}
});
}
});
}
}
}
xposed hook多个dex的方法
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SpringBoot 动态加载 jar 包,动态配置方案
SpringBoot 动态加载 jar 包,动态配置方案
java spring 加载 -
VUE动态加载不同组件
VUE动态加载不同组件
用户登录 属性值 加载 -
Android动态加载jar/dex
前言 在目前的软硬件环境下,Native App与WebA:http
jar Android 加载 -
Android 动态加载dex缺少so
在ubuntu下代码编译通过的情况下,经常出现运行时加载动态库出错的情况。这些问题很琐碎,不具备任何技术含量,纯属耽误时间,这也是linux系统的通病,花里胡哨,故弄玄虚。为了减少初学者在这种无意义的事情上浪费大量的时间,本文对这个问题提供一点解决方案,这些方案都是在Ubuntu18.04上测试过的,希望对需要者有所帮助。这里使用的是最小化的代码,主程序是mytest,其运行时需要调用libtes
Android 动态加载dex缺少so tableview动态修改和删除 ubuntu ..路径找不到 ubuntu 修改home 目录 动态库