iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript如何实现函数重定义
  • 223
分享到

JavaScript如何实现函数重定义

2023-06-27 09:06:08 223人浏览 八月长安
摘要

这篇文章主要介绍javascript如何实现函数重定义,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!函数重定义这是一种最基本也是最常用的代码反调试技术了。在JavaScript中,我们可以对用于收集信息的函数进行重定

这篇文章主要介绍javascript如何实现函数重定义,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

函数重定义

这是一种最基本也是最常用的代码反调试技术了。在JavaScript中,我们可以对用于收集信息的函数进行重定义。比如说,console.log()函数可以用来收集函数和变量等信息,并将其显示在控制台中。如果我们重新定义了这个函数,我们就可以修改它的行为,并隐藏特定信息或显示伪造的信息。

我们可以直接在DevTools中运行这个函数来了解其功能:

console.log("HelloWorld");var fake = function() {};window['console']['log']= fake;console.log("Youcan't see me!");

运行后我们将会看到:

VM48:1 Hello World

你会发现第二条信息并没有显示,因为我们重新定义了这个函数,即“禁用”了它原本的功能。但是我们也可以让它显示伪造的信息。比如说这样:

console.log("NORMalfunction");//First we save a reference to the original console.log functionvar original = window['console']['log'];//Next we create our fake function//Basicly we check the argument and if match we call original function with otherparam.// If there is no match pass the argument to the original functionvar fake = function(argument) {    if (argument === "Ka0labs") {        original("Spoofed!");    } else {        original(argument);    }}// We redefine now console.log as our fake functionwindow['console']['log']= fake;//Then we call console.log with any argumentconsole.log("Thisis unaltered");//Now we should see other text in console different to "Ka0labs"console.log("Ka0labs");//Aaaand everything still OKconsole.log("Byebye!");

如果一切正常的话:

Normal functionVM117:11 This is unalteredVM117:9 Spoofed!VM117:11 Bye bye!

实际上,为了控制代码的执行方式,我们还能够以更加聪明的方式来修改函数的功能。比如说,我们可以基于上述代码来构建一个代码段,并重定义eval函数。我们可以把JavaScript代码传递给eval函数,接下来代码将会被计算并执行。如果我们重定义了这个函数,我们就可以运行不同的代码了:

//Just a normal evaleval("console.log('1337')");//Now we repat the process...var original = eval;var fake = function(argument) {    // If the code to be evaluated contains1337...    if (argument.indexOf("1337") !==-1) {        // ... we just execute a different code        original("for (i = 0; i < 10;i++) { console.log(i);}");    }    else {        original(argument);    }}eval= fake;eval("console.log('Weshould see this...')");//Now we should see the execution of a for loop instead of what is expectedeval("console.log('Too1337 for you!')");

运行结果如下:

1337VM146:1We should see this…VM147:10VM147:11VM147:12VM147:13VM147:14VM147:15VM147:16VM147:17VM147:18VM147:19

正如之前所说的那样,虽然这种方法非常巧妙,但这也是一种非常基础和常见的方法,所以比较容易被检测到。

以上是“JavaScript如何实现函数重定义”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: JavaScript如何实现函数重定义

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

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

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

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

