KeyFansClub

首页 » - 特色讨论区 - » 键社茶餐厅 » [囧文化推广] JS囧化工具1.0版
Prz - 2008/12/16 14:25:00
首先声明,不是我的原创,而是我修改别人的代码而来的.
原代码出自: http://dean.edwards.name/packer/

经我修改以后,成为一个可以把JavaScript "囧化"的工具: http://ftp1.otomedream.com/JSjiong/Jsjiong.htm

使用方法: 将JS源代码贴入上面一个框,按下Pack,下面那个框就会出现一堆囧
将这一堆囧复制粘贴保存,可以用来完全的替代原来的JS的功能。

提示1:要看囧化以后的JS的例子,察看html源代码里面引用的JS(即: 囧化工具的JS代码)。
提示2:囧化可能会导致JS增大数倍,如要放上Web服务器,请务必使用服务器的静态文件压缩模块以减少下载时间。
(因为囧化过程含有JS精简操作,虽然长度增加,实际上数据的"熵"值降低了,因此静态压缩以后的长度反而比囧化前直接压缩还要小)
(例如,囧化核心Packer.js,囧化前rar压缩为3.63KB,囧化后再压缩只有3.50KB了。因此只要打开服务器的文件压缩模块,不必担心影响下载速度)

提示3:请和谐的使用囧化工具。因为使用囧化工具带来的一切后果请自付。
提示4:欢迎转载,但是请声明来源(即: 我),以及来源的来源(即: 本贴的开头两句)。
zxz333zxz - 2008/12/16 14:34:00
我被LZ……Jiong到了
nemoma - 2008/12/16 17:49:00
嗯……
其实是给JavaScript加壳么?
或者还有其他的目的?
laputachen - 2008/12/16 17:54:00
研究了一下,确实很囧……话说这囧工具的原理是啥……为何可以用囧写程序……
============================================================

eval(function(囧,囧囧,囧囧囧,囧囧囧囧,囧囧囧囧囧){囧囧囧囧=function(囧,囧囧){囧囧='囧';while(囧--)囧囧+='囧';return 囧囧};if(囧){while(囧囧--)囧囧囧囧囧[囧囧囧囧(囧囧)]=囧囧囧[囧囧]||囧囧囧囧(囧囧);囧囧囧=[function(囧){return 囧囧囧囧囧[囧]}];囧囧囧囧=function(){return'囧+'};}while(囧囧++)if(囧囧囧[囧囧])囧=囧.replace(new RegExp(囧囧囧囧(囧囧),'g'),囧囧囧[囧囧]);return 囧.replace(/<(囧+)>/g,'$1')}('囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧({囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧(<囧囧>,<囧>){囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧();囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧),囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧囧囧囧囧);囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧){囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧())}囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧()},囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧(<囧>){囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(!囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>))囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>);<囧>=囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>);<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧++;囧囧囧囧囧囧囧囧囧囧囧 <囧>},囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧(){囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧(<囧>,<囧囧>){囧囧囧囧囧囧囧囧囧囧囧 <囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧-<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧});囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧("囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧="+囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧<囧>);囧囧囧囧囧囧囧囧囧囧 <囧囧囧>=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧 <囧囧囧囧>=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧 <囧囧囧囧囧>=囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧();囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧囧囧囧<<囧囧囧囧囧>;囧囧囧囧囧囧囧囧囧囧囧囧囧++){<囧囧囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧囧>(囧囧囧囧囧囧囧囧囧囧囧囧囧),囧囧囧囧囧囧囧囧囧囧囧囧囧)}囧囧囧囧囧囧囧囧囧囧 <囧囧囧囧囧囧>=囧囧囧囧囧囧囧囧囧(){囧囧囧囧囧囧囧囧囧囧囧""};囧囧囧囧囧囧囧囧囧囧 <囧囧囧囧囧囧囧>=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧,囧囧囧囧囧囧囧囧囧(<囧>){囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>)){<囧>.囧囧囧囧囧囧囧囧囧囧囧囧=<囧囧囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>);<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=<囧囧囧囧囧囧>}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧{囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧囧>(<囧囧囧囧囧囧囧>)))<囧囧囧囧囧囧囧>++;<囧>.囧囧囧囧囧囧囧囧囧囧囧囧=<囧囧囧囧囧囧囧>++}<囧>.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=<囧囧囧>(<囧>.囧囧囧囧囧囧囧囧囧囧囧囧)},囧囧囧囧囧囧囧囧);囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧(<囧>,<囧囧>){囧囧囧囧囧囧囧囧囧囧囧 <囧>.囧囧囧囧囧囧囧囧囧囧囧囧-<囧囧>.囧囧囧囧囧囧囧囧囧囧囧囧})},囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧(){囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧().囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧("|")}},{囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:{囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧(<囧>){囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧(){囧囧囧囧囧囧囧囧囧囧囧 <囧>}},囧囧囧囧囧囧囧囧囧囧囧囧囧囧:囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧:"",囧囧囧囧囧囧囧囧囧囧囧囧:-囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧}});',49,'|||||||this|function|var|return|index|i|count|add|has|0|toString|Collection|constructor|base|forEach|while|encode|if|get|sort|e|encoded|Words|extend|match|WORDS|length|pop|eval|a|62|Packer|ENCODE|new|size|for|put|else|getValues|join|Item|1'.split('|'),'囧',{囧:'囧'}))
nemoma - 2008/12/16 17:57:00
果然是为了防止别人盗版技术而给JS文件加壳么
好东西,放入收藏夹……[strike](改天做个PHP的吧……好吧我承认我在口胡……)[/strike]
亡灵之猫 - 2008/12/16 18:53:00
eval啊
很强大
猫觉得JS加壳的意义不大,再加密也是明文,纯拖速度,不过现在这个程序需要解析JS的语法,要借鉴借鉴啊 ><

