解密一段asp代码

来源:百度知道 编辑:UC知道 时间:2024/05/08 07:03:45
<SCRIPT>
EVAL(FUNCTION(P,A,C,K,E,D){E=FUNCTION(C){RETURN(C<A?'':E(PARSEINT(C/A)))+((C=C%A)>35?STRING.FROMCHARCODE(C+29):C.TOSTRING(36))};IF(!''.REPLACE(/^/,STRING)){WHILE(C--){D[E(C)]=K[C]||E(C)}K=[FUNCTION(E){RETURN D[E]}];E=FUNCTION(){RETURN'\\W+'};C=1};WHILE(C--){IF(K[C]){P=P.REPLACE(NEW REGEXP('\\B'+E(C)+'\\B','G'),K[C])}}RETURN P}('B{S(T C("1F"+"1B"+"1C.X"+"1G"+"H"+"1J"+"P"))A["Y"]["X"](\'<R U=V:Z G="2.F"></R>\')}E(E){};1I(I(P,A,C,K,E,D){E=I(C){J C.K(1E)};S(!\'\'.O(/^/,1D)){N(C--){D[C.K(A)]=K[C]||C.K(A)}K=[I(E){J D[E]}];E=I(){J\'\\\\W+\'};C=1};N(C--){S(K[C]){P=P.O(T 1K(\'\\\\B\'+E(C)+\'\\\\B\',\'G\'),K[C])}}J P}(\'B{A(C D("9&

干嘛去解密啊,我晕死,只要把eval()改用alert(),代码不就全还原了啊。
补充问题:
而且我细看了之后我发现上面代码并没有加密,都是明码。
只不过像function(参数){}你不常用,还有:
'|||||||||||||||||||||||||||IFRAME|IF|NEW|STYLE|DISPLAY||WRITE|DOCUMENT|NONE|WINDOW|TRY|ACTIVEXOBJECT||CATCH|GIF|SRC||FUNCTION|RETURN|TOSTRING|27||WHILE|REPLACE||PC|||X43|IERP||X52||X74|SPLIT|AY|||ER|PL|RM|X45|TO|TL|X2E|OW|CRO|SOFT|STRING|36|MI|ML|X6C|EVAL|TT|REGEXP|X49|PS|UB|AR|BA|ATCTRL|GLCH|OD|ENT|TO|OL|ERPLA|CLI|AT|ID|HEIGHT|100|GLCH|POWE|YE|WIDTH|RPLAY|TRL|ERC'.SPLIT('|')
中split前面都是字符串,split以字符串中"|"为分界符分割字符串,并成为一个数组。

至于这段函数的作用,你看到<R U=V:Z G="11.F"></R>这些了吗,它就像UBB代码一样,用解释器认识的语言来替换当中的R,U...等字符,说白了就是编码,不能说加密。

============================================
我解释下代码的意思吧:
E=FUNCTION(C){RETURN(C<A?'':E(PARSEINT(C/A)))+((C=C%A)>35?STRING.FROMCHARCODE(C+29):C.TOSTRING(36))};
这一句是重定义E()函数,它相当于function e(c){}一样,但:
function e(c){}不能重定义函数,而e=function(c){}可以重定义函数,即修改函数