var Test =function(){return"Test";}
var get_func_length=function(){
return Test.toString().length;
}
console.log(get_func_length())
请注意Test函数是没有格式化的代码
他的输出结果是25
但是当我们格式化了Test函数之后他就变成了36
也许看到这,你可能会想到格式化的检测,但是他不仅仅可以用于格式化检测
我们继续看下面的代码
var target=25;
var Test = function(){return"Test";}
var get_func_length=function(){
return Test.toString().length;
}
console.log(get_func_length());
function get_key() {
if (get_func_length() === target) {
return "正确的key";
} else {
return "错误的key";
}
}
console.log(get_key());
假设这个get_key函数是我们获取某个算法的key或者盐值或者iv,当我们把代码扣出来格式化后放在我们本地运行时,他就会返回错误的key值,导致我们这个算法加密的结果与网页上面的不一致,这就是蜜罐,你看似对了,实则只不过是别人给你设置的陷阱,想让你跳进去的坑,由于我这个是简单的代码,并没有经过高度的混淆处理以及vmp化,如果我额外的对代码进行了混淆以及vmp化,可想而知,找这个检测点的找多久啊,所以我们平时扣算法的时候能不格式化就不要格式化.