本文的游戏继续前文展开,其余各篇MU Complex攻略地址以下:react
解谜游戏 MU Complex 的过关图文攻略 (Episode1)算法
http://my.oschina.net/Tsybius2014/blog/358145安全
解谜游戏 MU Complex 的过关图文攻略 (Episode2)(上)ssh
http://my.oschina.net/Tsybius2014/blog/693873工具
解谜游戏 MU Complex 的过关图文攻略 (Episode2)(下)atom
http://my.oschina.net/Tsybius2014/blog/693923加密
咱们下一步要进军的是地图右上角的Section,为此咱们须要先登陆主机evanicespa
使用ssh命令登陆evanice.net
evanice被形容为一个“stupid girl”,由于巡查员说她的密码太过简单,容易被破解,不过,在securty.note中,evanice为本身辩解说本身的密码足够安全了。翻译
在hint文件中能够找到evanice密码的线索:
这个线索每次玩游戏时都不同,也有多是“mxslwhu << 3”等,不过解谜的方法都是不变的,即对全部的字母取前第n个字母进行替换,evanice使用了最为简单的凯撒密码对本身的密码进行加密,最后求出的密码是“jupiter”。使用ssh-agent命令并输入密码“jupiter”,就能够登陆到主机dolanskanvo了。
dolanskanvo也须要玩bot游戏解锁ls等命令,这一关的地图以下:
与以前kyletopz主机不一样的是,这一关对命令数量有限制。
main序列最多容纳10个命令,F1序列最多容纳3个命令。若是不使用F1序列,直接完成本关须要16个命令:
bot push cw bot push move bot push move bot push cw bot push move bot push move bot push ccw bot push move bot push ccw bot push move bot push move bot push move bot push ccw bot push move bot push move bot push move
因此咱们须要使用F1减小输入的命令数:
bot push f1 move bot push f1 move bot push f1 move bot push cw bot push f1 bot push cw bot push f1 bot push ccw bot push f1 bot push ccw bot push f1 bot push ccw bot push f1
最后输入指令bot play启动机器人, 机器人成功到达终点后,计算机解锁,效果以下:
打开database.txt,获取登陆到olivierriddle的密码,登陆olivierriddle
使用camera命令,能够看到一台很是老旧的电视机,电视机里面是个打字机,打字机上面写着一些电影台词。
这些台词来自电影《洛丽塔》(1962):
Dear Dad, How's everything? I have gone through much sadness and hardship. I'm married. I'm going to have a baby. I'm going nuts because we don't have enough to pay our debts and get out of here. Please send us a check. ~ Dolores Lolita Haze from Lolita
咱们能够在IMDB上相关页面看到该部电影的详细资料:
Lolita (1962):http://www.imdb.com/title/tt0056193/
在ebolan.mail中能够看到,olivierriddle有个兄弟为这部电影工做
在演职员信息中能够找到这部电影的配乐是Nelson Riddle,那Nelson想必就是Olivier的这个兄弟。密码就是“nelsonriddle”。
解锁后,得到了使用ls命令查看隐藏文件的能力。至此右上角的区域也彻底解锁了。
下一步咱们开始探索左下角的区域:
咱们先从glenrisson开始,用ssh登陆glenrisson
glenrisson下的目录结构以下:
其中sec05ctrlconfig.txt是一个配置文件:
咱们须要使用nano命令修改这个配置文件:sudo nano sec05ctrlconfig.txt
在下面新增一行 glenrisson: "true",并将lukeedison设定为false(由于最下面有一行注释说部分系统可能只容许最多四我的具备权限),修改完毕后按ESC键保存并退出。
修改完毕后,输入unlock命令便可解锁hosts.lock,使用其中的密码登陆elizajones便可。
elizajones中的ebolan.mail打开后内容以下:
经过这个mail能够找到以下几个要点:
一、密码天天都会有变化
二、你的私钥是:subatomicreaction(中文意为亚原子反应)
三、e.bolan写了一个脚本天天推送新的密码,推送密码的帐户是 @mcpltokgen
四、密码使用维吉尼亚密码算法加密(Vigenère cipher)
咱们在twitter上找到帐户 @mcpltokgen
https://twitter.com/mcpltokgen
这个帐号天天会定时发送一个密码,最新发布的密码是“LBF PTGEEQIH IU YNTTDXHI”
掌握了算法,咱们也本身能够实现一个Vigenere密码加密解密的工具类,以下面是一段实现此功能的C#代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VigenereCypher { /// <summary> /// Vigenere密码算法加密解密工具类 /// </summary> class VigenereHelper { /// <summary> /// 转换矩阵 /// </summary> private static string[,] matrix = new string[26, 26]; /// <summary> /// ASCIIEncoding /// </summary> private static ASCIIEncoding ascii = new ASCIIEncoding(); /// <summary> /// 判断工具类是否已初始化 true:已初始化,false未初始化 /// </summary> private static bool isInit = false; /// <summary> /// 初始化工具类 /// </summary> private static void InitVigenereHelper() { for (int i = 0; i < 26; i++) { for (int j = 0; j < 26; j++) { int num = i + j + 65; num = num <= 90 ? num : num - 26; byte[] barray = new byte[] { (byte)num }; matrix[i, j] = ascii.GetString(barray); } } } /// <summary> /// 加密 /// </summary> /// <param name="text">明文</param> /// <param name="key">密钥</param> /// <returns>密文</returns> public static string Encrypt(string text, string key) { if (!isInit) InitVigenereHelper(); if (string.IsNullOrWhiteSpace(text)) return ""; if (string.IsNullOrWhiteSpace(key)) throw new Exception("密钥无效"); string code = ""; key = key.ToUpper(); text = text.ToUpper(); List<int> keyNumList = new List<int>(); ; for (int i = 0; i < key.Length; i++) { string str = key.Substring(i, 1); keyNumList.Add((int)ascii.GetBytes(str)[0] - 65); } int idx = -1; for (int i = 0; i < text.Length; i++) { if (text.Substring(i, 1).ToString() == " ") { code += " "; continue; } idx++; code += matrix[keyNumList[idx % key.Length], (int)ascii.GetBytes(text.Substring(i, 1))[0] - 65]; } return code.ToString(); } /// <summary> /// 解密 /// </summary> /// <param name="code">密文</param> /// <param name="key">密钥</param> /// <returns>明文</returns> public static string Decrypt(string code, string key) { if (!isInit) InitVigenereHelper(); if (string.IsNullOrWhiteSpace(code)) return ""; if (string.IsNullOrWhiteSpace(key)) throw new Exception("密钥无效"); string text = ""; key = key.ToString().ToUpper(); code = code.ToString().ToUpper(); List<int> keyNumList = new List<int>(); for (int i = 0; i < key.Length; i++) { string str = key.Substring(i, 1); keyNumList.Add((int)ascii.GetBytes(str)[0] - 65); } int idx = -1; for (int i = 0; i < code.Length; i++) { if (code.Substring(i, 1).ToString() == " ") { text += " "; continue; } idx++; for (int j = 0; j < 26; j++) { if (code.Substring(i, 1).ToString() == matrix[keyNumList[idx % key.Length], j]) { byte[] bt = new byte[] { (byte)(j + 65) }; text += ascii.GetString(bt); } } } return text.ToString(); } } }
计算结果以下:
今天的密码是FFFGLDGI,使用power命令,输入密码,便可解锁ninafez
坦白来讲我并不懂法文,因此这段话的意思就只能用Google翻译来了解了~~~
ninafez主机中有一个文件note,内容以下:
里面提到了四个地铁站:
Hotel de Ville,巴黎市政厅,位于巴黎地铁11号线
Bolivar,波利瓦尔站,位于巴黎地铁7号线支线
Poissonniere,鱼船站,位于巴黎地铁7号线
Dugommier,杜戈米埃站,位于巴黎地铁6号线
巴黎地铁交通图能够参考这张维基百科上存储的图片:
https://upload.wikimedia.org/wikipedia/commons/2/2b/Carte_M%C3%A9tro_de_Paris.jpg
在其中咱们依次找到这四个站:
这四个站的中心,是Temple,所以本关解锁文件priavate.key的密码就是temple
解锁后获取新的能力,使用cat命令打开后缀名为.crypt的文件,好比刚才在glenrisson主机中没法打开的wterk2.crypt文件:
至此左下角的Section也彻底解锁了
END