JS脚本混淆、加密讨论第2/2页

 更新时间:2007年05月06日 00:00:00   作者:  

7、利用运算的起承转合来混淆代码
就是通过花哨复杂的对象引用方式和判断方式来迷惑人。
这是最高级的一类混淆技巧了,常见的手段有:
复制代码 代码如下:

三元运算符?:
字符串操作
对象函数
对象继承
函数引用
无名函数
递归函数

……等等。通常要结合其他几类技巧共同起作用。
给一个简单但又漂亮的例子:
复制代码 代码如下:

function GoNewScene(){var _0xeca5x0=["\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6E\x2E\x61\x73\x70\x3F\x52\x3D\x30\x2E\x31\x32\x36\x33\x34\x37\x31\x31\x38\x36\x37\x31\x34\x33\x37\x30\x35\x39"];Temp1[_0xeca5x0[0x0]]=_0xeca5x0[0x1];}
function CheckOK(){var _0xdda5x0=["\x47\x61\x6D\x65\x2E\x61\x73\x70\x3F\x53\x63\x65\x6E\x65\x3D","\x26\x58\x3D","\x26\x59\x3D","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x52\x65\x47\x6F\x28\x29","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74"];var _0xdda5x1=_0xdda5x0[0x0]+SceneMapID+_0xdda5x0[0x1]+SceneX+_0xdda5x0[0x2]+SceneY;fMain[_0xdda5x0[0x3]]=_0xdda5x1;window[_0xdda5x0[0x5]](_0xdda5x0[0x4],0x64);}
function ReGo(){var _0xe88ax0=["\x47\x61\x6D\x65\x2E\x61\x73\x70\x3F\x53\x63\x65\x6E\x65\x3D","\x26\x58\x3D","\x26\x59\x3D","\x6C\x6F\x63\x61\x74\x69\x6F\x6E"];var _0xe88ax1=_0xe88ax0[0x0]+SceneMapID+_0xe88ax0[0x1]+SceneX+_0xe88ax0[0x2]+SceneY;Temp1[_0xe88ax0[0x3]]=_0xe88ax1;}

它的“明码”是
复制代码 代码如下:

function GoNewScene(){
    Temp1.location="Main.asp?R=0.126347118671437059"
}
function CheckOK(){
    fMain.location="Game.asp?Scene="+SceneMapID+"&X="+SceneX+"&Y="+SceneY
    window.setTimeout(ReGo(),100)
}
function ReGo(){
    Temp1.location="Game.asp?Scene="+SceneMapID+"&X="+SceneX+"&Y="+SceneY
}

上面的例子取自老贴http://bbs.blueidea.com/viewthread.php?tid=1831289

专题讨论的方向:
1、请大家跟贴,给出你见过的,认为经典(或有可取之处)的代码“混淆|加密”的实例,如果可能最好根据上面的分类判断归类,注明是属于第几类技巧。

2、请大家跟贴介绍你用过的“混淆|加密”方法或工具。如果可能最好给出有关特点的评价。

3、请大家谈一谈你自己对JS“混淆|加密”的见解(认识、要求、成见……),注意言之有物,不要灌水。

相关文章

最新评论