本帖最后由 莺歌燕语 于 2019-8-27 19:45 编辑
APP是360加固,
我使用XPOSED HOOK attachBaseContext 无法正常使用
确定findAndHookMethod("com.stub.StubApp", 是执行了的,但是等APP启动完成后attachBaseContext 的 afterHookedMethod 都没有被调用
attachBaseContext 作为应用启动入口,应用已经启动完成了,还是没有被调用。我怀疑可能是生命周期问题,但是无从解决。
在
- AndroidManifest.xml 文件也确定 com.stub.StubApp 是Application的启动入口
[Java] 纯文本查看 复制代码 XposedHelpers.findAndHookMethod("com.stub.StubApp", lpparam.classLoader, "attachBaseContext", Context.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
// 没有进入这里。
super.afterHookedMethod(param);
//获取到360的Context对象,通过这个对象来获取classloader
Context context = (Context) param.args[0];
//获取360的classloader,之后hook加固后的代码就使用这个classloader
ClassLoader classLoader = context.getClassLoader();
//替换classloader,hook加固后的真正代码
XposedHelpers.findAndHookMethod("com.alibaba.fastjson.JSON", classLoader, "toJSONString", Object.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
XposedBridge.log(TAG + "JSONObject");
XposedBridge.log(TAG + param.args[0].toString());
XposedBridge.log(TAG + param.getResult());
}
});
}
});
|