PS:函数参数超过5个就不能囧了
水羊 - 2008/12/16 18:58:00
土豆語變成囧語了!?
悠久ノ風 - 2008/12/16 19:01:00
咱只是用下边这种脚本随便试了试..

function test() {
  alert("Hello World");
}


IE7下边:
error packing script: 'length' is null or not an object

Firefox3下边:
error packing script: \u56E7 is null


这样你也算是KFC头号JS么:miffy3:

# # #

似乎是按照文字长度来解码的?这样的话编码成Prz更好看吧。
不同长度的
Prrrrrz, Prrrrrrrrrrrrrrrrrrz
等等..
亡灵之猫 - 2008/12/16 19:03:00
同上楼
函数不带参数或参数不参与运算就爆了

================
再测了一下
貌似也不是参数的问题

================

明白了,函数必须带参数,并且第一个参数的标识符长度必须超过2
LS这样做就能行:
function test(xx) {
  alert("Hello World");
}

Misha大看看是怎么回事吧,改一改程序
风の街 - 2008/12/16 19:06:00
恩,去翻电脑书看看,话说本人电脑看最近就在学JavaScript
Bce - 2008/12/16 20:45:00
明文的。。。。防君子不防小人的阿。。。。

想起来貌似原来曾经用过MS script encode,可惜不支持中文....
004307ec - 2008/12/16 23:40:00
document.write("null");
IE7囧化不能……|||
Prz - 2008/12/17 1:34:00
┐囧┌……
好像程序在被我囧化的时候增加了一个很囧的特性:对于简单到没什么意义的代码会┐囧┌而不是囧化。
不过没关系,我一开始就没有打算维护代码。
囧化源程序早就被我删除了,只有囧化以后的代码,谁想要继续囧的话,可以:
1. 打印出eval后的囧化JS,直接在上面改;
2. 从原出处那里下载代码,改自己的版本;
3. 自己从头写新的版本.
Prz - 2008/12/17 1:49:00
原帖由 亡灵之猫 于 2008-12-16 19:03:00 发表
同上楼
函数不带参数或参数不参与运算就爆了

================
再测了一下
貌似也不是参数的问题

================

明白了,函数必须带参数,并且第一个参数的标识符长度必须超过2
LS这样做就能行:
function test(xx) {
  alert("Hello World");
}

Misha大看看是怎么


具体什么原因我也不清楚,不过肯定不是参数问题。
以下代码囧化是没有问题的,而且把唯一的参数去掉再囧化都没问题,或者再乱加上6、7个参数也没问题。
似乎在被我囧化的过程中,程序产生了某种智能?┐囧┌

  1. function LZW_Compress(s) {
  2.   var dict = {};
  3.   var data = s.split('');
  4.   var out = [];
  5.   var currChar;
  6.   var phrase = data[0];
  7.   var code = 256;
  8.   for (var i=1; i<data.length; i++) {
  9.   currChar=data[i];
  10.   if (dict[phrase + currChar] != null) {
  11.     phrase += currChar;
  12.   } else {
  13.     out.push((phrase.length > 1)? dict[phrase] : phrase.charCodeAt(0));
  14.     dict[phrase + currChar] = code;
  15.     code++;
  16.     phrase = currChar;
  17.   }
  18.   }
  19.   out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
  20.   for (var i=0; i<out.length; i++) {
  21.   out[i] = String.fromCharCode(out[i]);
  22.   }
  23.   return out.join("");
  24. };
