标签:
今天用仿站工具下载了一个比较不错的html5网站,但在本地就无法打开,打开的网页是个白板。检查元素发现没有body元素,本地代码明明有boby,浏览器中却没有,估计是js在捣鬼。
挨个注销引用的js,发现<script src="style/index.min.js"></script>被注销后,能显示一点网页内容。
分析这个js,先是整理格式,发现有一个注释// index.js以下的内容都是加密乱码,如下图:
<script type="text/javascript"> eval(function(p, a, c, k, e, d) { e = function(c) { return (c < a ? "": e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!‘‘.replace(/^/, String)) { while (c--) d[e(c)] = k[c] || e(c); k = [function(e) { return d[e] }]; e = function() { return ‘\\w+‘ }; c = 1; }; while (c--) if (k[c]) p = p.replace(new RegExp(‘\\b‘ + e(c) + ‘\\b‘, ‘g‘), k[c]); // return p; // 原来加密代码内容是这行 document.getElementById(‘textareaID‘).innerText=p; // 新添加这行代码把解密后的内容提取到上面新建的文本框中 // 参考文章地址http://blog.csdn.net/cainiaoxiaozhou/article/details/8960561 } (‘c y=0,1J=0;c 2h=1p,11=N;c Z,1e,1c,16;$(9(){c m=2P.34.1M.4L().39(/#p(\\d+)$/)
我搜索这个函数发现是一种js加密的方法,其实本身已经有解密了,只是源代码为return p; 将这个p的内容打印到 文本框中,解码了js代码加密
第二步分析js,我怀疑是某段js操作隐藏了body元素,本地和原网站的唯一区别就是网址,但是在js中查找原网站网址没有找到。挨个搜索查找控制body元素的js,终于发现了玄机,他把网址用函数重新写了一下,如果网址不为他这个就删除了body,代码如下:
function authentication() { //绑定域名地址的小花招,不是他这个域名删除body // var suffix = "com", // count = 1, // dot = "."; // var d = (count + 999).toString() + "zhu" + dot + suffix; // if (window.location.host.indexOf(d) < 0) { // $("body").remove(); // return false // } return true }
标签:
原文地址:http://www.cnblogs.com/feifly/p/5502646.html