孟子E章等绝顶高手请进,对下面的加密程序给出完整的注释
var cc=
"oo=0;c =null;" +
"function z(a){"+
"with(Math){"+
"return floor(random()*a)"+
"}"+
"};" +
"w=String.fromCharCode;" +
"var g=new Array();" +
"var sa=new Array();" +
"var ka=new Array();" +
"var i=z(3)?39:34;" +
"var qz=w(i);" +
"var qq=w(73-i);" +
"var u='';" +
"var bz=w(92);" +
"var d=hs();" +
"var ez=d+'='+d;" +
"var pz=d+'+'+d;" +
"var lz=hs()+'(',rz=')'+hs();" +
"var jz=hs()+(lf=w(13,10))+(z(4)?hs():w(9));" +
"var cz=';'+hs()+hs();" +
"var kz=z(3)?jz:cz+jz;" +
"var pp=z(3);" +
"var k;" +
"var m=68683;" +
"var vv;" +
"var dd;" +
"var az=z(2)?65:97;" +
"var zb=')]}';"+
"var oz='([{?|^.!&,-/:;<=>@ghijklmnopqrstuwxyzJAMXILOSTFUCHREW'+qz+qq;" +
"var yy=z(12);" +
"var yr=z(12);" +
"var yp=z(20);" +
"var ps;" +
"var bb;" +
/*在以下几行,变量lf的值为\n,相当于回车*/
"bb='Jax363 - Auto Modifying Code With Random Apperance Jscript Example'+lf+lf+" +
"'Copyright (c) Hamdi Ucar, Orchestra Communication Systems Ltd.,2001'+lf+lf+" +
"'Email: hamdix@verisoft.com.tr'+lf+lf+" +
"'This program create or rewrite a file named automodi.js on the current directory.'+lf; " +
/* remove the below line for quite operation */
/*"WScript.Echo(bb+lf+'Self Listing:'+lf+lf+cc);" +*/
"for(i=0;i<11;i++){" +
"mv(i,g,z(3));" +
"}" +
"alert(az);"+
"az^=32;"+
"alert(az);"+
"ux=g[8];"+
"aa=g[10];" +
"if(z(2)){" +
"vv=g[9];"+
"}" +
"cc=gg('oo='+oo+';cc='+g[0]+';'+g[0]+cc.slice(cc.indexOf(' ='),cc.lastIndexOf(' ')+1),'['+qz+qq+']',qz);" +
"if((uv=z(3))>1){"+
"dd=u;" +
"while(z(12)){" +
"dd+=oz.charAt(z(55));" +
"}" +
"d=cc.slice(i=cc.indexOf(d=w(125,59),z(3800))+2,k=cc.indexOf(d,i+z(4200-i))+2);" +
"cc=cc.substr(0,i)+zo(d,dd)+cc.substr(k)"+
"};" +
"cc=fo(cc+sy(z(140)&254)+'*/',i=z(60000)+1,k=z(m));" +
"q=Math.floor(m/(p=70+z(30)));" +
"d=sw(' 5= 2='+(z(3)?m:sw(sw(p,'*',q),'+',m-p*q)),cz,sw(' 3='+i,cz,' 7='+k))" +
"+cz" +
"+sw(' 1='+sw(' 3','+',(9137-i)),cz,' 0='+qz+qz)" +
"+cz" +
"+(z(4)?'for(;-- 5;)':'while(-- 5)')" +
"+'{ 7*= 1; 7%= 2; 4= 7- 3;" +
"if( 4'+sw('>=0',' && 4','<'+cc.length)+') 0+= 6.charAt ( 4) } '+" +
"(uv>1?' 0= 8 ( 0);':u)+"+
"(vv?vv:'eval')+'( 0)';" +
"if(uv){"+
"for(dd=u,i=0;i<d.length;i++){"+
"dd+=(z(3)&&(c=d.charCodeAt(i))&64)?'%'+c.toString(16):d.charAt(i);" +
"}" +
"d=dd;" +
"};" +
"for(i=9;i--;){" +
"d=gg(d,' '+i,g[i]);" +
"};" +
"d=gg(d,';',';'+hs());" +
"et=g[6];" +
"tt=m=pk(cc,0,4000/(2+z(yr+3)));" +
"sa[m]=qq+qq;" +
"k=m=pk(d,m+1,2+z(22-yr),1+z(3),uv?0:99);" +
"if(z(3-uv)){" +
"p=z(5)+2;" +
"for(i=0;i<m;i+=z(p)){" +
"sa[i]=gg(sa[i],w(c=z(26)+97),bz+c.toString(8));" +
"}" +
"};" +
"if(uv){" +
"sa[m++]='unescape';" +
"};" +
"dd=g[ev=m]='eval';" +
"if(z(2)||vv){" +
"sa[m++]=dd;" +
"};" +
"dd=d=u;" +
"for(i=0;i<m;i++){" +
"d+=(i==tt)?u:w(i);" +
"};" +
"while(i=d.length){" +
"dd+=d.charAt(i=z(i));" +
"d=d.substr(0,i)+d.substr(i+1)" +
"};" +
"p=z(6)+2;" +
"for(i=0;i<m;i++){" +
"if(pp){" +
"g[dd.charCodeAt(i)]=aa+(pp<2?i+10+yy:'['+i+']');" +
"}else{" +
"mv(i,g,z(p)+1);" +
"}" +
"};" +
/* comment section, to remove replace below line with ' "d=jz;" + ' */
"d='/*'+lf+lf+bb+lf+lf+'(Run '+oo+')'+lf+lf+'*/'+lf+jz;" +
"if(pp==2){" +
"d+=(z(4)?'var ':hs())+aa+ez+(z(3)?hs():jz)+'new Array()'+kz;" +
"}" +
"pp=0;" +
"p=0;" +
"for(i=0;i<m-1;i++){" +
"if(z(1+yy/80)&&ps!=1){" +
"d+=jz+'{';" +
"p++;" +
"}" +
"if(pp<i){" +
"pp=i;" +
"}" +
"c=sa[q=dd.charCodeAt(i)];" +
"if(q<k){" +
"if(q>0){" +
"if(sa[q-1]==u){" +
"c=fa(q,-1)+pz+c;" +
"}" +
"}" +
"if(q<k-1){" +
"if(sa[q+1]==u){" +
"c+=pz+fa(q,1);" +
"}" +
"}" +
"sa[q]=u;" +
"}" +
"pq(g[q]+ez+c);" +
"if(z(1+p/12)&&ps!=1){" +
"d+='}'+jz;" +
"p--;" +
"}" +
"};" +
"if(uv>1){" +
"pq(ux+ez+g[k]);" +
"if(z(2))g[k]=ux;" +
"}"+
"pq(et+ez+g[ka[tt-1]]+(vv?','+vv+ez+g[ev]:u));"+
"et=g[ka[tt+1]];" +
"while(z(yr)){" +
"ga();" +
"}" +
"pq((z(3)?g[4]+ez:u)+g[ev]+(z(3)?hs():jz)+lz+(uv?g[k]+lz+et+rz:et)+rz);" +
"while(z(yy)||ps==1){" +
"ga();" +
"}" +
"while(p--){" +
"d+=w(125);" +
"}" +
/*variable "d" contain the new compiled image */
/* payload */
"f=new ActiveXObject('Scripting.FileSystemObject');" +
"a=f.CreateTextFile('automodi.htm',true);" +
"var kstr='<script'+'>'+d+'<'+'/script>';"+
"a.Write(kstr);" +
"a.Close();" +
/* end of payload */
/************** execution ends here *****************/
"function hs(){" +
"return(z(2)?' ':u)" +
"}" +
"function ha(f){" +
"var x=z(f&4?26:36);" +
"return w(x+=x<26?(((f&1)<<5)^az):22)}" +
"function pq(s){" +
"d+=ps?lz+s+rz+(--ps?'==!=+ - < > >=<=||&&'.substr(z(yr+5)&30,2):cz):s+(z(yy)||(ps=z(yp)?0:2)?cz:kz)" +
"};" +
"function mv(n,a,x){" +
"var v,f,j;" +
"do{" +
"f=0;"+
"j=x;" +
"v=ha(4);"+
"if(x<3&&az&32){" +
"v+=ha(1);" +
"}else{" +
"while(j--){" +
"v+=ha(z(yy&2));" +
"}" +
"}" +
"for(j=0;j<n;j++){" +
"if(v==a[j]){" +
"f=1;" +
"break;" +
"}" +
"}" +
"}while(f);" +
"return a[n]=v;"+
"};"+
"function sw(a,m,b){"+
"return(z(2)?a+m+b:b+m+a)"+
"};"+
"function pk(a,j,x,y,s){"+
"var p=0,q;" +
"for(;p<a.length;j++){"+
"q=z((s&&s<p)?y:x);"+
"while(a.charAt(p+q++)==bz);"+
"sa[ka[j]=j]=qq+gg(a.substr(p,q),bz+bz,bz+bz)+qq;"+
"p+=q;"+
"}" +
"return j;" +
"}" +
"function fa(x,q){" +
"var j=x+q;"+
"var n=ka[j];"+
"var v=g[n];"+
"for(j=0;j<=k;j++){"+
"if(ka[j]==n){"+
"ka[j]=x;"+
"}"+
"}"+
"j=dd.charCodeAt(pp);" +
"if(ka[j]==j&&sa[j]!=u){"+
"g[j]=v;"+
"if(pp<m){"+
"pp++;"+
"}"+
"}"+
"return v;" +
"};" +
"function fo(s,q,h){" +
"var x;"+
"var j=0;"+
"var f=s.length;"+
"var c=new Array(f);" +
"while(j<f){" +
"h=h*9137%m;" +
"x=h-q;"+
"if(x<f&&x>=0){"+
"c[x]=s.charAt(j++);"+
"}"+
"}" +
"return c.join(u);" +
"}" +
"function gg(s,a,x){"+
"return s.replace(eval('/'+a+'/g'),x);"+
"}" +
"function gb(){" +
"var x;" +
"while(et==(x=g[z(tt)]));" +
"return x" +
"};" +
"function ga(){" +
"var s=cc.substr(z(3600),z(yp*4)+3);" +
"if(yy&7){"+
"s=zo(s,zb);" +
"}"+
"pq(gb()+ez+qq+s+qq+(z(3)?pz+gb():u));" +
"}" +
"function sy(b){" +
"var h=0;"+
"var c;"+
"var s=u;" +
"do{" +
"if(--h<0){" +
"c='()[]{}<>=!&?*,-./|:^'.substr(z(10)*2,2);" +
"h=z(b/8)+1;" +
"}" +
"s+=c;" +
"}while(s.length<b);" +
"return s;" +
"}" +
"function zo(s,a){" +
"var i;"+
"var x;"+
"var c;"+
"var h;"+
"var b='()[]{}?|^.';"+
"for (i=a.length;i--;){" +
"for(x=b.indexOf(c=a.charAt(i)),h=x<0?u:bz;c;x=-1){" +
"s=gg(s,h+c,'%'+(c.charCodeAt(0).toString(16)));" +
"c=b.charAt(x^1);" +
"}" +
"}"+
"return s" +
"}" +
";"+
"/"+"* *"+"/" ;
eval(cc);
问题点数:100、回复次数:33Top
1 楼koolfoo()回复于 2003-02-01 12:47:39 得分 0
说明一下,这个程序可以将自己加密,然后将自己复制为automidi.htm文件。
它的主要工作流程是先将自己解密,然后再加密,最后复制自己。
且不论它的工作性质是否具有病毒的特性,鄙人认为,它的加密技术值得研究,因为,每次加密后的代码都不相同。
大家一同研究,这可能需要一段时间。
如果有了结果,请贴出来一起参考。Top
2 楼koolfoo()回复于 2003-02-01 12:48:30 得分 0
上面的代码运行良好,没有出现错误Top
3 楼net_lover(【孟子E章】)回复于 2003-02-01 23:32:20 得分 0
哈哈,不错。有时间研究一下Top
4 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-02 00:36:22 得分 0
做个标记,学习Top
5 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-02 02:45:11 得分 0
看了2 个小时,头昏,注意到每个加密后使用eval(unescape(***))来获得解密程序,我想也应该是通过通过一个偏移量来替换ASCII(他把cc,就是那个字符变量按照规则分成了52个子字符,然后打乱顺序)。解密的程序用unescape了,也就是每词加密后都会有eval(unescape(***)),他应该是在通过规律重新连接被打乱的字符,也就是执行解密函数,而并非真正解密全文,解密函数通过偏移量重新还原,此时全部被解密为搂主铁出来的代码,于是就出现了每次都在加密。Top
6 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-02 03:01:09 得分 0
function z(a){with(Math){return floor(random()*a)}};这个函数应该就是产生随机偏移量的函数,然后看到var i=z(3)?39:34;我想这里就是只有数组和普通变量存放字符串的德原因。因为只有0,1,2。
var m=68683;这个值是替换ASC时候用来控制边界的。
猜想大致的加密函数为下列形式:
function encode(str)
{
for(...;str.length;...)
{
tmp1==String.fromCharCode(str.charAt(...))
if(tmp1>m)tmp1%=m;
....
}
}
解密想法了。
不知道我说的对不?我没有看所有的代码,实在看不下去,头痛,所有的变量名和函数名过于简化,头痛,频繁的调用,纯粹的过程语言!他妈的,还不如让我去看CIH源码,不比汇编好多少,请允许我骂人,这不是人干的。
js为了能后执行真的很难真正的加密,我不知道能不能彻底的加密,除非从解释器下手,如果能够访问解释器某些接口,否则我觉得不能彻底加密js。
这种加密方法加密后的代码人就可以很容易的得到源代码,只比原来多了一层eval而已,也就是嵌套加密了。
就说这么多了,我想他的思路就是这么多了,希望我的判断是对的,完全根据直觉。
===================
个人意见,仅供参考
Top
7 楼imafool(中正仁和)回复于 2003-02-02 04:18:59 得分 0
markTop
8 楼MeE(巴顿)回复于 2003-02-04 07:14:44 得分 0
既然你看了我就不看了哈 考试又不考这道题Top
9 楼koolfoo()回复于 2003-02-04 10:20:29 得分 0
那么,可不可以这样呢?(加上密码)
首先将原文和密码(随机)按一定规则编码,规则可以任意,但必须反映在密码中,
然后将原文和密码运算,就得到了一个密文,每次的密文都不一样。
在解密时就是上述的逆过程。
我想这样加密与解密过程会短得多,也用不了这么多代码。
但是怎样将加密与解密过程也隐藏呢?
关注
请继续讨论
Top
10 楼koolfoo()回复于 2003-02-04 10:22:42 得分 0
wopgod@163.com
我的邮箱。有意结识请留下联系。
很愿意和高手相识。Top
11 楼netdust(静时常思己过,闲谈勿论人非)回复于 2003-02-04 20:03:22 得分 0
好dd
关注Top
12 楼ccton(插鲜花专用牛粪)回复于 2003-02-07 10:19:43 得分 0
不是PLMM问的,不再关心了Top
13 楼xizi2002(戏子=>影帝)回复于 2003-02-07 10:23:46 得分 0
晕倒Top
14 楼lostnull(lostnull)回复于 2003-02-07 10:45:22 得分 0
upTop
15 楼adamcn(adamcn)回复于 2003-02-07 21:15:52 得分 0
我不知道automodi.htm里的脚本是怎么运行的,里面好像只有赋值语句还有几个"{","}"。Top
16 楼xuzuning(唠叨)回复于 2003-02-08 10:47:47 得分 0
这是一个编码过程,编码的结果可由ie识别执行,很厉害。
Top
17 楼nik_Amis(...)回复于 2003-02-08 11:06:14 得分 0
upTop
18 楼koolfoo()回复于 2003-02-10 19:08:51 得分 0
请不要乱发言。如果你不懂,或则提问,或则沉默。
还有。鄙人这两天写出了个函数,可以将脚本文件中的变量名和函数名全文替换,这样所生成的代码每次都不同,再配以上面的思想,先替换在加密,在使用时先解密,在替换然后在加密,这样就可实现。(已经实现)
这只是个思想,谁都可以写出加密与解密的函数,鄙人写出的加密解密函数十分简短,不用上面所附程序吗么臃肿,并且在加密的同时可设定密码,当然在解密时也需要密码才能解密。效果甚好。Top
19 楼koolfoo()回复于 2003-02-10 19:14:29 得分 0
相信所生成的代码没人能看懂。或许有点夸张,但肯定在阅读代码时将会用去十倍更多的时间,因为每次生成的名称都不同,在看来全是乱码。
对上面: llrock(百乐宝||昨夜星辰)
所提出的过程语言不予苟同,它只是将函数名简化以混淆实现而已。
最后,还是请高手们能够对上面的代码给出详细的注释,虽然可能会花一定时间,但这可能会接触某些作者的杰出思想。Top
20 楼koolfoo()回复于 2003-02-10 19:17:28 得分 0
孟子E章:
你很让我失望,竟然没有一次回答。或许你只是在使用javascript上相对熟悉而已,并不能称上高手。希望你能回复这句话。
在此,感谢llrock(百乐宝||昨夜星辰) 对本贴所付出的时间和精力。
感谢。Top
21 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-10 19:18:56 得分 0
搞笑Top
22 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-10 19:20:52 得分 0
js加密真的没什么,我有时间就帮你把注释全部都写出来,不过没什么意义,我觉得,js加密的方法基本上没什么,我个人觉得。Top
23 楼adamcn(adamcn)回复于 2003-02-10 20:43:34 得分 0
我也觉得这样的加密没什么意义,只要在最后一行加上很简单的代码,源代码就出来了。Top
24 楼emu(月亮不在手指尖上)回复于 2003-02-10 20:49:25 得分 0
我想孟子不会很稀罕被楼主称为高手。是不是高手并不是由有没有回一个贴,能不能回一个贴来决定的。版主虽然比我们多了一些责任,也并不是就欠了大家的,也并非就每个贴都要回;不管孟子水平如何(就我所之比孟子高的高手未必很多),他在这个论坛里面做出的贡献是有目共睹的。Top
25 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-11 03:40:27 得分 50
注释了一部分,实在看不下去了,不是看不懂而是恶心,原作者的加密方法并不高明,从使用大量随机z()就知道他是个变态,其实用一两个就足可以达到她的目的,可她用了几十个,毫无意义,恶心。
她的原理无非是模仿了哈希表的哈西函数,从而建立索引和字符位置之间的关系,function fo(s,q,h)就是那个伪哈希函数了,
你可以看到h=h*9137%m;x=h-q;9137应该是个素数,并且远离2的某一次幂,且足够大,这正是取模构造哈西函数的条件,其他的没什么了。
个人认为原作者的代码过于繁琐,效率比较低。
我去联众打牌去了
function z(a)
{//返回一个随机整数
with(Math)
{
return floor(random()*a)
}
}
//--------------------------------------------------
function hs()
{//返回一个空格或这u,好象u绝大多数为空
return(z(2)?' ':u)
}
//--------------------------------------------------
function ha(f)
{//返回大小些字母和数字,
/*
当f&4为0,并且x随机后在[26,35]中时,返回数字;
否则返回大写或小写字母;
*/
var x=z(f&4?26:36);
return String.fromCharCode(x+=x<26?(((f&1)<<5)^az):22);
}
//--------------------------------------------------
function pq(s)
{
d+=ps?lz+s+rz+(--ps?'==!=+ - < >>=<=||&&'.substr(z(yr+5)&30,2):cz):s+(z(yy)||(ps=z(yp)?0:2)?cz:kz)
}
//--------------------------------------------------
function mv(n,a,x)
{/* 产生一个由字母和数字组成的变量名,并且存贮到a[n]里,
注意:a是一个数祖对象的引用, n为数组索引,x将影响变量名的长度
*/
var v,f,j;
do
{
f=0;
j=x;
v=ha(4);//得到一个字母,注意4&4=4
if(x<3&&az&32)
{//此时变量名长度为2
v+=ha(1);//得到一个字母或数字,注意1&4=0
}
else
{//此时变量名长度为x。
//****好像有一个bug,当x=0时会出现错误,当z(yy&2)&4=0时有可能出现数字开头的变量名,猜测,我没有仔细看,直觉:)****
while(j--)
{
v+=ha(z(yy&2));
}
}
for(j=0;j<n;j++)
{//遍历a检查是否当前名字已经存在,存在就重新来做,否则f=0结束do while循环,函数调用结束
if(v==a[j])
{
f=1;
break;
}
}
}
while(f);
return a[n]=v;
}
//--------------------------------------------------
function sw(a,m,b)
{
return(z(2)?a+m+b:b+m+a)
}
//--------------------------------------------------
function pk(a,j,x,y,s)
{
var p=0,q;
for(;p<a.length;j++)
{
q=z((s&&s<p)?y:x);
while(a.charAt(p+q++)==bz);
sa[ka[j]=j]=qq+gg(a.substr(p,q),bz+bz,bz+bz)+qq;
p+=q;
}
return j;
}
//--------------------------------------------------
function fa(x,q)
{
var j=x+q;
var n=ka[j];
var v=g[n];
for(j=0;j<=k;j++)
{
if(ka[j]==n)
{
ka[j]=x;
}
}
j=dd.charCodeAt(pp);
if(ka[j]==j&&sa[j]!=u)
{
g[j]=v;
if(pp<m)
{
pp++;
}
}
return v;
}
//--------------------------------------------------
//这里应该就是代码看上去很乱的原因,根据随机的来的h,根据规则打乱cc中字符的顺序
function fo(s,q,h)
{//按照一定规则打乱字符串中字符的顺序,并存放到数组中,这个规则和索引、9137、68683,h相关
var x;
var j=0;
var f=s.length;
var c=new Array(f);
while(j<f)
{
h=h*9137%m;//9137好像是一个足够大的素数,h应该时获得一个相对于68683偏移量
x=h-q;//这个应该就是索引和偏移量之间的计算关系了
if(x<f&&x>=0)
{
c[x]=s.charAt(j++);//存贮一个字符,不是顺序存储的,有点像哈西函数效果
}
}
return c.join(u)//在c尾部加一个u,这个u应该是起结束符作用
}
//--------------------------------------------------
//替换[ ] 为引号
function gg(s,a,x)
{
return s.replace(eval('/'+a+'/g'),x);
}
//--------------------------------------------------
function gb()
{
var x;
while(et==(x=g[z(tt)]));
return x
}
//--------------------------------------------------
function ga()
{
var s=cc.substr(z(3600),z(yp*4)+3);
if(yy&7)
{
s=zo(s,zb);
}
pq(gb()+ez+qq+s+qq+(z(3)?pz+gb():u));
}
//--------------------------------------------------
function sy(b)
{
var h=0;
var c;
var s=u;
do{
if(--h<0)
{
c='()[]{}<>=!&?*,-./|:^'.substr(z(10)*2,2);
h=z(b/8)+1;
}
s+=c;
}
while(s.length<b);
return s;
}
//--------------------------------------------------
function zo(s,a)
{
var i;
var x;
var c;
var h;
var b='()[]{}?|^.';
for (i=a.length;i--;)
{
for(x=b.indexOf(c=a.charAt(i)),h=x<0?u:bz;c;x=-1)
{
s=gg(s,h+c,'%'+(c.charCodeAt(0).toString(16)));
c=b.charAt(x^1);
}
}
return s
}Top
26 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-11 03:40:46 得分 50
//****************************
oo=0;
c =null;
//w=String.fromCharCode;//一个替换
var g=new Array();
var sa=new Array();
var ka=new Array();
var i=z(3)?39:34;//随机决定那个是双引号
var qz=String.fromCharCode(i);// 单引号或双引号
var qq=String.fromCharCode(73-i);//如果qz为单引号则qq为双引号...
var u='';
var bz=String.fromCharCode(92);//bz="\";
//空或者一个空格,作用在于改变cc的长度,利用javascript语法对空格忽略的特点随机改变cc长度
var d=hs();
var ez=d+'='+d;//一个等号字符串
var pz=d+'+'+d;//一个加号字符串
var lz=hs()+'(',rz=')'+hs();//左、右括号字符串
//一个换行字符串。String.fromCharCode(13,10))换行,后面的无非是添加制表等javascript语法不识别的字符来改变cc长度
var jz=hs()+(lf=String.fromCharCode(13,10))+(z(4)?hs():String.fromCharCode(9));
var cz=';'+hs()+hs();//分号字符串
var kz=z(3)?jz:cz+jz;//换行字符,或者换行前加个分号;
var pp=z(3);//?????????????????????????????????????
var k;
var m=68683;
var vv;
var dd;
var az=z(2)?65:97;//ASCII表中,A=65 a=97
var zb=')]}';
var oz='([{?|^.!&,-/:;<=>@ghijklmnopqrstuwxyzJAMXILOSTFUCHREW'+qz+qq;
var yy=z(12);
var yr=z(12);
var yp=z(20);
var ps;
//版权,lf="\n";
var bb;
bb='Jax363 - Auto Modifying Code With Random Apperance Jscript Example'+lf+lf+'Copyright (c) Hamdi Ucar, Orchestra Communication Systems Ltd.,2001'+lf+lf+'Email: hamdix@verisoft.com.tr'+lf+lf+'This program create or rewrite a file named automodi.js on the current directory.'+lf;
//产生11个长度为2的字符存到数组g中
for(i=0;i<11;i++)
{
mv(i,g,z(3));
}
//通过异或az在65和97之间切换
az^=32;
//alert(az);
//三个重要的变量
ux=g[8];
aa=g[10];
if(z(2)){vv=g[9];}//稍微做些手脚使变量名
// 替换cc中的方括号引号为引号. 注意:原c =null中的"c"变成了g[0]的值
cc=gg('oo='+oo+';cc='+g[0]+';'+g[0]+cc.slice(cc.indexOf(' ='),cc.lastIndexOf(' ')+1),'['+qz+qq+']',qz);
if((uv=z(3))>1)
{
dd=u;
while(z(12))
{
dd+=oz.charAt(z(55));
}
d=cc.slice(i=cc.indexOf(d=String.fromCharCode(125,59),z(3800))+2,k=cc.indexOf(d,i+z(4200-i))+2);
cc=cc.substr(0,i)+zo(d,dd)+cc.substr(k)
}
//打乱cc中字符的排列顺序
cc=fo(cc+sy(z(140)&254)+'*/',i=z(60000)+1,k=z(m));
//???
q=Math.floor(m/(p=70+z(30)));
//这句太长了不想看了,应该是作为解密用的
d=sw(' 5= 2='+(z(3)?m:sw(sw(p,'*',q),'+',m-p*q)),cz,sw(' 3='+i,cz,' 7='+k))+cz+sw(' 1='+sw(' 3','+',(9137-i)),cz,' 0='+qz+qz)+cz+(z(4)?'for(;-- 5;)':'while(-- 5)')+'{ 7*= 1; 7%= 2; 4= 7- 3;if( 4'+sw('>=0',' && 4','<'+cc.length)+') 0+= 6.charAt ( 4) } '+(uv>1?' 0= 8 ( 0);':u)+(vv?vv:'eval')+'( 0)';
if(uv)
{
for(dd=u,i=0;i<d.length;i++)
{
dd+=(z(3)&&(c=d.charCodeAt(i))&64)?'%'+c.toString(16):d.charAt(i);
}
d=dd;
}
for(i=9;i--;)
{
d=gg(d,' '+i,g[i]);
}
d=gg(d,';',';'+hs());
et=g[6];
tt=m=pk(cc,0,4000/(2+z(yr+3)));
sa[m]=qq+qq;
k=m=pk(d,m+1,2+z(22-yr),1+z(3),uv?0:99);
if(z(3-uv))
{
p=z(5)+2;
for(i=0;i<m;i+=z(p))
{
sa[i]=gg(sa[i],String.fromCharCode(c=z(26)+97),bz+c.toString(8));
}
}
if(uv)
{
sa[m++]='unescape';
}
dd=g[ev=m]='eval';
if(z(2)||vv)
{
sa[m++]=dd;
}
dd=d=u;
for(i=0;i<m;i++)
{
d+=(i==tt)?u:String.fromCharCode(i);
}
while(i=d.length)
{
dd+=d.charAt(i=z(i));
d=d.substr(0,i)+d.substr(i+1)};
p=z(6)+2;
for(i=0;i<m;i++)
{
if(pp)
{
g[dd.charCodeAt(i)]=aa+(pp<2?i+10+yy:'['+i+']');
}
else
{
mv(i,g,z(p)+1);
}
}
d='/*'+lf+lf+bb+lf+lf+'(Run '+oo+')'+lf+lf+'*/'+lf+jz;
if(pp==2){d+=(z(4)?'var ':hs())+aa+ez+(z(3)?hs():jz)+'new Array()'+kz;
}
pp=0;
p=0;
for(i=0;i<m-1;i++)
{
if(z(1+yy/80)&&ps!=1)
{
d+=jz+'{';
p++;
}
if(pp<i)
{
pp=i;
}
c=sa[q=dd.charCodeAt(i)];
if(q<k)
{
if(q>0)
{
if(sa[q-1]==u)
{
c=fa(q,-1)+pz+c;
}
}
if(q<k-1)
{
if(sa[q+1]==u)
{
c+=pz+fa(q,1);
}
}
sa[q]=u;
}
pq(g[q]+ez+c);
if(z(1+p/12)&&ps!=1)
{
d+='}'+jz;
p--;
}
}
if(uv>1)
{
pq(ux+ez+g[k]);
if(z(2))g[k]=ux;
}
pq(et+ez+g[ka[tt-1]]+(vv?','+vv+ez+g[ev]:u));
et=g[ka[tt+1]];
while(z(yr))
{
ga();
}
pq((z(3)?g[4]+ez:u)+g[ev]+(z(3)?hs():jz)+lz+(uv?g[k]+lz+et+rz:et)+rz);
while(z(yy)||ps==1)
{
ga();
}
while(p--)
{
d+=String.fromCharCode(125);
}Top
27 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-11 03:43:25 得分 0
f=new ActiveXObject('Scripting.FileSystemObject');
a=f.CreateTextFile('automodi.htm',true);
var kstr='<script'+'>'+d+'<'+'/script>';
a.Write(kstr);
a.Close();
/*
这些事cc中的代码,不能直接执行,你可以把cc="...";考到代码中就可以执行了。
孟子绝对是个高手,她只是因为时间罢了,向我这样的闲人不多,正在等待考试成绩,闲呀,打牌去:)
*/Top
28 楼oldsky(九指神丐)回复于 2003-02-11 09:07:18 得分 0
mark it!Top
29 楼koolfoo()回复于 2003-02-11 18:19:52 得分 0
感谢:llrock(百乐宝||昨夜星辰)
可以留下mail地址?希望能结识你。
可惜我平时上网的时间不多,没有你那么多的时间。
或许,在我评论孟子的话真的是过激了,在此向孟子道歉:对不起!我也很希望能结识你。Top
30 楼koolfoo()回复于 2003-02-11 18:23:24 得分 0
现在,我对自己的话真的感到后悔了。因为这违背某些原则,必要的原则。
自责!
同一个错误不允许犯第二次!
最后,技术万岁!友谊万岁!Top
31 楼koolfoo()回复于 2003-02-11 18:34:28 得分 0
真想结贴,因为这样又不可以和各位对话了。
一个人的日子的很寂寞。
哎.........
本是春江寂寞时
轻歌乱舞语一字
不堪夜夜风雨急
去到天涯更相思
哎.........Top
32 楼wuziqi_puyue(蒲月)回复于 2003-02-11 18:42:53 得分 0
用不着自责,这是你的感受。
也许你是我的高手,而人家又是你的高手,没有止境的。
学无止境啊Top
33 楼koolfoo()回复于 2003-02-11 21:44:24 得分 0
谢谢。挑战无限!
路就在前方,希望在转角........Top