下载Word文档
猜你喜欢
  • JavaScript如何实现函数重定义
    这篇文章主要介绍JavaScript如何实现函数重定义,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!函数重定义这是一种最基本也是最常用的代码反调试技术了。在JavaScript中,我们可以对用于收集信息的函数进行重定...
    99+
    2023-06-27
  • JavaScript如何定义函数
    这篇文章主要为大家展示了“JavaScript如何定义函数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何定义函数”这篇文章吧。在Java...
    99+
    2024-04-02
  • JavaScript中如何定义函数
    这篇文章给大家介绍JavaScript中如何定义函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、 函数式声明function  ...
    99+
    2024-04-02
  • JavaScript如何自定义函数
    这篇文章主要介绍“JavaScript如何自定义函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何自定义函数”文章能帮助大家解决问题。JavaScript中的函数分为两种:系...
    99+
    2023-06-29
  • JavaScript中如何自定义函数
    JavaScript中如何自定义函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 js自定义函数的写法:1、“f...
    99+
    2024-04-02
  • JavaScript如何实现函数绑定
    这篇文章主要介绍了JavaScript如何实现函数绑定,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:Perface如果让你实现这个...
    99+
    2024-04-02
  • Javascript中如何实现reduce函数查重
    这篇文章给大家分享的是有关Javascript中如何实现reduce函数查重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原代码:var arr="qweqr...
    99+
    2024-04-02
  • 如何在golang中自定义实现函数?
    在 go 中实现自定义函数,需要使用 func 关键字后跟函数名、参数列表和返回类型(可选)。通过调用函数名和提供适当参数即可调用自定义函数。自定义函数可用于各种任务,例如处理数据、格式...
    99+
    2024-04-28
    函数 golang iphone 格式化输出 标准库
  • Hive如何自定义函数实现将自定义函数注册到hive源码中并重新编译hive
    这篇文章主要介绍Hive如何自定义函数实现将自定义函数注册到hive源码中并重新编译hive,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!hive版本:    hive-1.1.0-cdh6.7....
    99+
    2023-06-03
  • Python 中如何实现重定向 leetcode 函数?
    LeetCode 是一个知名的在线编程平台,许多程序员都会在这里刷题。在 LeetCode 上,我们可以通过编写特定的函数来解决不同的算法问题。但是,在某些情况下,我们可能需要重定向 LeetCode 函数的输出,以便进行更高效的调试和测...
    99+
    2023-06-29
    重定向 leetcode 函数
  • javascript 函数是否定义
    Javascript是一种非常流行的脚本语言,它可以使网页变得更加动态和交互化。Web开发人员通常会利用Javascript来创建函数,以便在网站中实现各种不同的功能。但是,在使用Javascript函数时,有一项非常重要的事情需要注意,那...
    99+
    2023-05-14
  • JavaScript函数怎么定义
    这篇文章主要介绍了JavaScript函数怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript函数怎么定义文章都会有所收获,下面我们一起来看看吧。   ...
    99+
    2024-04-02
  • 如何在Kotlin中实现定义包和函数
    这期内容当中小编将会给大家带来有关如何在Kotlin中实现定义包和函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。包名的定义在xxx.kt文件的顶部进行定义,使用package关键字,定义后,引用包内函...
    99+
    2023-05-31
    kotlin 函数
  • 详解如何通过JavaScript实现函数重载
    有的同学在开发中可能遇到过一个困扰,但是很少有人去解决这个问题,我这用一个例子展现出来 const searcher = {}; searcher.findAll = () =>...
    99+
    2023-01-12
    JavaScript实现函数重载 JavaScript函数重载 JavaScript 重载
  • 如何定义javascript数组
    这篇文章将为大家详细讲解有关如何定义javascript数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端...
    99+
    2023-06-14
  • PHP 和 JavaScript 如何实现重定向?
    PHP 和 JavaScript 如何实现重定向? 重定向是指将浏览器请求的URL重定向到另一个URL,这是Web开发中非常常见的一种操作。在PHP和JavaScript中,我们都可以实现重定向,本文将介绍它们的具体实现方式。 一、PHP实...
    99+
    2023-08-14
    javascript 重定向 leetcode
  • JS函数如何定义
    这篇文章主要介绍了JS函数如何定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS函数如何定义文章都会有所收获,下面我们一起来看看吧。JavaScript 使用关键字 fun...
    99+
    2024-04-02
  • python如何定义函数
    这篇文章给大家分享的是有关python如何定义函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.函数定义首先我们要明白一个函数的性质,我们定义一个函数,是为了在后面直接应用它。下面这个函数是一个很简单的函数,...
    99+
    2023-06-25
  • 如何用Shell实现数学运算自定义函数
    本篇内容介绍了“如何用Shell实现数学运算自定义函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近脚本中总是需要计算,每次都用awk会...
    99+
    2023-06-09
  • 如何使用JavaScript定义自己的ajax函数
    这篇文章将为大家详细讲解有关如何使用JavaScript定义自己的ajax函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。由于用原生js的方式发起的网络请求,都是以查询字符串的形式,提交给服务器的,用户...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作