diff --git a/scripts/hook/hook_dyload_frag.js b/scripts/hook/hook_dyload_frag.js index 31d9a7c..7399662 100644 --- a/scripts/hook/hook_dyload_frag.js +++ b/scripts/hook/hook_dyload_frag.js @@ -40,18 +40,16 @@ onComplete: function () { } }); - // Hook new instance of DexClassLoader - // Use with caution: more overhead + // Hook existing instance of DexClassLoader + // Experiment use only var ClassLoader = Java.classFactory.use('java.lang.ClassLoader'); DexClassLoader.loadClass.overload('java.lang.String').implementation = function () { var ret_class = this.loadClass.apply(this, arguments); if (String(this).includes("{{dyload_path}}")) { var active_classloader = ret_class.getClassLoader(); - var orig_cl = Java.classFactory.loader; - Java.classFactory.loader = active_classloader; + var factory = Java.ClassFactory.get(active_classloader) {{hook_frag_script}} - Java.classFactory.loader = orig_cl } return ret_class }; diff --git a/scripts/hook/hook_dyload_frag_mini.js b/scripts/hook/hook_dyload_frag_mini.js index 2d63c99..f28dc3e 100644 --- a/scripts/hook/hook_dyload_frag_mini.js +++ b/scripts/hook/hook_dyload_frag_mini.js @@ -43,18 +43,15 @@ onComplete: function () { } }); - // Hook new instance of DexClassLoader - // Use with caution: more overhead + // Hook existing instance of DexClassLoader var ClassLoader = Java.classFactory.use('java.lang.ClassLoader'); DexClassLoader.loadClass.overload('java.lang.String').implementation = function () { var ret_class = this.loadClass.apply(this, arguments); if (String(this).includes("{{dyload_path}}")) { var active_classloader = ret_class.getClassLoader(); - var orig_cl = Java.classFactory.loader; - Java.classFactory.loader = active_classloader; + var factory = Java.ClassFactory.get(active_classloader) {{hook_frag_script}} - Java.classFactory.loader = orig_cl } return ret_class };