本文的遊戲繼續前文展開,其餘各篇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