關於我逃出胡立的異世界 R30 這件事之攻略包
前言
由於這個系列是紀錄挑戰胡立分享的遊戲 [異世界?r3:0挑戰] 的挑戰紀錄,也不知道該算在哪個分類,所以就乾脆都放在 JavaScript 下囉~
簡易介紹
這是一款由胡立以及他的學生一起開發的一款小品遊戲,叫做 [異世界?r3:0挑戰] 個人已經小玩了一下,是真的非常的棒,也私下問過胡立能不能讓我寫攻略文分享,讚嘆胡立感謝胡立~
如果你喜歡這個遊戲也歡迎分享出去,感謝胡立與他的學生 (Min Wei)
遊戲網址: 異世界?r3:0挑戰
進入遊戲後你會看到基本的介紹
簡單來講接下來我們每一關都必須去動腦尋找 token (你可以當作密碼) 藏在哪裡,舉凡 JavaScript、HTML 甚至 CSS 中都有可能唷~
※ 如果你遇到卡關,可以使用 /lvX.php?hint=help
來得到大賢者的提示唷! (X 代表數字,如果是第三關就是 /lv3.php?hint=help
)
防雷線
注意此區塊式防雷線,以下都有附上答案與解法,所以建議自己嘗試看看過不了再來看這一篇文章,否則這樣就會失去樂趣哩
第一關
第一關進入遊戲就跟你來個很簡單的開場白
在第一關它就給你答案了,畢竟要是太難的話…XD
所以廢話不多說,答案就是 r30:start
1 | https://r30challenge.herokuapp.com/lv1.php?token=r30:start |
第二關
第二關開始你會得到一串看似亂碼的數字
但是其實這並不是亂碼,而是所謂的進制,一般來講進制有分二進制、八進制、十進制、十六進制
那麼 100101001001100001110
其實代表的是二進制,你可能會說為什麼?
二進制很簡單可以理解,簡單來講就是當滿二就進位,所以你在這一串數字上並沒有看到任何超過 2 的,故我們可以判定這是二進制
接下來打開進制轉換的網站,我是使用此網站 → http://www.kwuntung.net/hkunit/base/base.php
然後填入數字並由 2 進制轉成 18 進制,那你就可以得到答案哩~
所以答案就是 bad18
1 | https://r30challenge.herokuapp.com/lv2.php?token=bad18 |
第三關
接下來依照畫面提示就是要召喚 console 控制台來找 token 囉~
當你打開 console 控制台就可以看到答案了
所以答案就是 divsurprise
(花括號不算)
1 | https://r30challenge.herokuapp.com/lv3.php?token=divsurprise |
第四關
第四關開始也是一樣要我們找出瀏覽器中的 token
相信你打開立刻就可以看到答案了
所以答案是 commentfaker
(一樣花括號不算)
1 | https://r30challenge.herokuapp.com/lv4.php?token=commentfaker |
第五關
接下來這一關 NPC 超好心直接給你 token
所以我們就來輸入 tRaNspar3nT
吧~
1 | https://r30challenge.herokuapp.com/lv5.php?token=tRaNspar3nT |
不意外你會看到你失敗了 (WT…?)
讓我們回頭打開 console 控制台來看原因吧~
看似都沒有問題,但是如果你嘗試點開 <span class="special">{csspersona!}</span>
你會發現裡面竟然還有一層!
原來這一關使用的 CSS 偽元素障眼法來遮住真正的答案…
所以真正的答案是 csspersona!
1 | https://r30challenge.herokuapp.com/lv5.php?token=csspersona! |
第六關
一進來你絕對滿滿的 WT…????????在看這一篇文章的你可能會說是我騙你
但是如果你眼睛快一點應該會發現原因,那就是我們進入第六關之前被強制跳轉啦~~
這一點我們可以從 Url 觀察出來,而且在進入關卡的時候其實會閃一下,那到底該怎麼做才能取得 token 呢?
方法很簡單那就是在進入關卡之前快速按一下 ESC!
此時你就會看到答案是 windowhack
1 | https://r30challenge.herokuapp.com/lv6.php?token=windowhack |
第七關
接下來這一關你看到提示訊息可能會覺得 WT…?要我從茫茫大海的 window 去找 token 嗎?
沒關係,我們試著打開 console 控制台,並輸入 window
接下來讓我們從大海裡面找吧~
所幸一打開就看到疑似答案的 token
所以這一關答案是 emojicute
1 | https://r30challenge.herokuapp.com/lv7.php?token=emojicute |
第八關
接下來這一關要我們去翻 cookie
所以我們打開 console 控制台看看 cookie,然後切換到儲存空間,這時候就可以看到 cookie 的值
但是這邊有一個重點要注意,答案看似是 %7Bcookieyumyum%7D
,但其實是有問題的
首先讓我們打開 URL 編碼表,%7B、%7D 各代表著花括號
所以真正的答案是 cookieyumyum
1 | https://r30challenge.herokuapp.com/lv8.php?token=cookieyumyum |
第九觀
接下來考驗的是我們對瀏覽器 response 的熟悉度
那麼我們一樣打開 console 控制台來找看看 response
通常這種東西極有可能藏在 document 裡面,所以我們就來看看 document 的 response 訊息吧~
果然 token 是藏在這裡,所以答案是 headshot
1 | https://r30challenge.herokuapp.com/lv9.php?token=headshot |
第十關
接下來這一關是比較困難的,我自己大概就卡了 3 小時…
首先提示訊息說在 HTML 中有一段 PHP 程式碼
打開 console 控制台就可以看到 PHP 程式碼
那麼我們就將這一段程式碼複製下來貼到線上 PHP 編譯器也可以
(我是使用此編譯器 PHP Sandbox)
將剛剛取得的程式碼貼近線上編譯器中
1 | function isTokenValid($token) { |
從程式邏輯第一行 if (strlen($token) !== 8) return false;
來看這一個答案至少字串長度是 8,所以我們至少要找到 8 的長度
這邊老實講卡了超久,只好召喚大賢者給我提示
我看到公倍數的時候 WT…公倍數還要長度是 8 的…說真的公倍數的計算方式我完全不記得,所以 G 了一下
首先公倍數是什麼,在講公倍數之前必須先了解倍數、公倍數、最小公倍數,否則絕對抓不出來
3 的倍數有 3、6、9,12、15、18、21、24、27、30…
4 的倍數有 4、8、12、16、20、24、28、32、36…
公倍數就是數字中共同的倍數,就是公倍數
那最小公倍數就是取公倍數中最小值
所以 3 與 5 的最小公倍數是 12
如果換作是 [2, 5] 的公倍數呢?那麼最小公倍數就是 10,WHY? 讓我們列出倍數表
2 的倍數 2、4、6、8、10、12、14、16、18、20…
5 的倍數 5、10、15、20、25、30、35、40、45、50…
接下來稍微分析一下這一些 PHP 程式碼,首先 strlen()
是用來計算字串長,所以傳入的答案極有可能是字串,那 ord()
則是將字串轉回 ASCII 碼
所以我們就可以試著使用這個觀念(瞬間惡補數學)來找尋答案
但是…
這題就留給你自己去想吧 :D
因為我也還沒破關呢~~~~~~
但是聽胡立透漏答案並沒有唯一,只要傳入合理的答案都是正確的唷~