当前位置:   article > 正文

JS混淆基本类型和原理_js 常见混淆方式

js 常见混淆方式

常见JS混淆技术解析

JavaScript(JS)混淆是一种技术手段,用于保护源代码不被轻易理解或篡改。在Web开发中,混淆可以增加代码的安全性,但也给逆向工程带来了挑战。以下是几种常见的JS混淆技术及其解析方法。

1. eval混淆

技术描述
eval函数可以执行其参数作为JS代码。这使得开发者可以将代码作为字符串传递给eval,从而实现混淆。

混淆示例

eval("var a = 'Hello, ' + 'World!';");
  • 1

解析方法

  • 识别eval函数调用。
  • 尝试提取并分析eval内的代码字符串。
  • 考虑使用工具来自动解析和重构eval内的代码。
2. AA混淆

技术描述
AA混淆通常指使用ASCII字符的特定模式进行混淆,如将变量名替换为ASCII码。

混淆示例

var _0x4c41 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var a = _0x4c41[2] + 'BC';
  • 1
  • 2

解析方法

  • 识别ASCII模式的混淆。
  • 将混淆后的变量名转换回可读的字符。
  • 手动或使用工具将代码重构为原始形式。
3. OO混淆(面向对象混淆)

技术描述
面向对象混淆通过封装和继承的方式隐藏代码逻辑,使得代码结构复杂难以理解。

混淆示例

var _0x2b4f = function() {};
_0x2b4f.prototype = {
  sayHello: function() {
    console.log('Hello');
  }
};
var obj = new _0x2b4f();
obj.sayHello();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

解析方法

  • 理解面向对象的封装和继承机制。
  • 分析原型链和对象之间的关系。
  • 重构代码以清晰展示类和对象的交互。
4. OB混淆

技术描述
OB混淆(One-Time-Pad)是一种加密技术,通过将代码与随机数结合,使得每次混淆后的代码都不同。

混淆示例

var _0x1f4b = ['\x68\x65\x6c\x6c\x6f'];
for (var _0x45b3 = 0; _0x45b3 < _0x1f4b.length; _0x45b3++) {
  eval(_0x1f4b[_0x45b3] + ' = ' + _0x1f4b[_0x45b3]);
}
  • 1
  • 2
  • 3
  • 4

解析方法

  • 识别OB混淆模式,通常结合eval使用。
  • 尝试找到解密的密钥或模式。
  • 使用逆向工程技巧手动或自动解密混淆代码。
5. Fuckjs混淆

技术描述
Fuckjs混淆是一种激进的混淆技术,通过使用不常见的字符和编码方式,使得代码几乎不可读。

混淆示例

var 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/809155
推荐阅读
相关标签