【一】什么是Ob混淆
- OB 混淆是指将 JavaScript 代码中的变量名、函数名、字符串等替换为无意义的字符串,从而增加代码的保护性和防止代码的逆向分析。
- 此外,它还可以在代码中添加死代码、无用的函数等,增加代码的复杂度和难以理解性,从而增加代码的保密性。
【二】Ob混淆演示
【1】原始代码
function hi() {
console.log("Hello World!");
}
hi();
【2】混淆代码
var _0x30bb = ['log', 'Hello\x20World!']; //列表元素(被混淆的真实代码部分)也有可能会被base64等机制编码
//该函数是将_0x30bb列表进行了元素进行了移位,将列表变为了['Hello\x20World!','log']
(function (_0x38d89d, _0x30bbb2) {
var _0xae0a32 = function (_0x2e4e9d) {
while (--_0x2e4e9d) {
_0x38d89d['push'](_0x38d89d['shift']());
}
};
_0xae0a32(++_0x30bbb2);
}(_0x30bb, 0x153)); //在浏览器Console中加载执行该自运行函数后,打印_0x30bb列表查看移位结果
//该函数为解密函数(用来还原真实的代码)
var _0xae0a = function (_0x38d89d, _0x30bbb2) {
_0x38d89d = _0x38d89d - 0x0;
var _0xae0a32 = _0x30bb[_0x38d89d];
return _0xae0a32;
};
//ob混淆的js代码
function hi() {
console[_0xae0a('0x1')](_0xae0a('0x0'));
//使用_0xae0a函数还原代码:_0xae0a('0x1')还原为了log,因此在OB混淆中该函数使用的频率最高。
}
hi();
标签:function,混淆,0xae0a,代码,Ob,Js,0x30bb,2.0,0x38d89d
From: https://www.cnblogs.com/dream-ze/p/17768527.html