表哥,你也不想你扣的算法和网页上的结果对比不一致吧

查看 27|回复 2
作者:nangongxt07   
我们先来看一段简单的代码
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化,可想而知,找这个检测点的找多久啊,所以我们平时扣算法的时候能不格式化就不要格式化.

算法, 代码

moka518   

这个有意思,容易失控,到时候自己我不知道哪个地方错了
a13389809   

长知识了。 这肯定又是大佬在某个厂子看到的,偷偷分享一下。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部