JavaScript 不可逆加密问题排查之方案一(闭包优化)
关于本站的不可 JS逆加密(最牛加密)最近老有同学加密后用不了,主要是不会配置。
JavaScript 最牛加密链接:https://www.sojson.com/jsobfuscator.html
JavaScript加密后错误案例分析
代码如下:
var Demo = function() {
this.abc = function() {
return "demo";
}
};
//创建对象
var a = new Demo();
//调用对象
a.abc();//返回 "demo"
如果选择了加强选项中的【变量规则混淆】,加密 · 高级配置的【函数&变量名全重命名】和【A级保护】。
上面的 JavaScript 代码加密后运行,使用a的话,会提示 a 提示 undefined
或者 xxxx is not defined
。
改造一下上面的代码
方案一:
(function(w) {
var a={};
a.abc = function() {
return "demo";
}
w.a = a;
})(window);
调用abc方法:
a.abc();//返回 "demo"
方案二:
//这个不能去加密
var a={};
//下面的代码加密,会识别a不能加密
(function(e) {
e.abc = function() {
return "demo";
}
})(a);
调用abc方法:
a.abc();//返回 "demo"
方案三:
是在不想改代码,就提升变量名或者方法名的作用域。简单来讲,就是去掉 var
标识。
var Demo = function() {
this.abc = function() {
return "demo";
}
};
//去掉var后,加密工具会识别。
a = new Demo();
如果是方法(函数)找不到了。参考下面的修改方案。
//原函数,加密后找不到
function method1(){
}
//修改方案1 把method1提升到全局变量
method1 = function(){
}
//修改方案2 把method1绑定到window上
window.method1 = function(){
}
其实就是把变量名或者函数名提升到了全局变量,或者把变量绑定到全局变量上,就解决了。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/327.html
转载时必须以链接形式注明原始出处及本声明。
本文主题:
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。