复制代码
keakon - 2008/12/17 8:10:00
我是拿这个工具来破解JavaScript的,其实把decode按钮的disable属性去掉就行了…
zhangmdk - 2008/12/17 9:00:00
原理就是利用eval的即时运行字符串中的代码。
这样利用一个替换函数经过简单的替换和加减得到“加密”部分,在送到eval运行前进行一次逆运算变为正常的代码即可……

其原理与现在ASP和PHP的execute加密同出一辙……(就包括VBScript.Encode的加密也是这么回事)

恩恩,现在突然又对代码感兴趣了……把自己以前用的ASP WEBSHELL解密看后发现里面有其他人的流量统计后门……OTL
wanglizhi67 - 2008/12/17 23:34:00
囧化工具什麼時候再升級2.0:miffy5:
keakon - 2008/12/18 10:11:00
发现对于OO编程不适用,很多属性无法正确解析
[wrap=点击展开,0]
eval(function(囧,囧囧,囧囧囧,囧囧囧囧,囧囧囧囧囧){囧囧囧囧=function(囧,囧囧){囧囧='囧';while(囧--)囧囧+='囧';return 囧囧};if(囧){while(囧囧--)囧囧囧囧囧[囧囧囧囧(囧囧)]=囧囧囧[囧囧]||囧囧囧囧(囧囧);囧囧囧=[function(囧){return 囧囧囧囧囧[囧]}];囧囧囧囧=function(){return'囧+'};}while(囧囧++)if(囧囧囧[囧囧])囧=囧.replace(new RegExp(囧囧囧囧(囧囧),'g'),囧囧囧[囧囧]);return 囧.replace(/<(囧+)>/g,'$1')}('囧囧囧囧囧 囧囧囧囧囧囧囧(<囧>,<囧囧>){囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧>==囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧){<囧囧>=囧囧囧囧囧囧囧囧囧囧囧囧囧囧}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧>+囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧()*(<囧>-<囧囧>)))}囧囧囧囧囧 囧囧囧囧囧囧囧囧(){囧囧囧囧.囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧");囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧()}囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧(){囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧);囧囧囧囧.囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧)}囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧=囧囧囧囧囧(){囧囧囧囧.囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧();囧囧囧囧.囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧("囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧",囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧.囧囧囧囧囧囧囧囧囧囧,囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧);囧囧囧囧.囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧();囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧.囧囧囧囧囧囧囧囧囧囧>=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧){囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧()}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧{囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧+=囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧,-囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧);囧囧囧囧.囧囧囧囧囧囧囧囧囧囧+=囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧)}}囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧>){囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧();囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧=<囧>;囧囧囧囧.囧囧囧囧囧囧()}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧=囧囧囧囧囧(<囧>){囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 <囧囧>=囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧囧囧囧(<囧囧><囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧){囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧[<囧囧>]=囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧()}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 囧囧囧囧囧囧囧囧囧囧囧囧=囧囧囧囧囧囧囧囧囧囧囧囧囧囧;囧囧囧囧囧囧囧囧囧囧囧囧<<囧囧>;++囧囧囧囧囧囧囧囧囧囧囧囧){囧囧囧囧.囧囧囧囧囧囧囧囧囧囧囧[囧囧囧囧囧囧囧囧囧囧囧囧].囧囧囧囧囧囧()}囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧 <囧囧囧>=囧囧囧囧;囧囧囧囧囧囧=囧囧囧囧囧(){<囧囧囧>.囧囧囧囧囧囧()};囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧(囧囧囧囧囧囧,囧囧囧囧囧囧囧(囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧))}',44,'|||this|function|show|rnd|Snow|graph|y|list|i|if|0|new|init|prototype|x|size|3|length|var|Math|SnowList|undefined|return|floor|random|jsGraphics|sky|400|25|5|clear|drawImage|snow|gif|paint|300|else|Array|for|setTimeout|100'.split('|'),'囧',{囧:'囧'}))
[/wrap]
zhangmdk - 2008/12/18 17:17:00
囧化的程序应当注意,就如WEBSHEL免杀一样,SWITCH语句不要去转,FUNCTION没事也别去转,但是可以转FUNCTION里面的内容……

也就是说宁可多转几次,别偷懒一次转一大堆。
转换的句子尽量是简单的单句……另外,转的时候打开调试页面,转一部分测试一下,否则转了十几个部分,结果一运行,嘿嘿,程序还真囧了,吼吼,那么该你囧了……
1
查看完整版本: [囧文化推广] JS囧化工具1.0版