Tom*_*Tom 2 javascript encryption bit-manipulation
一个偷偷摸摸的扩展开发者在他的扩展中硬编码了反向链接,现在我的客户的网站链接到"发薪日贷款"网站.
这是神秘的剧本:
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();
Run Code Online (Sandbox Code Playgroud)
当我试图找出它的作用时,我发现了使用jsfiddle.如何对这里发生的事情进行逆向工程?
只需更改函数,使其return代替document.writes:
return '<' + x[0] + ' ' + x[4] + '>.' + x[2] + '{' + x[1] + '}</' + x[0] + '>';
Run Code Online (Sandbox Code Playgroud)
结果是:
"<style undefined>.dnn{position:absolute;top:-9999px}</style>"
Run Code Online (Sandbox Code Playgroud)
该数组缺少一个值,但我认为它不太重要.