再玩黑客游戏

27 Comments

刚刚在雷锋群群友优子的博客上看到一篇文章《试玩黑客游戏》,心里一阵激动,我激动个啥呢?因为高中的时候曾玩过这个,那个时候马马虎虎只能过第一关,而且还花了我不少时间。事隔多年,我又回来了,看看技术有没有长进。

打开游戏入口:http://game.enet.org.cn

第一关:Escape 解密


看到页面,别的不说,先把这个页面下载下来,然后再本地打开分析。打开后我们可以看到变量 “Words” 的值都是经过 Escape 加密的,再看下面,通过 unescape 函数再将变量 “Words” 解密,然后通过 write 函数打印出来。

解题方法有两种,第一种就是到 Escape加密/UnEscape解密 这个页面讲加密的变量进行解密,然后得到解密后的值;第二种就是直接在下面用 alert(); 函数讲 “Words” 变量弹窗显示,这两种方法都可以得到明文值。

解密后得到关键的代码,如下:

function PassConfirm() {
    var x = document.password.pass.value;
    if (x == "hackervip.com ") {
        alert('恭喜过关,进入第二关!');
        window.open("errror.html", "_self")
    } else {
        document.password.pass.value = '';
        return false;
        window.open("error.htm", "_self")
    }
}

本关密码:“hackervip.com ”(没有双引号有空格)
下关页面:errror.html

第二关:Encode 解密


老方法,把页面下载到本地。所有 JS 代码都是 Encode 加密过了的,解铃还须系铃人,我们找一个 JScript.Encode脚本加密与解密 的网站进行解密,然后得到关键代码,如下:
function PassConfirm() {
    var htm = document.password.pass.value
    if (htm == "********") {
        window.open("jpg.htm", "_self")
    } else {
        window.open("error.htm", "_self")
    }
}

本关密码:"********"(没有双引号,密码就是八个星号)
下关页面:jpg.htm

第三关:网页源码


额,这个页面一进去就要求输入帐号密码,这也没办法查看源文件,所以这里可以借助QQ旋风把当前页面下载下来。新建一个任务,下载路径就写这个页面的路径就可以了。

下载完成后我们查看源代码,里面都是明文显示的,但是我看半天没看明白进入的ID和PW是什么。我们不管了,关键是看下关的入口在哪。

function PassConfirm() {
    var htm = document.password.pass.value
    if (htm == "htm") {
        window.open("3.14159265358979323846264.htm", "_self")
    } else {
        window.open("error.htm", "_self")
    }
}

进入帐号密码:这个我没看明白
本关密码:"htm",虽然是密码,但是貌似没用
下关页面:3.14159265358979323846264.htm

第四关:XXOO 解密


这关大部分都是明文显示,只不过关键的显示密码的地方却被加密了,这里因为不知道是什么加的密,所以折腾了很久。但是后来想到以前玩软件破解的原理,把等于改成不等于,这样就大功告成了。
function PassConfirm() {
    var x = document.password.pass.value;
    if (hackervip_compile(x) == unescape("%88%DF%D9%9E%96%C9%C4%CE%D0%D7%E8%DF%D9%9E%91%D2%DC%9C")) {
        eval('' + he(unescape("%9F%CD%D1%D7%E6%9CO%u6094%uB609%uA4FC%uDF27%uE13A%u507F%u8EE7%uE140%uCC91%uC9C0%uA007%u5074%uFF28Pd%B2%E0%D7%D2%D3%E6%A5%9D%DF%D5%D3%96J%8F%E6%D8%C7%C9%C4%CE%D0%D7%E8%DF%D9%9E%96%DC%E1%D9%8ENN%81%D2%D8%D1%D2%88K")))
    } else {
        document.password.pass.value = '';
        return false;
        window.open("error.htm", "_self")
    }
    return false
}

