首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript黑科技:反Eval调试

    Eval的正规用法是执行一段JS代码。但它做为代码分析者的手段,也经常被用于调试分析:用eval运行某些函数,获得返回值、了解代码执行结果。如何反eval调试、防止代码被eval执行?...我们可以在函数中抛出一个错误并捕获其堆栈跟踪,进而来检查调用栈中是否包含eval,便可识别是否是被eval调试,并可做出相应的操作。...但在某些特殊的运行环境中,例如:微信、支付宝等H5小游戏中的代码,是不可以使用的,因为这些场景中经常也是使用eval来执行代码的,阻止了eval执行会导致错误。...奇技淫巧:隐形字符77JavaScript奇技淫巧:数值的7种写法81JavaScript奇技淫巧:详解Eval加密88JavaScript奇技淫巧:禁止后退96JavaScript奇技淫巧:加密反调试...98JavaScript奇技淫巧:花样赋值103JavaScript奇技淫巧:Eval的未公开用法107JavaScript奇技淫巧:终极Eval加密109JavaScript奇技淫巧:自动下载112JavaScript

    29310

    JavaScript中使用eval进行代码加壳

    JavaScript中使用eval进行代码加壳eval加壳的基本原理在JavaScript编程中,使用eval函数对代码进行加壳是一种基础的代码保护技术。...其核心原理是将原始的可执行代码转换为字符串形式,并在运行时通过eval函数动态解析执行。...例如:// 原始JS代码function calculate(a, b) { return a + b;}// 使用eval加壳后的代码eval("function calculate(a, b)...(atob(encodedCode));这种加壳方式虽然能增加代码阅读的难度,但存在明显的局限性:eval执行的代码仍然可以被开发者工具轻松捕获和调试(如:将eval替换为console.log),因此...对于需要真正保护知识产权的项目,更多是使用JShaman等专业JavaScript混淆加密工具进行代码保护,以便止JS代码被分析、复制、盗用,切实保护产品知识产权。

    11810

    《你不知道的JavaScript》:this 绑定规则的例外情况与总结

    《你不知道的JavaScript》第二部分this和对象原型第 4 篇。 前篇说了this绑定的例外情况,比如当以为是应用的其他绑定规则时,其实应用的可能是默认绑定。...例外情况1:this忽略 当把null或者undefined作为this的绑定对象传入call、apply或bind时,这些值在调用时会被忽略,此时实际应用的是默认绑定规则。...但偶尔也会有些问题,比如函数用到第三库的方法时,可能this会有特定的绑定对象,此时如对函数的this进行上述绑定操作,容易产生一些难以觉查的bug,所以在不是完全确定的情况下,可以采用一种更佳实践(《你不知道的javascript...例外情况3: 软绑定 现在我们知道函数的绑定规则中有个叫显式绑定,其中又有一种比较特殊的绑定形式叫硬绑定,使用Function.prototype.bind()来实现,则ES5提供实现。...例外情况4: 箭头函数 在ES6中,箭头函数对this的对象绑定作用机制完全不一样。箭头函数并不是使用function关键字定义的。而是根据 => 操作符定义的。

    65110

    Javascript eval函数名数组化执行字符串函数

    Javascript eval() 某些情况下,传递函数名之后,接收的不是函数而是函数名的字符串类型。...eval() 方法—用来执行字符串代表的 javascript 代码,如果传递的不是字符串的话,会直接返回传值,而非调用。...例 function test(str){ alert(str); } //如果param是值; eval('test("param")'); /.../如果param是变量; var param = 'B'; eval('test(param)'); //会查找名为param的变量,如果找不到会抛出异常 字符串数组函数名函数 默认执行一个...js函数会有指定函数名,如果想同时执行多个相同函数但又不同内容的时候,需要将相应函数使用 js 的 eval() 转换为字符串函数后再执行 var arr = ['funcA(str)','funcB(

    29310

    JavaScript中eval和with语句如何影响作用域链:探索深度知识

    JavaScript中eval和with语句如何影响作用域链:探索深度知识 前言 • 在上篇文章中,我们介绍了深度剖析了作用域,并将其定义为一套规则,这套规则用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找...• 上篇文章入口:JavaScript作用域深度剖析:从局部到全局一网打尽: https://mp.weixin.qq.com/s/zfTTVsgBRjoOk0Sm6Scb2w • 而作用域一共分为两种...2.2 欺骗词法 • JavaScript 有两种机制来实现这个目的。 2.2.1 eval(不推荐使用) • JS 中的 eval(...) 函数可接收一个字符串作为参数。...• JavaScript 引擎会在编译阶段进行数项的性能优化。其中有些优化依赖于能够根据代码的词法进行静态分析,并预先确定所有变量和函数的定义位置,才能在执行过程中快速找到标识符。...JavaScript 有两种机制可欺骗词法作用域:eval(...) 和 with(...){...}。 • eval(...): 修改所处位置的词法作用域。

    45710

    前端魔法堂——异常不仅仅是trycatch

    前言  编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外。...对于业务用例的例外我们别无它法,必须要求实施人员与用户共同提供合理的解决方案;而技术上的例外,则必须由我们码农们手刃之,而这也是我想记录的内容。  ...@prop {String} fileName - 异常发生的脚本URI @prop {number} lineNumber - 异常发生的行号 @prop {number} columnNumber...EvalError,调用eval()时发生的异常,已被废弃只用于向后兼容而已 InternalError,JavaScript引擎内部异常,FireFox独门提供的!...param {string} message - 异常信息" @param {string} source - 发生异常的脚本的URI @param {number} lineno - 发生异常的脚本行号

    1.5K30

    前端魔法堂——异常不仅仅是trycatch

    前言  编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外。...对于业务用例的例外我们别无它法,必须要求实施人员与用户共同提供合理的解决方案;而技术上的例外,则必须由我们码农们手刃之,而这也是我想记录的内容。  ...@prop {String} fileName - 异常发生的脚本URI @prop {number} lineNumber - 异常发生的行号 @prop {number} columnNumber...EvalError,调用eval()时发生的异常,已被废弃只用于向后兼容而已 InternalError,JavaScript引擎内部异常,FireFox独门提供的!...param {string} message - 异常信息" @param {string} source - 发生异常的脚本的URI @param {number} lineno - 发生异常的脚本行号

    2K70

    Js捕获异常的方法

    Js捕获异常的方法 JavaScript的异常主要使用try catch finally语句以及窗口对象window的onerror事件来捕获。...try catch finally try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号。...的构造器可以创建一个错误对象,当运行时错误产生时,Error的实例对象会被抛出,Error对象也可用于用户自定义的异常的基础对象,Js内建了几种标准错误类型: EvalError: 创建一个error实例,表示错误的原因:与eval...SyntaxError: 创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。...developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers/onerror https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

    5.8K20

    一文了解微服务低代码实现方式

    目前云原生比较火,各公司都在考虑把自己的微服务迁移到云原生架构中,我司也不例外,为了能够更好的将我司的微服务迁移到云原生架构上,需要对目前的服务进行瘦身,首先就是剥离对接第三方子系统的代码,这部分代码会越积越多...实现的一种简单键值映射 • SimpleScriptContext ScriptContext 的一种简单实现 异常 • ScriptException 脚本API的通用异常类,抛出的异常类具有文件名、行号...; engine.eval("print(x)"); } //输出 //Hello World!...; // 执行同一个脚本 - 但这次传入一个不同的script context engine.eval("print(x);", bindings); engine.eval("...// 执行这个脚本 engine.eval(script); // 从脚本引擎中获取Runnable接口对象(实例).

    1.6K20
    领券