当前位置: 首页 > news >正文

js中如何隐藏eval关键字?

JavaScript中隐藏eval关键字的技巧

某些情况下,我们在进行JS编程时,可能想要用eval执行一些特殊的代码,但想不想让他人轻易看出是使用了eval。那么,就得想办法隐藏eval关键字了。

简单的隐藏方法

// 方法1:使用字符串分割
const ev = "ev";
const al = "al";
const hiddenEval = window[ev + al];// 使用
hiddenEval('console.log("隐藏的eval执行")');// 方法2:通过Function构造函数
const executeCode = new Function('code', 'return eval(code)');
executeCode('2 + 2'); // 返回4

复杂的隐藏方法

// 使用字符编码
const encodedEval = () => {const chars = [101, 118, 97, 108];const str = String.fromCharCode(...chars);return window[str];
};const myEval = encodedEval();

更更更复杂的隐藏方法

如果还想隐藏的更深,可以再用JShaman进行JS代码混淆加密,上面代码会变成:

const encodedEval = () => {const _0x35ea38 = {"\u006d\u004f\u0067\u006c\u0048": function (_0x55d02e, _0x5cdb2b) {return _0x55d02e ^ _0x5cdb2b;},"\u0076\u006a\u0048\u0044\u0073": function (_0x4c98c3, _0xa2b4f0) {return _0x4c98c3 ^ _0xa2b4f0;}};const _0x2cd5ff = [0x47a4d ^ 0x47a28, _0x35ea38["\u006d\u004f\u0067\u006c\u0048"](0xd8290, 0xd82e6), _0x35ea38['vjHDs'](0xb9759, 0xb9738), _0x35ea38["\u0076\u006a\u0048\u0044\u0073"](0x7b450, 0x7b43c)];const _0x3d45d7 = String['fromCharCode'](..._0x2cd5ff);return window[_0x3d45d7];
};const myEval = encodedEval();

或:

function _0x927a(opcode) {var op = {push: 32,add: 33,sub: 34,mul: 35,div: 36,pop: 37,xor: 38};var stack = [];var ip = -1;var sp = -1;while (ip < opcode.length) {ip++;switch (opcode[ip]) {case op.push:{ip++;stack.push(opcode[ip]);sp++;break;}case op.add:{stack.push(stack[sp - 1] + stack[sp]);sp++;break;}case op.sub:{stack.push(stack[sp - 1] - stack[sp]);sp++;break;}case op.mul:{stack.push(stack[sp - 1] * stack[sp]);sp++;break;}case op.div:{stack.push(stack[sp - 1] / stack[sp]);sp++;break;}case op.xor:{stack.push(stack[sp - 1] ^ stack[sp]);sp++;break;}case op.pop:{return stack[sp];}}}
}const encodedEval = () => {const chars = [_0x927a([32, 865932, 32, 866025, 38, 37]), _0x927a([32, 625917, 32, 625803, 38, 37]), _0x927a([32, 750963, 32, 750866, 38, 37]), _0x927a([32, 753540, 32, 753640, 38, 37])];const str = String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](...chars);return window[str];
};const myEval = encodedEval();

怎么样,还能找到eval关键字吗?

http://www.dtcms.com/a/545644.html

相关文章:

  • 做百度网站一年多少钱儿童教育网站怎么做有趣
  • 一家装修的网站怎么做的购买马来网站域名
  • 游戏平台网站制作网站建设费用是否资本化
  • Rust Option 与 Result深度解析
  • 湖南官网网站推广软件自己用钢管做里闪弹枪视频和照网站
  • 记一次 pm2 部署 spa 的坑
  • 做网站的时候卖过假货而出过事wordpress固定连接不能访问
  • Linux安装mysql8.4.6
  • Explain执行计划
  • 江门市住房城乡建设局网站php网站搬家软件
  • 从官方示例学习使用 CloudSim
  • 会外语和做网站制作微信网站模板免费下载
  • 优秀shell脚本搜集——筑梦之路
  • uniapp 实现一个底部悬浮面板
  • 中国桥梁空间分布数据
  • MutableStateFlow、StateFlow、LiveData在Compose中的运用
  • 网站建设的总结与评价专业定制网站开发公司
  • 应对AI全球化部署挑战:南凌科技云连接服务实现算法模型全球稳定传输
  • 公司网站建设岗位手机软件定制开发公司
  • 网站推广app软件一级注册工程师
  • LeetCode算法日记 - Day 87: 单词拆分
  • 学术论文写作与发表精讲:融合AI工具的高效方法与实战案例
  • 天津开发网站公司虚拟主机如何建设多个网站
  • 跟公司产品做网站制作app软件工具免费
  • 133-Spring AI Alibaba Vector Redis 功能完整案例
  • 线段树详解
  • AI 大模型应用中的图像,视频,音频的处理
  • 2025年大专建筑工程技术专业前景!
  • @1Panel 全面指南:从部署到高阶使用
  • SAP MM 采购申请转采购订单功能分享