这里我们把 “if (hackervip_compile(x) == unescape” 中的等于符号改成 “!=” ,然后再本地运行页面,什么都不需要输入,单击确定,这样就能够获得到下一个页面的地址。
本关密码:不知道
下关页面:my_hackervip.html

第五关:乱码


本人不才,到这里就卡壳了,页面一进去都是乱码,源文件里面也是乱码,让我无从下手。想到优子那去看看他的解题方法,结果他也和我一样,看到的都是乱码。到底是我们的问题还是这网页有问题?

问问百度谷歌大叔,发现很多人都卡在这一关,网上也有解密方法,但是感觉牛头不对马嘴,写的方法和我看到的完全不同。

不过也差不多了,过了四关,比以前多了三关,嘿嘿。

已有 27 条评论 »

  1. 阿邙
    阿邙 2010-07-19 08:06:44

    沙你个发~
    不敢玩 怕给电脑玩坏了

  2. woyigui
    woyigui 2010-07-19 11:49:04

    如果是乱码,可以有以下思路:
    1、调整为其他页面编码。
    2、看页面头部,有可能是其他 RAR、jpg 等格式的文件,直接显示的,下载回来,改成相应的扩展名。。

  3. 浩子
    浩子 2010-07-19 11:55:46

    额……
    强,不会的飘过……
    广告点了下下…… :mrgreen:

  4. knife
    knife 2010-07-19 12:35:04

    看都看不懂

  5. 丕子
    丕子 2010-07-19 12:50:28

    一堆加密

  6. 冰剑
    冰剑 2010-07-19 13:25:32

    @阿邙
    汗,没有危害的。

    @woyigui
    后来试了jpg格式,弄不出来。

    @浩子
    嗯,你每天点一下就可以了,哇哈哈。

    @knife
    折腾多了就懂了。

    @丕子
    是的,我讨厌加密。

  7. 万戈
    万戈 2010-07-19 18:46:00

    仰望你啊!!!高手!!!

  8. 门新闻
    门新闻 2010-07-19 23:35:58

    牛的,我基本看不懂

  9. 麻烦积点德
    麻烦积点德 2010-07-20 01:00:44

    背景很不错呀。。有点外国twitter或者某些短网站网站的味道

  10. 冰剑
    冰剑 2010-07-20 04:06:54

    @万戈
    其实前面不怎么难,像你这样经常折腾 js 的肯定也行。

    @门新闻
    慢慢学呗。。

    @麻烦积点德
    背景图片是国内微博嘀咕的。

  11. FORECE
    FORECE 2010-07-20 07:48:07

    http://game.enet.org.cn/vip.html
    和http://game.enet.org.cn/my_hackervip.html
    有关联。。。。。

  12. diyidu
    diyidu 2010-07-20 08:31:06

    呵,我倒是做了几款解密工具,有兴趣去看看哦.

  13. 海天
    海天 2010-07-20 08:56:58

    记得上次玩的是20多关的~

  14. 寨主
    寨主 2010-07-20 09:43:56

    高级玩意儿,我不才,看看就算了。

  15. 蛋卷
    蛋卷 2010-07-20 20:22:14

    这个曾经看到过

  16. 坚强的小展
    坚强的小展 2010-07-20 20:55:29

    你这边挺有意思的。。。为什么会有个博客关闭的倒计时啊?

  17. 冰剑
    冰剑 2010-07-20 21:12:19

    @FORECE
    也是乱码,看不出什么的。

    @diyidu
    我自己有本地的,呵呵。

    @海天
    :shock: 你比我牛逼多了。。

    @寨主
    一边看也可以一边学嘛。

    @蛋卷
    这个游戏是出来了几年了, 我还是几年前玩的,那个时候只能过第一关。

    @坚强的小展
    倒计时终止是2010年12月21日,为什么关闭你懂了吧,哈哈。

  18. 黑莓手机网
    黑莓手机网 2010-07-20 21:39:58

    技术很高啊,收藏了

  19. francis
    francis 2010-07-21 15:08:42

    由42行的unescape可得,编译后的密码为 "ˆßٞ–ÉÄÎÐ×èßٞ‘Òܜ" (不包含引号);再由 28~35 行的编译过程可以得到反编译过程,代码如下

    function decode(code)
    {
        var c = String.fromCharCode(code.charCodeAt(0) - code.length);
        for(var i = 1; i < code.length; i++) {
            c = c + String.fromCharCode(code.charCodeAt(i) -
                c.charCodeAt(i - 1));
        }
        return c;
    }

    最后得到密码 vip.hackervip.com/ :twisted:

    1. wyf
      wyf 2011-11-04 23:55:30

      直接保存网页,然后把那个if去掉了,发现是 .\my_hackervip.html,就知道了。。。

  20. 小不点
    小不点 2010-07-22 12:27:39

    ……都是牛逼的强人啊,我喜欢你的风格

  21. Zk
    Zk 2010-08-02 23:51:39

    之前玩过下,但玩不了个关卡··

  22. 随缘
    随缘 2010-08-10 09:43:05

    好玩 :cool:

  23. 方丈
    方丈 2010-08-18 19:13:53

    用这个解密试试http://code.google.com/p/dharmaencoder/ :mrgreen:

  24. 我心飞翔
    我心飞翔 2010-08-18 21:02:47

    我玩好了会不会把我电脑也黑了

  25. 冰剑
    冰剑 2010-08-18 21:45:57

    @方丈
    玩的兴趣已经过了,呵呵。