fourbrother / XposedHookAllMethod

Xposed框架Hook加固应用的
196 stars 97 forks source link

Class<?> clazz = classLoader.loadClass(className)递归调用导出溢出崩溃了 #1

Open yunshouhu opened 7 years ago

yunshouhu commented 7 years ago

四哥,这里会递归调用去加载class啊,溢出了! Log.i(XposedInit.TAG, "loadClass="+className); Class<?> clazz = classLoader.loadClass(className); //这里获取类的所有方法,但是无法获取父类的方法,不过这里没必要关系父类的方法 //如果要关心,那么需要调用getMethods方法即可 Method[] allMethods = clazz.getDeclaredMethods();

03-28 17:37:38.696: I/XposedInit(2672): loadClass=dr 03-28 17:37:38.696: I/XposedInit(2672): loadClass=dr 03-28 17:37:38.696: I/XposedInit(2672): loadClass=dr 03-28 17:37:38.696: I/dalvikvm(2672): threadid=1: stack overflow on call to Ljava/lang/String;.regionMatches:ZILII 03-28 17:37:38.696: I/dalvikvm(2672): method requires 56+20+8=84 bytes, fp is 0x6d492348 (72 left) 03-28 17:37:38.696: I/dalvikvm(2672): expanding stack end (0x6d492300 to 0x6d492000) 03-28 17:37:38.696: I/dalvikvm(2672): Shrank stack (to 0x6d492300, curFrame is 0x6d492434) 03-28 17:37:38.696: I/dalvikvm(2672): threadid=1: stack overflow on call to Ljava/nio/charset/CharsetEncoderICU;.makeReplacement:LLJ 03-28 17:37:38.696: I/dalvikvm(2672): method requires 20+20+8=48 bytes, fp is 0x6d492328 (40 left) 03-28 17:37:38.696: I/dalvikvm(2672): expanding stack end (0x6d492300 to 0x6d492000) 03-28 17:37:38.696: I/dalvikvm(2672): Shrank stack (to 0x6d492300, curFrame is 0x6d49233c) 03-28 17:37:38.736: I/Xposed(2672): java.lang.StackOverflowError 03-28 17:37:38.736: I/Xposed(2672): at java.nio.charset.CharsetEncoderICU.newInstance(CharsetEncoderICU.java:73) 03-28 17:37:38.736: I/Xposed(2672): at java.nio.charset.CharsetICU.newEncoder(CharsetICU.java:27) 03-28 17:37:38.736: I/Xposed(2672): at com.android.internal.util.FastPrintWriter.initDefaultEncoder(FastPrintWriter.java:275) 03-28 17:37:38.736: I/Xposed(2672): at com.android.internal.util.FastPrintWriter.(FastPrintWriter.java:184) 03-28 17:37:38.736: I/Xposed(2672): at android.util.Log.getStackTraceString(Log.java:333) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.log(XposedBridge.java:491) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:613) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.Class.getDeclaredMethods(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.Class.getDeclaredMethods(Class.java:656) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:138) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.736: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.736: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.736: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.736: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.j 03-28 17:37:38.746: I/dalvikvm(2672): threadid=1: stack overflow on call to Ljava/lang/VMThread;.currentThread:L 03-28 17:37:38.746: I/dalvikvm(2672): method requires 0+20+0=20 bytes, fp is 0x6d492300 (0 left) 03-28 17:37:38.746: I/dalvikvm(2672): expanding stack end (0x6d492300 to 0x6d492000) 03-28 17:37:38.746: I/dalvikvm(2672): Shrank stack (to 0x6d492300, curFrame is 0x6d4923f8) 03-28 17:37:38.756: I/Xposed(2672): java.lang.StackOverflowError 03-28 17:37:38.756: I/Xposed(2672): at java.lang.Thread.currentThread(Thread.java:470) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ThreadLocal.get(ThreadLocal.java:53) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.BlockGuard.getThreadPolicy(BlockGuard.java:139) 03-28 17:37:38.756: I/Xposed(2672): at libcore.io.BlockGuardOs.write(BlockGuardOs.java:196) 03-28 17:37:38.756: I/Xposed(2672): at libcore.io.IoBridge.write(IoBridge.java:450) 03-28 17:37:38.756: I/Xposed(2672): at java.io.FileOutputStream.write(FileOutputStream.java:187) 03-28 17:37:38.756: I/Xposed(2672): at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167) 03-28 17:37:38.756: I/Xposed(2672): at java.io.OutputStreamWriter.convert(OutputStreamWriter.java:181) 03-28 17:37:38.756: I/Xposed(2672): at java.io.OutputStreamWriter.write(OutputStreamWriter.java:266) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.doWrite(PrintWriter.java:623) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.write(PrintWriter.java:601) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.write(PrintWriter.java:579) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.write(PrintWriter.java:660) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.append(PrintWriter.java:722) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.append(PrintWriter.java:691) 03-28 17:37:38.756: I/Xposed(2672): at java.io.PrintWriter.append(PrintWriter.java:31) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.Throwable.printStackTrace(Throwable.java:324) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.Throwable.printStackTrace(Throwable.java:300) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.log(XposedBridge.java:493) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:613) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.Class.getDeclaredMethods(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.Class.getDeclaredMethods(Class.java:656) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:138) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathList.java:322) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 03-28 17:37:38.756: I/Xposed(2672): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.hookClassInfo(HookAppAllMethod.java:135) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod.access$0(HookAppAllMethod.java:114) 03-28 17:37:38.756: I/Xposed(2672): at cn.wjdiankong.xposedhook.HookAppAllMethod$1$2.beforeHookedMethod(HookAppAllMethod.java:62) 03-28 17:37:38.756: I/Xposed(2672): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:611) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexFile.loadClassBinaryName(Native Method) 03-28 17:37:38.756: I/Xposed(2672): at dalvik.system.DexPathList.findClass(DexPathLi

onegithuber commented 7 years ago

你好!能将你打包的文件发我一份吗?我打包的总会报java.lang.NoSuchMethodError: dalvik.system.DexFile#loadClass错误。。感谢!