老规矩,直接上加密的源代码
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个 有很大的局限性。这种加密解起来还算简单,就是比较费眼睛。。