关于javascript:JS混淆加密的作用

在软件开发过程中,有时会应用代码混同技术来使代码难以被浏览或破解。这种技术通常被用于避免歹意应用或盗用代码。

在 JavaScript 中,有许多工具能够用来混同代码,例如 Google Closure Compiler、UglifyJS 和 Babel。这些工具会将代码进行压缩和从新排版,并且会应用各种技巧来使代码难以了解。

然而,有时咱们须要解密混同后的代码,例如当咱们想要对代码进行调试或者查看原始代码时。在这种状况下,咱们就须要应用解密工具来帮忙咱们复原原始代码的样子。

一种罕用的 JavaScript 解密工具是 在线JS解密工具。它能够帮忙咱们对混同后的代码进行格式化,使其变得更易读。

上面是一个示例,展现了如何应用 在线JS解密工具解密混同后的 JavaScript 代码。

假如咱们有一段混同后的代码如下所示:

;eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[01]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0 a(b){1 0(){1 b}}0 c(b){1 0(){1 b()}}0 d(b){1 0(){1 b()()}}0 e(b){1 0(){1 b()()()}}0 f(b){1 0(){1 b()()()()}}0 g(b){1 0(){1 b()()()()()}}0 h(b){1 0(){1 b()()()()()()}}0 i(b){1 0(){1 b()()()()()()()}}0 j(b){1 0(){1 b()()()()()()()()}}0 k(b){1 0(){1 b()()()()()()()()()}}0 l(b){1 0(){1 b()()}}',[],2,'function|return'.split('|'),0,{}));

用JS在线解密工具解密后

;
eval(function(p, a, c, k, e, r) {
    e = String;
    if ('0'.replace(0, e) == 0) {
        while (c--) r[e(c)] = k[c];
        k = [
            function(e) {
                return r[e] || e
            }
        ];
        e = function() {
            return '[01]'
        };
        c = 1
    };
    while (c--)
        if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
    return p
}('0 a(b){1 0(){1 b}}0 c(b){1 0(){1 b()}}0 d(b){1 0(){1 b()()}}0 e(b){1 0(){1 b()()()}}0 f(b){1 0(){1 b()()()()}}0 g(b){1 0(){1 b()()()()()}}0 h(b){1 0(){1 b()()()()()()}}0 i(b){1 0(){1 b()()()()()()()}}0 j(b){1 0(){1 b()()()()()()()()}}0 k(b){1 0(){1 b()()()()()()()()()}}0 l(b){1 0(){1 b()()}}', [], 2, 'function|return'.split('|'), 0, {}));

有些加密简单一些的光用工具是无奈间接解密的,所以还须要人工解密,下边是我人工解密后的最终后果

function a(b) {
    return function () {
        return b
    }
}

function c(b) {
    return function () {
        return b()
    }
}

function d(b) {
    return function () {
        return b()()
    }
}

function e(b) {
    return function () {
        return b()()()
    }
}

function f(b) {
    return function () {
        return b()()()()
    }
}

function g(b) {
    return function () {
        return b()()()()()
    }
}

function h(b) {
    return function () {
        return b()()()()()()
    }
}

function i(b) {
    return function () {
        return b()()()()()()()
    }
}

function j(b) {
    return function () {
        return b()()()()()()()()
    }
}

function k(b) {
    return function () {
        return b()()()()()()()()()
    }
}

function l(b) {
    return function () {
        return b()()
    }
}

这就是最终的源代码了。

如果对本有疑难的,欢送大家在评论区中留言,或者给我私信。

如果找不到我人 能够到 jsjiami.com 官网底部找到我的联系方式。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理