居然有单个首字母混淆的JS加密

75 阅读1分钟

老规矩,直接上加密的源代码

function g(A, B, C) {
    var P = L;
    C(e[A[P(0x1db)]]);
}
function h(A, B, C) {
    var Q = L;
    if (A['key'] == Q(0x1eb) && A[Q(0x1ee)] != null) {
        if (!A[Q(0x1ee)][Q(0x1a7)]) A[Q('0x1ee')][Q('0x1a7')] = B[Q(0x1d0)]['id'];
    }
    e[A['key']] = A['value'],
        C != null && C();
}
function i(A, B, C) {
    var R = L,
        D = d[A[R('0x1db')]];
    if (D && D != '' && D[R('0x1b2')](0x0, 0x1) == '{') C(JSON[R(0x1ef)](D));
    else C(D);
}
function j(A, B, C) {
    var S = L;
    d[A[S(0x1db)]] = A[S(0x1ee)],
        C(A['value']);
}
function k(A, B, C) {
    var T = L,
        D = decodeURIComponent(A[T('0x1ae')]);
    chrome[T(0x1e3)]['executeScript'](B[T(0x1d0)]['id'], {
        'code': D,
        'allFrames': !![]
    }),
        C({});
}

解密后

function getAryCal(prm, obj, ref) {
    ref(cache[prm.key]);
}
​
function setLocalSCur(prm, obj, ref) {
    if (prm.key == "CurrentOrder" && prm.value != null) {
        if (!prm.value.tabId) {
            prm.value.tabId = obj.tab.id;
        }
    }
​
    cache[prm.key] = prm.value;
    ref != null && ref();
}
​
function getLocalSJsonCal(prm, obj, ref) {
    var value = localS[prm.key];
​
    if (value && value != '' && value.substr(0, 1) == '{') {
        ref(JSON.parse(value));
    } else {
        ref(value);
    }
}
​
function setLocalSCal(prm, obj, ref) {
    localS[prm.key] = prm.value;
    ref(prm.value);
}
​
function execInputCode(prm, obj, ref) {
    var code = decodeURIComponent(prm.inputScript);
    chrome.tabs.executeScript(obj.tab.id, {
        'code': code,
        'allFrames': true
    });
    ref({});
}

关键点

第一次见到用单个的A-Za-z来做混淆的加密方法,这种方法很危险,因为字母就26个 有很大的局限性。这种加密解起来还算简单,就是比较费眼睛。。

有需要的到www.jsjiami.com联系我 底部有我联系方式

1.png