当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript又一解密过程,推荐的,会这个基本上好多都能解决了

Javascript
Javascript 学习笔记 错误处理
Javascript 类的继承实现代码
JavaScript 创建对象和构造类实现代码
JavaScript 学习小结(适合新手参考)
extjs 列表框(multiselect)的动态添加列表项的方法
javascript getElementsByName()的用法说明
Document 对象的常用方法
JS 事件冒泡 示例代码
JS 面向对象的5钟写法
JS 输入字数判断实现代码
Javascript 汉字字节判断
JavaScript 关键字屏蔽实现函数
一句话JavaScript表单验证代码
利用javascript实现一些常用软件的下载导航
jQuery 相关控件的事件操作分解
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
JavaScript 异步调用框架 (Part 2 - 用例设计)
JavaScript 异步调用框架 (Part 3 - 代码实现)
JavaScript 异步调用框架 (Part 4 - 链式调用)
JavaScript 异步调用框架 (Part 5 - 链式实现)

Javascript 中的 javascript又一解密过程,推荐的,会这个基本上好多都能解决了


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 289 ::
收藏到网摘: n/a

javascript又一解密过程,推荐的,会这个基本上好多都能解决了
[常规准备]
1、首先尝试掌握代码的大体结构。
这需要一定的经验。首先是做hutia已经做了的事情(虽然这一步在这个具体的情况下也可以跳过,但是不推荐如此),先把编码的文字显形。有很多办法可选,有一种办法是把编码的字符串写到textarea里。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

于是就得到了如下代码:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

window["eval"]("XXX") 其实就是 window.eval("XXX")的另一种写法。
我们要关心的是作为eval()方法的参数的代码的结构。
把这些代码稍微整理一下(可用带语法高亮的编辑器,也可通过批量替换字符进行代码的格式化,使成对的{}、''和""显得突出),这样就能够看出代码的大致结构如下。
复制代码 代码如下:

function(j1,J2,picknick,La4,oddver,outputver)
{
oddver=function(picknick)
{
return(picknick<J2?"":oddver(parseInt(picknick/J2)))+((picknick=picknick%J2)>35?String.fromCharCode(picknick+29):picknick.toString(36))
}
if(true)
{
while(picknick--)outputver[oddver(picknick)]=La4[picknick]||oddver(picknick);
La4=[function(oddver){return outputver[oddver]}];
oddver=function()
{
return '\w+'
}
picknick=1
}
while(picknick--)if(La4[picknick])j1=j1.replace(new RegExp('\b'+oddver(picknick)+'\b','g'),La4[picknick]);
return j1
}(……)

那么整个代码的结构就相当于这个样子:
复制代码 代码如下:

<script>eval(function(a,b,c){alert(a);alert(b);alert(c)}(1,2,3))</script>


既然已经了解了结构,那么基本上就应该没有悬念了。因为这种加密是有着天生的弱点的。
上面所讲的步骤旨在说明一般道理,实际解密时可以凭经验跳过。
[实际解密步骤]
还是利用textarea,利用加密的弱点来实现。
2、始解
把关键点 return j1 改为 textarea.value=j1 即可。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

3、卐解
用上面解出的代码继续解,把关键点 return p 改为 textarea.value=p 。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

这样就解出了最终的代码。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]