This is a tool to repackage apk file, then the apk can load any xposed modules installed in the device. It is another way to hook an app without root device.
dex2jar G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex -> G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar baseName =classes
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
jar2dex G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar -> G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex
call com.android.dx.command.Main.main[--dex, --no-strict, --output=G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex, G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar]
warning: Ignoring InnerClasses attribute for an anonymous inner class
(com.tencent.mm.plugin.appbrand.jsapi.pay.AppBrandJsApiPayService$1DuplicateActivityResultReceiver) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is not an inner class.
之后hook就是失败了
2020-01-23 11:17:56.525 24694-24694/? I/zygote: at java.lang.ClassLoader a.a.b.v.a(java.lang.ClassLoader, java.io.File, java.lang.String) (:174)
2020-01-23 11:17:56.525 24694-24694/? I/zygote: at com.swift.sandhook.wrapper.HookWrapper$HookEntity com.swift.sandhook.xposedcompat.methodgen.HookerDexMakerNew.doMake(java.lang.String, java.lang.String) (:-1)
2020-01-23 11:17:56.525 24694-24694/? I/zygote: at void com.swift.sandhook.xposedcompat.methodgen.HookerDexMakerNew.start(java.lang.reflect.Member, de.robv.android.xposed.XposedBridge$AdditionalHookInfo, java.lang.ClassLoader, java.lang.String) (:4)
2020-01-23 11:17:56.525 24694-24694/? I/zygote: at void com.swift.sandhook.xposedcompat.methodgen.DynamicBridge.hookMethod(java.lang.reflect.Member, de.robv.android.xposed.XposedBridge$AdditionalHookInfo) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.XposedBridge.hookMethodNative(java.lang.reflect.Member, java.lang.Class, int, java.lang.Object) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at de.robv.android.xposed.XC_MethodHook$Unhook de.robv.android.xposed.XposedBridge.hookMethod(java.lang.reflect.Member, de.robv.android.xposed.XC_MethodHook) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at de.robv.android.xposed.XC_MethodHook$Unhook de.robv.android.xposed.XposedHelpers.findAndHookMethod(java.lang.Class, java.lang.String, java.lang.Object[]) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.hook.BaseHook.hookMethod(java.lang.Class, java.lang.String, java.lang.Object[]) (BaseHook.java:18)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.hook.SQLiteDatabaseHook.hook(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (SQLiteDatabaseHook.java:54)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.Main.handleLoadPackage(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (Main.java:29)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.callbacks.XC_LoadPackage.call(de.robv.android.xposed.callbacks.XCallback$Param) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.callbacks.XCallback.callAll(de.robv.android.xposed.callbacks.XCallback$Param) (:-1)
2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.wind.xposed.entry.XposedModuleEntry.init() (:15)
dex2jar G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex -> G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar baseName =classes WARN: ignored invalid inner class name , treat as anonymous inner class. WARN: ignored invalid inner class name , treat as anonymous inner class. jar2dex G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar -> G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex call com.android.dx.command.Main.main[--dex, --no-strict, --output=G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\wx7.0.8-apk-unzip-files\classes.dex, G:\▒▒▒▒▒\2020-01-23-11-16-13-tmp\output-jar.jar] warning: Ignoring InnerClasses attribute for an anonymous inner class (com.tencent.mm.plugin.appbrand.jsapi.pay.AppBrandJsApiPayService$1DuplicateActivityResultReceiver) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly indicate that it is not an inner class.
之后hook就是失败了
2020-01-23 11:17:56.525 24694-24694/? I/zygote: at java.lang.ClassLoader a.a.b.v.a(java.lang.ClassLoader, java.io.File, java.lang.String) (:174) 2020-01-23 11:17:56.525 24694-24694/? I/zygote: at com.swift.sandhook.wrapper.HookWrapper$HookEntity com.swift.sandhook.xposedcompat.methodgen.HookerDexMakerNew.doMake(java.lang.String, java.lang.String) (:-1) 2020-01-23 11:17:56.525 24694-24694/? I/zygote: at void com.swift.sandhook.xposedcompat.methodgen.HookerDexMakerNew.start(java.lang.reflect.Member, de.robv.android.xposed.XposedBridge$AdditionalHookInfo, java.lang.ClassLoader, java.lang.String) (:4) 2020-01-23 11:17:56.525 24694-24694/? I/zygote: at void com.swift.sandhook.xposedcompat.methodgen.DynamicBridge.hookMethod(java.lang.reflect.Member, de.robv.android.xposed.XposedBridge$AdditionalHookInfo) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.XposedBridge.hookMethodNative(java.lang.reflect.Member, java.lang.Class, int, java.lang.Object) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at de.robv.android.xposed.XC_MethodHook$Unhook de.robv.android.xposed.XposedBridge.hookMethod(java.lang.reflect.Member, de.robv.android.xposed.XC_MethodHook) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at de.robv.android.xposed.XC_MethodHook$Unhook de.robv.android.xposed.XposedHelpers.findAndHookMethod(java.lang.Class, java.lang.String, java.lang.Object[]) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.hook.BaseHook.hookMethod(java.lang.Class, java.lang.String, java.lang.Object[]) (BaseHook.java:18) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.hook.SQLiteDatabaseHook.hook(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (SQLiteDatabaseHook.java:54) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.qcg.wechathook.Main.handleLoadPackage(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (Main.java:29) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.callbacks.XC_LoadPackage.call(de.robv.android.xposed.callbacks.XCallback$Param) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void de.robv.android.xposed.callbacks.XCallback.callAll(de.robv.android.xposed.callbacks.XCallback$Param) (:-1) 2020-01-23 11:17:56.526 24694-24694/? I/zygote: at void com.wind.xposed.entry.XposedModuleEntry.init() (:15)