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

第一关:Escape 解密

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

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

1
2
3
4
5
6
7
8
9
10
11
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脚本加密与解密 的网站进行解密,然后得到关键代码,如下:

1
2
3
4
5
6
7
8
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是什么。我们不管了,关键是看下关的入口在哪。

1
2
3
4
5
6
7
8
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 解密

这关大部分都是明文显示,只不过关键的显示密码的地方却被加密了,这里因为不知道是什么加的密,所以折腾了很久。但是后来想到以前玩软件破解的原理,把等于改成不等于,这样就大功告成了。

1
2
3
4
5
6
7
8
9
10
11
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

第五关:乱码

本人不才,到这里就卡壳了,页面一进去都是乱码,源文件里面也是乱码,让我无从下手。想到

优子那去看看他的解题方法,结果他也和我一样,看到的都是乱码。到底是我们的问题还是这网页有问题? 问问百度谷歌大叔,发现很多人都卡在这一关,网上也有解密方法,但是感觉牛头不对马嘴,写的方法和我看到的完全不同。 不过也差不多了,过了四关,比以前多了三关,嘿嘿。