我如何明智地解码 eval Javascript
How I decode eval wise Javascript
我想在我的博客网站上使用模板。但是该模板具有由 eval 编码的 js(明智的)...
我不知道如何解码...
代码简单(不是原始代码):
eval(function(w,i,s,e){var lIll=0;var ll1I=0;var Il1l=0;var ll1l=[];var l1lI=[];while(true){if(lIll<5)l1lI.push(w.charAt(lIll));else if(lIll<w.length)ll1l.push(w.charAt(lIll));lIll++;if(ll1I<5)l1lI.push(i.charAt(ll1I));else if(ll1I<i.length)ll1l.push(i.charAt(ll1I));ll1I++;if(Il1l<5)l1lI.push(s.charAt(Il1l));else if(Il1l<s.length)ll1l.push(s.charAt(Il1l));Il1l++;if(w.length+i.length+s.length+e.length==ll1l.length+l1lI.length+e.length)break;}var lI1l=ll1l.join('');var I1lI=l1lI.join('');ll1I=0;var l1ll=[];for(lIll=0;lIll<ll1l.length;lIll+=2){var ll11=-1;if(I1lI.charCodeAt(ll1I)%2)ll11=1;l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll,2),36)-ll11));ll1I++;if(ll1I>=l1lI.length)ll1I=0;}return l1ll.join('');}('','','','3cec1244c096c198fd3597fccab5ca32'));
我的问题是,如何解码这种类型的js?
您可以将函数放入任何 javascript 解释器,以查看传递给 eval
的内容。您只需要将 eval(...)
替换为 console.log(...)
我在这里做的:https://repl.it/repls/LuminousChocolateMallard
似乎生成 eval-ed 代码的代码创建了一个无限循环。
基本上,eval() 是全局对象的函数 属性。
eval() 函数的参数是一个字符串。如果字符串表示一个表达式,则 eval() 计算该表达式。如果参数表示一个或多个 JavaScript 语句,则 eval() 会计算这些语句。不要调用 eval() 来评估算术表达式; JavaScript 自动计算算术表达式。
在您的代码中,您可以使用
删除 eval 并取消缩小您的函数
它将取消您的功能。当我这样做时,我得到了这个。
function(w, i, s, e) {
var lIll = 0;
var ll1I = 0;
var Il1l = 0;
var ll1l = [];
var l1lI = [];
while (true) {
if (lIll < 5) l1lI.push(w.charAt(lIll));
else if (lIll < w.length) ll1l.push(w.charAt(lIll));
lIll++;
if (ll1I < 5) l1lI.push(i.charAt(ll1I));
else if (ll1I < i.length) ll1l.push(i.charAt(ll1I));
ll1I++;
if (Il1l < 5) l1lI.push(s.charAt(Il1l));
else if (Il1l < s.length) ll1l.push(s.charAt(Il1l));
Il1l++;
if (w.length + i.length + s.length + e.length == ll1l.length + l1lI.length + e.length) break;
}
var lI1l = ll1l.join('');
var I1lI = l1lI.join('');
ll1I = 0;
var l1ll = [];
for (lIll = 0; lIll < ll1l.length; lIll += 2) {
var ll11 = -1;
if (I1lI.charCodeAt(ll1I) % 2) ll11 = 1;
l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll, 2), 36) - ll11));
ll1I++;
if (ll1I >= l1lI.length) ll1I = 0;
}
return l1ll.join('');
}('', '', '', '3cec1244c096c198fd3597fccab5ca32');
更多参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
我想在我的博客网站上使用模板。但是该模板具有由 eval 编码的 js(明智的)... 我不知道如何解码...
代码简单(不是原始代码):
eval(function(w,i,s,e){var lIll=0;var ll1I=0;var Il1l=0;var ll1l=[];var l1lI=[];while(true){if(lIll<5)l1lI.push(w.charAt(lIll));else if(lIll<w.length)ll1l.push(w.charAt(lIll));lIll++;if(ll1I<5)l1lI.push(i.charAt(ll1I));else if(ll1I<i.length)ll1l.push(i.charAt(ll1I));ll1I++;if(Il1l<5)l1lI.push(s.charAt(Il1l));else if(Il1l<s.length)ll1l.push(s.charAt(Il1l));Il1l++;if(w.length+i.length+s.length+e.length==ll1l.length+l1lI.length+e.length)break;}var lI1l=ll1l.join('');var I1lI=l1lI.join('');ll1I=0;var l1ll=[];for(lIll=0;lIll<ll1l.length;lIll+=2){var ll11=-1;if(I1lI.charCodeAt(ll1I)%2)ll11=1;l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll,2),36)-ll11));ll1I++;if(ll1I>=l1lI.length)ll1I=0;}return l1ll.join('');}('','','','3cec1244c096c198fd3597fccab5ca32'));
我的问题是,如何解码这种类型的js?
您可以将函数放入任何 javascript 解释器,以查看传递给 eval
的内容。您只需要将 eval(...)
替换为 console.log(...)
我在这里做的:https://repl.it/repls/LuminousChocolateMallard
似乎生成 eval-ed 代码的代码创建了一个无限循环。
基本上,eval() 是全局对象的函数 属性。
eval() 函数的参数是一个字符串。如果字符串表示一个表达式,则 eval() 计算该表达式。如果参数表示一个或多个 JavaScript 语句,则 eval() 会计算这些语句。不要调用 eval() 来评估算术表达式; JavaScript 自动计算算术表达式。
在您的代码中,您可以使用
删除 eval 并取消缩小您的函数它将取消您的功能。当我这样做时,我得到了这个。
function(w, i, s, e) {
var lIll = 0;
var ll1I = 0;
var Il1l = 0;
var ll1l = [];
var l1lI = [];
while (true) {
if (lIll < 5) l1lI.push(w.charAt(lIll));
else if (lIll < w.length) ll1l.push(w.charAt(lIll));
lIll++;
if (ll1I < 5) l1lI.push(i.charAt(ll1I));
else if (ll1I < i.length) ll1l.push(i.charAt(ll1I));
ll1I++;
if (Il1l < 5) l1lI.push(s.charAt(Il1l));
else if (Il1l < s.length) ll1l.push(s.charAt(Il1l));
Il1l++;
if (w.length + i.length + s.length + e.length == ll1l.length + l1lI.length + e.length) break;
}
var lI1l = ll1l.join('');
var I1lI = l1lI.join('');
ll1I = 0;
var l1ll = [];
for (lIll = 0; lIll < ll1l.length; lIll += 2) {
var ll11 = -1;
if (I1lI.charCodeAt(ll1I) % 2) ll11 = 1;
l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll, 2), 36) - ll11));
ll1I++;
if (ll1I >= l1lI.length) ll1I = 0;
}
return l1ll.join('');
}('', '', '', '3cec1244c096c198fd3597fccab5ca32');
更多参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval