所在的位置: js >> js资源 >> 浅谈Js逆向hook技巧

浅谈Js逆向hook技巧

情人节,去约会了,还看啥文章!

能看到这里的,说明没有约会了,我们简单的聊一下hook技术和技巧

Hook是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时候钩子函数既可以加工处理该函数的执行行为,也可以强制结束消息的传递,简单来说就是修改原有的js代码就是hook。

JS是一种弱类型语言,同一个变量可以多次定义、根据需要进行不同的赋值,而这种情况如果在其他强类型语言中则可能会报错,导致代码无法执行。js的这种特性,为我们Hook代码提供了便利。

Hook的实现方式

一种是直接替换函数;

一种是Object.defineProperty通过为对象的属性赋值的方式进行Hook

两种的区别:

函数hook不会失败,一般不会hook失败,除非proto模拟的不好被检测到;

属性hook,当网站所有的逻辑都采用Object.defineProperty绑定时,属性hook就会失效。同时,Object.defineProperty无法进行二次hook。

第一种方式简单、但是太粗暴,容易影响原有代码的正常执行,也容易被检测到

而第二种方式会更优雅一些,具体需要结合具体需求选择合适的Hook方式

常见的hook

cookiehook

2.请求头headerhook

3.无限dedbug解决

4.其他,可以使用通用模板(赋值,重写,原型链)

但是呢,很多情况下是无法hook到的,比如阿里系的acw_,是无法hook到的。下一期分享一下阿里的acw_cookie的逆向




转载请注明:http://www.aierlanlan.com/rzgz/8680.html