JavaScript奇技淫巧:Eval的未公开用法

作者: http://JShaman.com w2sft,转载请保留此信息

很多人都知道,Eval是用来执行JS代码的,可以执行运算、可以输出结果。

但它还有一种未公开的用途,想必很少有人用过。

例:

var a = eval(['g', 'o', 'l', '.', 'e', 'l', 'o', 's', 'n', 'o', 'c'].reverse().join(""));
var b = ['m', 'o', 'c', '.', 'n', 'a', 'm', 'a', 'h', 's', 'j'].reverse().join("");
a(b);

这段JS代码,如果单看语法,是否能知道a(b)调用会输出什么?答案是很难想到的,它的输出如下:

能有这样的输出,依靠的便是eval的未公开用法:可以将字符串转为语法关键字。

上面的eval语句,简化后等于:

eval("console.log")

用reverse、join是为了隐藏console.log明文。

这个方法用于JS代码加密,效果很不错。

因为对JS代码混淆加密时,语法关键字是很难隐藏的,就如console.log,一般情况下可能变化为:console[“log”],或者console[“\x6c\x6f\x67”],log字符可以变化,但console作为语法关键字,是不可变的,这就容易被识别。

而eval的这种未公开用法,恰好可以解决这一问题。可以隐藏很多语法关键字。

JS混淆加密:Eval的未公开用法相关推荐

  1. 爬虫入门到放弃系列07:js混淆、eval加密、字体加密三大反爬技术

    前言 如果再说IP请求次数检测.验证码这种最常见的反爬虫技术,可能大家听得耳朵都出茧子了.当然,也有的同学写了了几天的爬虫,觉得爬虫太简单.没有啥挑战性.所以特地找了三个有一定难度的网站,希望可以有兴 ...

  2. 【JS 逆向百例】网洛者反爬练习平台第一题:JS 混淆加密,反 Hook 操作

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 写在前面 逆向目标 绕过无限 debugger Hook 参数 逆向参数 PyCharm 本地联调 完整代码 J ...

  3. Javascript加密,JS混淆加密,地表最新,最强加密方法保护您的代码

    JS混淆加密 步骤/方法 1.打开 https://jshunxiao.com 网站,粘贴需要加密的js代码 2.根据个人需求配置相关设置 3.点击加密按钮,即可对js代码进行混淆保护 4.还可以加密 ...

  4. JS加密,JS混淆,JS混淆加密,JS不可逆加密,JS加密压缩

    分享一个JavaScript加密,JS加密,JS混淆,JS混淆加密,JS不可逆加密,JS加密压缩 ,JS加密. 使用方式 / 注意事项 1.本工具是本站长结合了64个组件(大部分为开源组件),开发出来 ...

  5. JS混淆加密介绍,以及简单代码示例

    JS混淆加密介绍 1.将字符串转换为数字: 2.将数字转换为字符串: 3.将字符串转换为数字: 4.将数字转换为字符串: 5.总结 JS混淆加密是一种常用的安全加密技术,它可以将JavaScript代 ...

  6. python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie

    專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...

  7. 解密阿里巴巴加密技术: 爬虫JS逆向实践-1688 【JS混淆加密解析】

    大家好,我是辣条. 这是爬虫系列的36篇,爬虫之路永无止境. 爬取目标 网站:阿里巴巴1688.com - 全球领先的采购批发平台,批发网  工具使用 开发工具:pycharm 开发环境:python ...

  8. js混淆加密,通过混淆Js代码让别人(很难)还原,js代码加密

    使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护. 1.为什么需要js混淆 在 ...

  9. js混淆加密,通过混淆Js代码让别人(很难)无法还原

    1.为什么需要js混淆 在web系统发展早期,js在web系统中承担的职责并不多,只是简单的提交表单,js文件非常简单,也不需要任何的保护. 随着js文件体积的增大,为了缩小js体积,加快http传输 ...

最新文章

  1. 如何改进安全运营和安全分析水平
  2. 极客编程日历桌面版for mac开发笔记[swift]
  3. matlab交流电源并联,交流电路串联谐振和并联谐振的仿真分析
  4. 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
  5. linux中tar命令的使用
  6. matlab怎么调整子图间距,matplotlib调整子图间距,调整整体空白的方法
  7. React Hooks 不知道怎么学?看这篇
  8. linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用
  9. idea 使用maven 整合ssm框架
  10. 【MySQL】mysql show操作简单示例
  11. 不在gopath目录下能使用godoc吗_一文搞懂 Go Modules 前世今生及入门使用
  12. LeetCode OJ:Maximal Rectangle(最大矩形)
  13. nginx配置ssl证书
  14. Numpy升维和降维
  15. php云打印类,PHP应用:PHP云打印类完整示例
  16. Chrome 55 浏览器推出 Android 离线下载功能
  17. 跨境电商的痛点有哪些?
  18. 从Docker镜像构建演化史来了解多阶段构建的影响
  19. [项目管理]敏捷宣言
  20. 志翔科技亮相2022数博会 工业大数据技术支撑电力数智化

热门文章

  1. hadoop 命令合集
  2. 第十二章 C语言调试_调试的概念以及调试器的选择
  3. 关于MES与设备集成方式及注意项目
  4. MATLAB04:基础绘图
  5. 在thinkphp中 结合 支付宝 paypal 财付通
  6. 《设计团队协作权威指南》—第2章2.2节设计师的最佳心态
  7. 服务器上出现应用程序错误customErrors 标记
  8. Linux如何根据PID查找父进程PPid
  9. ModifyMenu 改变菜单项属性的API函数
  10. Qt源码编译configure配置参数