Dosazovač kódu

Hamparle

  • ***
  • 186
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Dosazovač kódu
« kdy: 30. 10. 2020, 18:01:47 »
Ne nehledám, zaměstnance (dosazovač/posunovač výhybek), ale nějaký program, který mi dokáže rozlišit/zprůhlednit kód, tak že mi v něm provede dosazení některých zakódovaných výrazů....
Myslím že deobfuskátory jsou nato krátké
Kód: [Vybrat]
//https://affil.xxxzzz.cz/t1.js?v4
var ab_a = ['dcOjwozCtcOqGVc=', 'K8KJwpYMwp3CksKlVw==', 'w6Vxw4pdw5NLJMOBw4o=', 'I3HDucKMZ1Y=', 'w7nDlcKPZHw=', 'wqjDsF8=', 'VH1NwpI/N8Oow7fDrhDCjsO4Vzg=', 'w6bDjsKVaW3Chzwc', 'EsKQwq0/Ww==', 'e3nDvsKZYg==', 'w6N6w49Kw5ZK', 'woAOw5g/XmnDm8KPw4I=', 'wo7Cs8KEM1zDt0gtwpE=', 'w4cOw40x', 'w6rCh8Kpw5jDlcKvwqxs', 'w7/Dj8KSbX/Chz0XwoQ=', 'Ii/DoMOyPsKvw78=', 'ZBoEOcOG', 'CH1NwpoyO8Oow7/DsA==', 'w5jDpsKdAiA=', 'w44ww5w2Tw==', 'wqRnX3xcAkV3', 'wr7DulnDpw==', 'aisVP8OSw5tJecKjwrU=', 'wqnDl8K4w5zDh8KjwrFww4RXbg==', 'R13DuMKVw68=', 'wqdIFSzDgCIQIcOVw4NCDcKY', 'w53Dq8O+Z8Kkw7I8Zm4TJ8KUQ8OUwpFRwoDCjllzTVnDiMKXwrHDjsOS', 'wojCmk/DtMONw5E=', 'bDTDscO5McKnwpM3wrMAw40=', 'wp3ClTFqFig=', 'KMOtwpXCvcKk', 'w6vDvsKVYHjCtQ==', 'w6fCjsKsw6bDiMKi', 'R13DucKSw7Y='];

var ab_b = function(a, b) {
a = a - 0x0;
var c = ab_a[a];
if (ab_b['oruUzh'] === undefined) {
(function() {
var f = function() {
var i;
try {
i = Function('return\x20(function()\x20' + '{}.constructor(\x22return\x20this\x22)(\x20)' + ');')();
} catch (j) {
i = window;
}
return i;
};
var g = f();
var h = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
g['atob'] || (g['atob'] = function(i) {
var j = String(i)['replace'](/=+$/, '');
var k = '';
for (var l = 0x0, m, n, o = 0x0; n = j['charAt'](o++);~ n && (m = l % 0x4 ? m * 0x40 + n : n, l++ % 0x4) ? k += String['fromCharCode'](0xff & m >> (-0x2 * l & 0x6)) : 0x0) {
n = h['indexOf'](n);
}
return k;
});
}());
var e = function(f, g) {
var h = [],
l = 0x0,
m, n = '',
o = '';
f = atob(f);
for (var q = 0x0, r = f['length']; q < r; q++) {
o += '%' + ('00' + f['charCodeAt'](q)['toString'](0x10))['slice'](-0x2);
}
f = decodeURIComponent(o);
var p;
for (p = 0x0; p < 0x100; p++) {
h[p] = p;
}
for (p = 0x0; p < 0x100; p++) {
l = (l + h[p] + g['charCodeAt'](p % g['length'])) % 0x100;
m = h[p];
h[p] = h[l];
h[l] = m;
}
p = 0x0;
l = 0x0;
for (var t = 0x0; t < f['length']; t++) {
p = (p + 0x1) % 0x100;
l = (l + h[p]) % 0x100;
m = h[p];
h[p] = h[l];
h[l] = m;
n += String['fromCharCode'](f['charCodeAt'](t) ^ h[(h[p] + h[l]) % 0x100]);
}
return n;
};
ab_b['IIuRmm'] = e;
ab_b['moZUWs'] = {};
ab_b['oruUzh'] = !! [];
}
var d = ab_b['moZUWs'][a];
if (d === undefined) {
if (ab_b['YNYrdH'] === undefined) {
ab_b['YNYrdH'] = !! [];
}
c = ab_b['IIuRmm'](c, b);
ab_b['moZUWs'][a] = c;
} else {
c = d;
}
return c;
};

//samotny kod
//obsahuje běžnou logiku a spoustu volání funkce ab_b
window[ab_b('0x17', 'qamn')
(ab_b('0x14', '^BIn').

...
} else {
var e = 0x0;
var d = [];
while (ab_b('0x1e', 'jaY9') + e + ']' in a) {
d[e] = a[ab_b('0x20', 't%XE') + e + ']'];
e++;
}
} if (document[ab_b('0x15', 'y#bq')]) {
var f = document['referrer'];
...

Chtělo by to rozklíčovat  volání funknce ab_b, aby se funkce ab_c stala čitelnější.

Existuje nějaké "IDE"/dosazovač/dekompilátor/sandbox/evaluátor, který dokáže interaktivně provádět kód, tak aby bylo možné jednotlivé výrazy vidět po vyhodnocení? Ve formě gui utility, do které dám zdrojový kód a chvíli si s ním budu hrát.

V každém programu lze najít nějaké vzorce chování, někde to je jednoduché


Re:Dosazovač kódu
« Odpověď #1 kdy: 30. 10. 2020, 18:47:30 »
REPL