Frida-延迟Hook方法

在某些时候想要Hook的类可能还没有被加载进来,如果直接加载注入脚本可能会报找不到指定要注入的类的异常,所以应该在脚本中加入延迟方法.

使用 setTimeout(fn, delay) 方法进行延迟调用

setImmediate(function() {
//延迟1秒调用Hook方法
setTimeout(test, 1000);
});
//执行Hook方法
function test(){
    Java.perform(function () {
    var Activity = Java.use("com.test.utils");
    Activity.test.implementation = function () {
        console.log("test");
        var p = arguments[0];
        var res = this.y(arguments[0]);
        console.log("[test] params = "+p+"\nres="+res);
        return res;
    };
});
}

下面列出几个常用的函数

  • setTimeout(fn, delay): 在延迟 delay 毫秒之后,调用 fn,这个调用会返回一个ID,这个ID可以传递给 clearTimeout 用来进行调用取消。
  • clearTimeout(id): 取消通过 setTimeout 发起的延迟调用
  • setInterval(fn, delay): 每隔 delay 毫秒调用一次 fn,返回一个ID,这个ID可以传给 clearInterval 进行调用取消。
  • clearInterval(id): 取消通过 setInterval 发起的调用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容