根据JShaman(JShaman是专业的JavaScript代码混淆加密网站)提供的消息,JavaScript混淆技术大体有以下几种:

  • 变量混淆

将带有JS代码的变量名、方法名、常量名随机变为无意义的类乱码字符串,降低代码可读性,如转成单个字符或十六进制字符串。

  • 字符串混淆

将字符串阵列化集中放置、并可进行 MD5 或 Base64 加密存储,使代码中不出现明文字符串,这样可以避免使用全局搜索字符串的方式定位到入口点。

  • 属性加密

针对 JavaScript 对象的属性进行加密转化,隐藏代码之间的调用关系。

  • 控制流平坦化

打乱函数原有代码执行流程及函数调用关系,使代码逻变得混乱无序。

  • 僵尸代码

随机在代码中插入无用的僵尸代码、僵尸函数,进一步使代码混乱。

  • 调试保护

基于调试器特性,对当前运行环境进行检验,加入一些强制调试 debugger 语句,使其在调试模式下难以顺利执行 JavaScript 代码。

  • 多态变异

使 JavaScript 代码每次被调用时,将代码自身即立刻自动发生变异,变化为与之前完全不同的代码,即功能完全不变,只是代码形式变异,以此杜绝代码被动态分析调试。

  • 锁定域名

使 JavaScript 代码只能在指定域名下执行。

  • 反格式化

如果对 JavaScript 代码进行格式化,则无法执行,导致浏览器假死。

  • 数值常量加密

将数字常量变为运算表达式。

  • JSON数据加密

对JSON数据进行加密。

  • 收缩控制流

将函数中符合条件的多行代码收缩为单行,形成逗号运算符语法。

  • AST执行保护

将某些代码转为AST,即:抽象语法树,代码运行时,直接执行此AST。

以及赋值花指令、正则表达式加密、Eval加密嵌套、虚拟指令等等。

java script源代码 javascript源代码混淆不包括_javascrip混淆

 

JavaScript 混淆技术目的就是使得 JavaScript 变得难以阅读和分析,大大降低代码可读性,使机器能看懂能运行、但人看不懂,是很实用的 JavaScript 保护方案。