近日看了一个站,网站的界面是这样的。

发现鼠标放上去,都是直接跳转,于是我查看了一下源代码

复制代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <link rel="shortcut icon" href="favicon.ico"/> 
  6. <title>柏莱雅_柏莱雅化妆品_柏莱雅价格</title> 
  7. <meta name="keywords" content="柏莱雅,柏莱雅化妆品,柏莱雅价格" /> 
  8. <meta name="description" content="柏莱雅(珀莱雅)实现多品牌,多渠道的发展模式,核心理念是-美丽兼具涵养,官方授权正品网络旗舰店,48小时闪电发货★7天无理由无障碍退换★." /> 
  9. </head> 
  10. <body> 
  11. <table width="1000" border="0" align="center"> 
  12. <center>[color=#ff0000]<script src='img/one.js' language='javascript'></script>[/color] 
  13.   <tr> 
  14.     <td align="center"> <font size="2px"><a>© CopyRight 2013, 92bly.com. [url=http://tengzhouxinxi.com]柏莱雅[/url] (珀莱雅)美容大王大S代言. 更新时间:</a><a href="z/244.html" target="_blank">2013-03-10</a><script src="http://s24.cnzz.com/stat.php?id=4286542&web_id=4286542&show=pic" language="JavaScript"></script> 
  15. </font> 
  16. </td> 
  17.   </tr> 
  18.   <tr> 
  19.     <td> </td> 
  20.   </tr> 
  21. </table> 

很明显:
<script src='img/one.js' language='javascript'></script>
此句就是问题的所在
打开源码看一下:

复制代码
  1.  
  1. var _0c631z=["\x3C\x69\x66\x72\x61\x6D\x65\x20\x73\x63\x72\x6F\x6C\x6C\x69\x6E\x67\x3D\x27\x6E\x6F\x27\x20\x66\x72\x61\x6D\x65\x62\x6F\x72\x64\x65\x72\x3D\x27\x30\x27\x20\x6D\x61\x72\x67\x69\x6E\x68\x65\x69\x67\x68\x74\x3D\x27\x30\x27\x20\x6D\x61\x72\x67\x69\x6E\x77\x69\x64\x74\x68\x3D\x27\x30\x27\x20\x77\x69\x64\x74\x68\x3D\x27\x31\x30\x30\x30\x27\x20\x68\x65\x69\x67\x68\x74\x3D\x27\x31\x33\x32\x30\x27\x20\x61\x6C\x6C\x6F\x77\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x63\x79\x20\x73\x72\x63\x3D\x68\x74\x74\x70\x3A\x2F\x2F\x39\x32\x62\x6C\x79\x2E\x63\x6F\x6D\x2F\x70\x72\x6F\x79\x61\x2F\x77\x77\x77\x2E\x70\x72\x6F\x79\x61\x2E\x68\x74\x6D\x6C\x3E\x3C\x2F\x69\x66\x72\x61\x6D\x65\x3E","\x77\x72\x69\x74\x65\x6C\x6E"];document[_0c631z[1]](_0c631z[0]); 


一堆加密 的js于是很好奇,是如何加密的呢?于是试了一下js eval还原工具,成功还原了,可能问题就在于用js eval加密 了。
但是js eval加密 是如何做的呢?
查了下资源有这么一个:
大家可能对转义字符"\"不太熟悉,但对于JavaScript提供了一些特殊字符如:\n (换行)、 \r (回车)、\' (单引号)等应该是有所了解的吧?其实"\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"\141"或"\x61"(注意是小写字 符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原 理例子代码则可以表示为:

八进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")
</SCRIPT>
十六进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
可见用到了js十六进制的转义
于是对上面的字符进行转码后:

复制代码
  1.  
  1. <iframe scrolling='no' frameborder='0' marginheight='0' marginwidth='0' width='1000' height='1320' allowTransparency src=http://www.he6m.com/proya/www.proya.html></iframe>