2

卑劣な拡張機能の開発者が拡張機能にバックリンクをハードコーディングしたため、クライアントの Web サイトが「給料日ローン」の Web サイトにリンクしています。

これは謎のスクリプトです:

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();

それが何をするのかを調べようとしたとき、私はjsfiddleを使って不足しました。ここで起こっていることをリバース エンジニアリングするにはどうすればよいですか?

4

3 に答える 3

5

returnsの代わりにdocument.writesになるように関数を変更するだけです。

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

結果は次のとおりです。

"<style undefined>.dnn{position:absolute;top:-9999px}</style>"

その配列には1つの値がありませんが、それほど重要ではないと思います。

于 2013-03-06T02:19:10.067 に答える
1

これがそのjsfiddleです:http://jsfiddle.net/sB3Se/

それは書いています:

<style undefined>.dnn{position:absolute;top:-9999px}</style> 
于 2013-03-06T02:20:07.857 に答える
0

x[3]代わりにすべきだと思いますx[4]

document.writeコードの前に、 console.log(x);x の値を Google Chrome、Safari、Firefox などの最新のブラウザーのコンソールに記録するために使用できます。

その結果、次のように出力されます。

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

あとはご自分で考えていただければと思います。

于 2013-03-06T02:24:09.793 に答える