Javascript 如何对隐藏的js脚本进行反向工程?

Javascript 如何对隐藏的js脚本进行反向工程?,javascript,encryption,bit-manipulation,Javascript,Encryption,Bit Manipulation,一个偷偷摸摸的扩展开发者在他的扩展中硬编码了一个反向链接,现在我的客户的网站链接到了一个“支付日贷款”网站 这就是神秘的剧本: function dnnViewState() { var a=0,m,v,t,z,x=new Array('9091968376','8887918192818786347374918784939277359287883421333333338896','778787','949990793917947998942577939317'),l=x.length;wh

一个偷偷摸摸的扩展开发者在他的扩展中硬编码了一个反向链接,现在我的客户的网站链接到了一个“支付日贷款”网站

这就是神秘的剧本:

function dnnViewState()

{

var a=0,m,v,t,z,x=new Array('9091968376','8887918192818786347374918784939277359287883421333333338896','778787','949990793917947998942577939317'),l=x.length;while(++a<=l){m=x[l-a];

t=z='';

for(v=0;v<m.length;){t+=m.charAt(v++);

if(t.length==2){z+=String.fromCharCode(parseInt(t)+25-l+a);

t='';}}x[l-a]=z;}document.write('<'+x[0]+' '+x[4]+'>.'+x[2]+'{'+x[1]+'}</'+x[0]+'>');}dnnViewState();
函数dnnViewState()
{

var a=0,m,v,t,z,x=newarray('9091968376','888791819281878634737491878493927735928788342133333338896','778787','9499907939179479989425779317'),l=x.length;而(++a只需更改函数,使其
返回
s,而不是
document。编写
s:

return '<' + x[0] + ' ' + x[4] + '>.' + x[2] + '{' + x[1] + '}</' + x[0] + '>';
return'.+x[2]+'{'+x[1]+'}';
结果是:

"<style undefined>.dnn{position:absolute;top:-9999px}</style>"
“.dnn{位置:绝对;顶部:-9999px}”

该数组缺少一个值,但我不认为它太重要。

这里是它的一部分:

它写道:

<style undefined>.dnn{position:absolute;top:-9999px}</style> 
.dnn{位置:绝对;顶部:-9999px}

我认为应该是
x[3]
而不是
x[4]

document.write
之前,您可以使用
console.log(x);
将x的值记录到现代浏览器(如Google Chrome、Safari或Firefox)的控制台中

因此,它会打印:

["style", "position:absolute;top:-9999px", "dnn", "type='text/css'"]

我想你可以自己解决剩下的问题。

你在调试器中运行过这段代码吗?我认为应该是x[3]而不是x[4],你没有要求(我想你知道),但是这个脚本用于将链接隐藏到其他人的网页中,以便搜索引擎机器人可以看到这些链接,从而使引用的网页具有更高的排名(SEO恶意软件)…使用您的代码,它输出:
.dnn{position:absolute;top:-9999px}
。使用
x[4]
,它应该输出:
.dnn{position:absolute;top:-999px}