jshook理解学习

一、逆向中,我们通常将原函数修改、覆盖和置空等的过程称为hook;因此,我们需要了解方法的常见定义方法。

1、常见的定义方法。虽然定义方式多种多样,但实际含义都一样

1、function a(name){alert(" first definition ");}
2、var a = function(name){alert(" second definition ");}
3、var a = (name) => {alert(" third definition ");} // ES6引入
4、var a = new function("name", "alert(' fourth definition ');")

2、理解hook

function b(name){
  console.log(name+"哈哈哈");
}
(function (){
    b = function (jb,cd="chongqing"){
        console.log(jb+"----"+cd);
    }
})()
b("nana");  // nana----chongqing

使用立即执行函数,在立即函数内部重写外部变量的方法,确保函数内部的变量不受外部全局变量、外部函数以及第三方库或框架的影响。当外部调用 b("nana") 时,实际上调用的是重新定义后的同名函数,而不是原先的外部函数。

3、通过控制台进行hook的话,一刷新网页就会失效,我们可以使用油猴、fiddler等插件或工具进行插入脚本保证其一直存在。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值