JS 混同加密是一种用于爱护 JS 代码的技术,它可能将代码变得难以了解和批改,从而进步代码的安全性。然而,当咱们须要批改和保护这些代码时,咱们就会面临艰难。因而,在某些状况下,咱们须要解这些 JS 代码。
上面,我将给大家介绍一些 JS 混同加密的罕用技术,并提供一个案例代码以供参考。然而,我心愿大家留神到,解别人的代码可能会进犯别人的权利,因而请确保您领有非法的使用权。
JS 混同加密的罕用技术:
- 变量名混同:将代码中的变量名替换为更难以了解的名称,例如
_0x2c97
。 - 字符串加密:将字符串转换为字符编码模式,例如将字符串
"hello"
转换为"\x68\x65\x6c\x6c\x6f"
。 - 函数名称加密:将函数名称替换为更难以了解的名称,例如
_0x353b6a
。 - 代码重构:将代码中的函数调用、循环、判断等构造进行重构,使其变得更难以了解。
以下是一个案例代码:
var _0x2c97 = ['\x61\x70\x70\x6c\x79', '\x62\x61\x73\x65\x36\x34', '\x64\x65\x63\x72\x79\x70\x74', '\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'];
(function(_0x2ec8, _0x36506f) {var _0x353b6a = function(_0x32cb4f) {while (--_0x32cb4f) {_0x2ec8['push'](_0x2ec8['shift']());
}
};
_0x353b6a(++_0x36506f);
}(_0x2c97, 0x6a));
var _0x353b6a = function(_0x2ec8, _0x36506f) {
_0x2ec8 = _0x2ec8 - 0x0;
var _0x32cb4f = _0x2c97[_0x2ec8];
return _0x32cb4f;
};
_0x353b6a['decrypt'] = function(_0x32cb4f) {return window[_0x2c97[2]](unescape(encodeURIComponent(_0x32cb4f)));
};
_0x353b6a['base64'] = function(_0x32cb4f) {return window[_0x2c97[3]](window[_0x2c97[2]](unescape(encodeURIComponent(_0x32cb4f))));
};
_0x353b6a['fromCharCode'] = function(_0x32cb4f) {return window[_0x2c97[
2. 主题是 js 混同加密
这段代码中,变量名和函数名都被混同了,例如 _0x2c97
和_0x353b6a
。此外,还应用了字符串加密和代码重构等技术,使得代码更加难以浏览和了解。然而,如果咱们须要批改和保护这段代码,就须要对其进行解。
解这段代码的办法也比较简单,只须要将混同的变量名和函数名替换为更易读的名称,例如 apply
、base64
等,再将字符串加密的内容进行解码,就能够失去原始的 JS 代码。
上面是解后的代码:
var methods = ['apply', 'base64', 'decodeURIComponent', 'fromCharCode'];
(function(obj, index) {var rename = function(num) {while (--num) {obj['push'](obj['shift']());
}
};
rename(++index);
}(methods, 0x6a));
var decodeURIComponent = function(obj, index) {
obj = obj - 0x0;
var num = methods[obj];
return num;
};
decodeURIComponent['decrypt'] = function(str) {return window['decodeURIComponent'](unescape(str));
};
decodeURIComponent['base64'] = function(str) {return window['btoa'](window['unescape'](encodeURIComponent(str)));
};
decodeURIComponent['fromCharCode'] = function(str) {return String['fromCharCode'](str);
};
通过解,咱们能够看到这段代码中定义了三个函数,别离是 decrypt
、base64
和fromCharCode
。其中,decrypt
函数用于解字符串,base64
函数用于将字符串转换为 base64 编码,fromCharCode
函数用于将编码转换为字符。
总结
JS 混同加密是一种罕用的技术,它可能爱护 JS 代码,但也减少了代码的浏览和保护难度。如果须要解这些代码,咱们能够通过替换变量名和函数名,以及解码字符串的形式来实现。但须要留神,解别人的代码可能会进犯别人的权利,所以请确保您领有非法的使用权。