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;
}
})