首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS函数hook

前言​ 我在阅读《JavaScript 设计模式与开发实践》的第 15 章 装饰者模式,突然发现 JS 逆向中 hook 函数js 中的装饰者模式有点像,仔细阅读完全篇后更是对装饰器与 hook...hook 直译的意思为钩子,在逆向领域通常用来针对某些参数,变量进行侦听,打印输出,替换等操作。...正文​ 示例代码​ function add(a, b) { return a + b } hook 代码​ 这是一个很简单加法函数,通过 Hook 能获取到这两个参数的值,相当于在 return...不过这个例子可能过于简单,我所要表达的意思是,通过 Hook,定位到我们想 Hook函数与变量,通过一系列操作(函数复写,元编程),只要触发该函数或使用(取值,修改)该变量,便能将我们想要的结果(前后的结果...在不考虑 this 指向,我个人更偏向第一种写法,而第二种写法也确实让我眼前一亮,很巧妙的使用 js 的原型链,从而避免 this 指向的问题。

3.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

常用hook js 脚本汇总

Hook脚本本文Hook脚本 来自 包子页面最早加载代码Hook时机#在source里 用dom事件断点的script断点然后刷新网页,就会断在第一个js标签,这时候就可以注入代码进行hook监听 键盘...半自动扣#//在加载器后面下断点 执行下面代码// 这里的f 替换成需要导出的函数名window.zhiyuan = f;window.wbpk_ = "";window.isz = false;f...console.log("被调用的 >>> ", e[t].toString()); // 这里进行拼接,bb变量需要在全局定义一下 // t 是模块名, e[t] 是模块对应的函数...查看调用 就用apply属性 // 第二个参数是prop 这里用不上 因为是属性,eval只是个函数 所以prop为undefind 这里设置了下划线 —— apply: (target,...hook例子#if (window.eval == 'native code') { console.log('发现eval函数hook了 开始死循环');}模拟sleep函数,实现Date的时间增加

6610

JS 中的钩子(Hook)实现

例如,Vue 的生命周期钩子,本质就是框架内部在对应时机调用了组件定义的钩子函数;此外,Webpack 所使用 tapable 更是将 hook 的应用发挥的淋漓尽致,tapable 最值得称赞的就是,...Hook 的表现形式 对于开发者,Hook 通常以钩子函数形式存在。开发者注册钩子函数,系统或者框架决定在什么时候调用钩子函数,某种意义上,它和事件回调函数有异曲同工之妙。...从数据结构的设计上,我们可以使用键值对(散列表,JS中的普通对象)来表示系统提供的钩子,其中,键代表钩子名称,值是钩子函数数组。...Hook 的分类 3.1 串行和并行 根据钩子函数的执行顺序,可以分为: 串行钩子:根据注册顺序调用钩子,后面的钩子必须等到前面的钩子执行完后才能调用,串行钩子可以是同步的,也可以是异步的 并行钩子:按顺序调用钩子...Hook 调用 注册钩子比较简单,只需将钩子函数按顺序加入钩子函数数组即可。而调用钩子,需要根据钩子类型来采取不同调用方法。

2.8K20

JS hook 3种方法

JS hook 3种方法环境win10node方法一:覆盖原函数直接全部重写原函数function xxx(){console.log("1111");}xxx = function(){console.log...;图片方法二:通过Object.defineProperty替换一个对象的属性属性里可能存的是方法,也可能存的就是一个值(值有两个方法getter、setter)//下面是一个示例:这个示例演示了hook...全局的cookie设置点(function() { //严谨模式 检查所有错误 'use strict'; //document 为要hook的对象 这里是hook的cookievar...JS hook 时机1.在控制台注入的hook,刷新网页就失效了解决:在网页加载第一个js的位置,第一行下断点,然后在控制台手动注入hook,适用于快速调试问题:有可能注入hook的时机还是会晚一点,因为下断点的...js位置不一定是第一个加载的2.利用Fiddler的替换响应,注入hook这种时机比较靠前3.油猴插件(不推荐,容易被检测)****本文仅供学习交流使用,如侵立删!

44620

Hook(CC++)函数的逻辑

1.前言 一般来说hook函数的做法,会受到诸多限制。比如IAT表项检测,反调试,PG定位等等都是拦路虎,但有一种如果不是当前内存的限制,基本上可以随便操作。也即函数逻辑更改,本篇来看下。...{ return a; } 如果调用了add函数,则让它执行add_one函数的逻辑。...然后计算出add函数跳转到add_one函数的逻辑的机器码。也就是jmp_addr变量。因为jmp的算法是: jmp要跳转的地址-jmp指令的下一条地址-5等于当前机器码。...Hook前是原逻辑,而被HookTheFunction操作之后,则变成了调用add,则是雷同调用了add_one。...它的结果输出如下: before add(1, 2) x : 3 after add(1, 2) x : 1 hook前结果是1+2自然等于3,而hook之后则是直接返回了第一个参数也就是1.

15310

Web Spider Fiddler - JS Hook 基本使用

文章目录 前言 一、资源下载 二、什么是Hook 三、Hook 的几种方式 四、Fiddler - 编程猫插件安装 五、Fiddler - Hook 案例 六、常用的js hook代码 Hook Cookie...Hook Header 总结 ---- 前言 Hook技术也叫钩子函数,功能是把网站的代码拉出来,改成我们自己想执行的代码片段,简单来说就是可以控制执行函数的入参和出参; ---- 一、资源下载 编程猫插件...pwd=zhou 二、什么是Hook 什么是hook js执行流程,初始化(自执行)、页面逻辑、等待用户输入、加密数据、提交数据; 在以上任意一个环节,插入自己的代码,让浏览器先执行插入代码然后再执行网站原有代码...buvid3生成的地方 六、常用的js hook代码 Hook Cookie Cookie Hook 用于定位Cookie中关键参数生成的大概位置,下列代码演示了当Cookie中匹配到了关键字buvid3...Hook 的基本使用,后续有更多好用的JS Hook 代 码会在此篇博文更新; 最后我推荐一篇较好的相关博文:JS 逆向之 Hook,吃着火锅唱着歌,突然就被麻匪劫了!

1.9K80

Swift Hook 新思路 -- 虚函数

摘要:业界对Swift 的 Hook 大多都需要依靠 OC 的消息转发特性来实现,本文从修改 Swift 的虚函数表的角度,介绍了一种新的 Hook 思路。...原理简述 ---- 本文的技术方案仅针对通过虚函数表调用的函数进行 Hook,不涉及直接地址调用和objc_msgSend 的调用的情况。...如果 Method 记录用于 Hook函数地址,OverrideMethod 作为被Hook函数,那是不是就意味着无论如何改变虚函数表的顺序及数量,只要 Swift 还是通过跳表的方式进行函数调用...总结 ---- 本文通过介绍 Swift 的虚函数Hook 思路,介绍了 Swift Mach-O 的存储结构以及运行时的一些调试技巧。...Swift 的 Hook 方案一直是从 Objective-C 转向 Swift 开发的同学比较感兴趣的事情。

1.6K31

pytorch中autograd以及hook函数详解

这就需要我们的hook函数了: register hook (hook)[source] 这个函数属于torch.tensor类,这个函数在与这个tensor梯度计算的时候就会执行,这个函数的参数hook...是一个函数,这个函数应该是以下的形式: hook(grad) -> Tensor or None 。...register_backward_hook 之前说的是tensor中的register_hook,现在说的这个函数是module类里面的hook函数,module即我们平常使用pytorch定义神经网络层时需要的模板类...该函数的形式是register_backward_hook(hook),同样参数是一个hook函数hook函数的形式为: hook(module, grad_input, grad_output)...(net.my_hook) # 这两个hook函数一定要result = net(input)执行前执行,因为hook函数实在forward的时候进行绑定的 input.register_hook

1.1K60

JS函数

(){ console.log("hello js") } sayHello() 参数 形式参数 : 在函数声明时, 设置的参数。...//带参数的函数声明 function 函数名(形参1, 形参2, 形参...){ //函数体 } //带参数的函数调用 函数名(实参1, 实参2, 实参3); 计算2个数的和 ...函数作用域 :在 函数内的区域 叫做函数作用域,在函数作用域内声明的变量叫做局部变量 ,局部变量只有在当前函数内才能访问到。...预解析 js执行代码分为两个过程: 预解析过程(变量与函数提升) 代码一行一行执行 console.log(num); var num = 1 console.log(num) 预解析过程 把var声明的变量提升到当前作用域最前面...把函数声明提升到当前作用域的最前面。 如果函数同名 , 后者会覆盖前者 。 如果var声明的和函数声明的同名, 函数优先。

11.1K40

JS函数

函数定义        函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块;       函数就是包裹在花括号中的代码块       function 函数名()       {        ...这里是要执行的代码      } 二 函数的声明和调用    函数的声明必须使用关键字function    关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数    函数本身不会自动运行...,只有当调用该函数时,才会执行函数内的代码    函数可以通过其名字加上括号中的参数进行调用 三 带有返回值的参数      使用return 语句来返回值 可以将返回值赋值给一个变量,然后对变量进行操作...四 arguments对象    在函数代码中,使用特殊对象 arguments存储函数调用传递给该函数的所有参数   可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length...sun+=arguments[i]; } return sun; } var s= sum(2,3,4,5);//虽然sum函数时没有参数的

5.2K20
领券