志远-JS逆向高级课程3期
JS 作用域问题 1:自执行函数的 Hook 问题
JS 变量是有作用域的,只有当被 hook 函数和 debugger 断点在同一个作用域的时候,才能 hook 成功。
对于下面的自执行函数,在执行完之后我们实际上是无法 hook test 函数的。因为 test 是在自执行函数的作用域,而不是在全局作用域。而此时,自执行函数已经执行完了,test 函数已经被内存清空无法 hook。
!(function(){
var arg = 1;
var test = function(){
console.log(arg);
}})()debugger;
在此处 hook test();