码迷,mamicode.com
首页 > Web开发 > 详细

一个下载后无法访问的网站解密

时间:2016-05-17 19:19:19      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

今天用仿站工具下载了一个比较不错的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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!