广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript的函数可不可以hook
  • 900
分享到

javascript的函数可不可以hook

2024-04-02 19:04:59 900人浏览 安东尼
摘要

这篇文章主要介绍了javascript的函数可不可以hook的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript的函数可不可以hook文章都会有所收获,下面我们一

这篇文章主要介绍了javascript的函数可不可以hook的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript的函数可不可以hook文章都会有所收获,下面我们一起来看看吧。

javascript的函数可以hook;hook是一种动态修改函数执行流程或返回结果的方法,JavaScript作为一种动态语言也可以进行hook操作,hook通常用来针对某些参数或者变量进行侦听、打印输出、替换等操作。

教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript的函数可以hook吗

可以。

Hook是一种动态修改函数执行流程或返回结果的方法,在实际应用中非常广泛。Javascript作为一种动态语言,也可以进行Hook操作。随着Javascript语言的发展,Hook的方法也越来越多,

hook直译的意思为钩子,在逆向领域通常用来针对某些参数,变量进行侦听,打印输出,替换等操作。

示例如下:

示例代码

function add(a,b){
return a + b
}

hook代码

这是一个很简单加法函数,通过Hook能获取到这两个参数的值,相当于在return之前添加了一句代码console.log(a,b),这样便能输出这两个的值便于分析。那么可以使用如下的方式来复写改函数,而这个方式在javascript也就是装饰者模式

let _add = add
add = function () {
  console.log('arguments', arguments)
  let result = _add.apply(this, arguments)
  console.log('result', result)
  return result // 如果不需要result 则可直接return _add()
}

完整代码

function add(a, b) {
  return a + b
}
 
let _add = add
add = function () {
  console.log('arguments', arguments)
  let result = _add.apply(this, arguments)
  console.log('result', result)
  return result 
}
 
add(1, 2)

再次调用add(1,2)便会输出arguments参数以及结果3,一个很简单HOOK就实现了。

不过这个例子可能过于简单,我所要表达的意思是,通过Hook,定位到我们想Hook的函数与变量,通过一系列操作(函数复写,元编程),只要触发该函数或使用(取值,修改)该变量,便能将我们想要的结果(前后的结果(如 加密前,加密后))获取到。这才是我们的目的。

书中给的例子想说明的,想为某个原函数(比如这里的add)添加一些功能,但该原函数可能是由其他开发者所编写的,那么直接修改原函数本身将可能导致未知BUG,于是便可以用上面的方式进行复写原函数的同时,还不破坏原函数。

关于“javascript的函数可不可以hook”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“javascript的函数可不可以hook”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: javascript的函数可不可以hook

本文链接: https://www.lsjlt.com/news/98226.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript的函数可不可以hook
    这篇文章主要介绍了javascript的函数可不可以hook的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript的函数可不可以hook文章都会有所收获,下面我们一...
    99+
    2022-10-19
  • php函数的参数可不可以不填
    这篇“php函数的参数可不可以不填”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php函数的参数可不可以不填”文章吧。php...
    99+
    2023-07-02
  • javascript是否可以不写函数名
    这篇文章主要介绍了javascript是否可以不写函数名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript是否可以不写函数名文章都会有所收获,下面我们一起来看看...
    99+
    2022-10-19
  • javascript可不可以加密
    这篇文章主要讲解了“javascript可不可以加密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript可不可以加密”吧! ...
    99+
    2022-10-19
  • mysql函数中可不可以用游标
    这篇“mysql函数中可不可以用游标”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2022-10-19
  • jquery中可不可以有匿名函数
    本文小编为大家详细介绍“jquery中可不可以有匿名函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery中可不可以有匿名函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • vue中props可不可以传递函数
    这篇“vue中props可不可以传递函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vu...
    99+
    2022-10-19
  • php函数返回值可不可以是数组
    这篇文章主要讲解了“php函数返回值可不可以是数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php函数返回值可不可以是数组”吧!php函数返回值可以是数组。在php函数中,利用retur...
    99+
    2023-07-02
  • javascript可不可以使用socket
    这篇文章主要介绍了javascript可不可以使用socket的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript可不可以使用socket文章都会有所收获,下面我...
    99+
    2022-10-19
  • JavaScript可不可以写后端
    今天小编给大家分享一下JavaScript可不可以写后端的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2022-10-19
  • JavaScript中可不可以用class
    本文小编为大家详细介绍“JavaScript中可不可以用class”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中可不可以用class”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • javascript数组里可不可以包含对象
    本文小编为大家详细介绍“javascript数组里可不可以包含对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript数组里可不可以包含对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • javascript可不可以开发游戏
    小编给大家分享一下javascript可不可以开发游戏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! javascript可以开发游戏,JavaScript实现...
    99+
    2022-10-19
  • JavaScript语句块可不可以嵌套
    JavaScript语句块是可以嵌套的。语句块是由一对大括号({})包围起来的一组语句,可以用来组织和控制语句的执行顺序。在一个语句...
    99+
    2023-10-12
    JavaScript
  • javascript可不可以是异步加载
    这篇文章主要讲解了“javascript可不可以是异步加载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript可不可以是异步加载”吧! ...
    99+
    2022-10-19
  • javascript可不可以用el表达式
    本篇内容介绍了“javascript可不可以用el表达式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JavaScript可以不开启吗
    JavaScript是一种广泛使用的编程语言,它在当前的互联网世界中扮演着非常重要的角色。许多网站都需要JavaScript才能正常运行,因此很多人认为在访问网站时需要开启JavaScript。但实际上,是否开启JavaScript是由访问...
    99+
    2023-05-14
  • javascript可不可以对事件作出响应
    本文小编为大家详细介绍“javascript可不可以对事件作出响应”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript可不可以对事件作出响应”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • javascript可不可以在服务器端执行
    小编给大家分享一下javascript可不可以在服务器端执行,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • 不会JavaScript可以学vue吗
    在现今的前端开发领域中,Vue.js 可谓是一种备受欢迎的前端框架。很多人都想要学习 Vue.js 来提高自己的开发技能,但是不少人会抱怨自己不会 JavaScript,而不知道该如何入门 Vue.js。那么,不会 JavaScript 可...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作