1. Hook 技术原理
客户端拥有 JS 的最高解释权,可以决定在任何时候注入 JS,而服务器无法阻止或干预。
服务端只能通过检测和混淆的手段,领 Hook 难度加大,但是无法直接阻止。
Hook 的目:
- 一是寻找函数入口;
- 二是分析参数的变化,便于分析 JS 逻辑。
old_func = 被 hook 函数
被 hook 函数 = function(arguments){
my_task;
return old_func.apply(arguments)
}
func.prototype.xxx = xxxx
odl_attr = obj.attr
Object.defineProperty(obj, 'attr', {
get: function(){
debugger;
console.log(cookie_cache);
return old_attr
},
set: function(val){
debugger;
return ...
}
})
- 实例:查找 cookie 生成入口
document.cookie_bak = document.cookie
Object.defineProperty(document, 'doockie',{
get: function(){
debugger;
return document.cookie_bak;
},
set: function(){
debugger;
return;
}
})
网友评论