app加壳找不到类时使用
packagecom.example.demoapp;importandroid.app.Application;importandroid.content.Context;importandroid.util.Log;importjava.util.Arrays;importde.robv.android.xposed.IXposedHookLoadPackage;importde.robv.android.xposed.XC_MethodHook;importde.robv.android.xposed.XposedHelpers;importde.robv.android.xposed.callbacks.XC_LoadPackage;publicclassHookDemoimplementsIXposedHookLoadPackage{privatestaticfinalStringTARGET_PACKAGE="com.dachuan.news";privatestaticfinalStringTARGET_CLASS="cn.thecover.lib.common.manager.SignManager";privatestaticfinalStringTARGET_METHOD="getSign";privatestaticfinalStringTAG="HookDemo";publicvoidhandleLoadPackage(XC_LoadPackage.LoadPackageParamlpparam)throwsThrowable{if(!TARGET_PACKAGE.equals(lpparam.packageName)||!lpparam.processName.equals(lpparam.packageName)){return;}XposedHelpers.findAndHookMethod(Application.class,"attach",Context.class,newXC_MethodHook(){@OverrideprotectedvoidafterHookedMethod(MethodHookParamparam)throwsThrowable{ClassLoaderclassLoader=((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,newXC_MethodHook(){@OverrideprotectedvoidbeforeHookedMethod(MethodHookParamparam){Log.i(TAG,String.format("%s参数: %s",TARGET_METHOD,Arrays.toString(param.args)));}@OverrideprotectedvoidafterHookedMethod(MethodHookParamparam){Log.i(TAG,String.format("%s返回值: %s",TARGET_METHOD,param.getResult()));}});}}});}}