最後一集,有 91 關起至最後暫停關卡的雷。
第 91 關
這一關的主題是火狐的彩蛋。維基百科上已經有它的詳細說明了,如果手邊沒有火狐的也是可以從那裡找到答案;標題上所取的段落則是 20 年前當時最普遍的版本。
第 92 關
把前面的 82 和 86 兩個關卡結合起來出題。這個能出成題其實還真的很碰巧,因為 86 題的數字不是我給的,但應用到 82 關 (支線) 中用到的鑰匙卻正好得到有意義的東西。
第 93 關
嗯,又是把一般名詞當成專有名詞來出題的出法了。上一關的答案當時的我能聯想到的就是這個東西,那正好我也多少對這個作品有印象所以就拿來出題了。至於問的東西就只是作品細節而已。
第 94 關
換新資料夾了。同樣是這種紫色,但這次卻稍微有向藍紫色偏了些——因為鑰匙稍微不一樣了。這個東西才是這類型「編碼」中比較知名的一個,所以為了稍微增加難度把長訊息給拆成五段:前兩段在原始碼中相對顯眼的位置,第三段在圖片中,第四段在原始碼的底部,第五段在圖片內容裡。組合起來再解碼就有答案了。
第 95 關
我不確定現在還有多少人知道這個系列的原捏他……是的,因為是 95 關所以放了個 Win 95 娘上來當題目;當然其他的 OS 娘也就跟著出來放在圖片資料夾裡了 (還有一個不是「OS 娘」的東西混在裡面做提示)。因為檔名不好猜的關係,這關的圖片目錄也是少數我開放檔案列表的目錄。找出來之後它們的內容註解裡各有一個字母,重組就是答案了。
後來 Windows 7 官方出了奈奈美之後,我把原本的七字母答案改了一個字母,再把奈奈美也給她一個字母補進去,改成另一個八字母的答案了。重組方式有變,不過反正本來的答案就不是照出生 (?) 順序所以沒差。
這裡有個小捏他
原本的七字母答案trouble
是在捏他一個滿著名的 OS 娘 Flash 動畫;後來改的八字母就沒什麼關係了,單純只是個只改一個字母後能湊出來的單字而已。因為有這麼一個改動的關係,如果仍然答 trouble
的話會告訴你漏了奈奈美沒找到,不過因為原來的七個字母也改了一個的關係其實這個提示有點不太對……第 96 關
……坦白好了:這關其實是其他遊戲裡的關卡。當初在某個遊戲裡看到這個頗有創意的想法,用關燈遊戲來拼字,所以就自己實作了一版來當題目;到底是哪個遊戲我也忘了,可能是哪裡看到的小遊戲吧。核心程式碼也同樣用了當年唯一會用的 escape 編碼,然後為了防人直接解出來,最後解出的網址是個 php 頁面,我在裡面檢查 referer 是不是來自這裡,不是的就拒絕掉,是的才導向到下一關去。
第 97 關
畫面上列著的是寶可夢的第二、三、四世代遊戲的封面。對寶可夢有點了解的應該會直接猜到答案了,不過這題的主謎題並不是這個:這關的網址跟封面圖的檔名其實指代著另一項東西:結婚週年的紀念物。可能因為都是以貴重物代表的關係吧,正好可以用這層關係把兩個不太有相關的領域給連在一起。原始碼裡面有留一個被註解掉的圖檔,要問的就是它所代表的是什麼——前面之所以說有點了解的會猜到,就是因為這個代表物正好也是我故意漏掉的第四世代遊戲。這兩條解路線我都承認是正解。
第 98 關
95 關玩了 OS 娘,那 98 關就來問真正的 OS 好了。這題問的東西理論上絕大多數人應該都要找維基 (我自己也是因為會看各種雜學文章才知道的),所以放這裡應該沒什麼問題;比較有問題的其實是我標題上選的 OS。
答案捏他
就我後來所知,一開始內部代號叫做 longhorn 的作業系統跟現在的 Windows Vista 其實是兩個不怎麼相關的專案,而這其實是因為 longhorn 好像曾經砍掉重練過一次的樣子。專案代號好像在砍掉重練時有繼承,但是要說這就是 Vista 的開發名好像也不怎麼正確就是了。名字輸入進去找到下一張圖之後,那張圖的畫面藏了答案。
第 99 關
這關的點子我是從當年會去的動畫音樂分享網站裡的某次活動中看到的:把某個詞拿來解釋成十六進位位移。選的是相對多人 (?) 知道的 Final Fantasy Ⅶ,所以就是把這張圖的 0xFF7 這個位移找出來。裡面這段話給了另一個檔案,但那個檔案是 wav 檔……。
玩到這裡了應該要把沒線索時拿十六進位瀏覽器看檔案當做手段之一了吧?於是可以看到在檔案的開頭藏了一段話。這段話就是個滿常見的謎題題目了,就不在此詳解;解出來的五字母詞就是答案,不過我有點忘記是不是因為 FF7 的關係選的答案也是 FF7 的一個角色名就是了。
第 100 關
標題上寫了這關是 88 關再現,不過原本這裡其實有一個梗在的:原本 88 關的經緯度也是這個地方,不過那裡只要答大區域,要到了這一關才需要把實際小地點給答出來。後來因為這樣搞實在會讓人混淆,所以 88 的經緯度改地方了,但這一關因為接下來的梗所以沒有換。等於是我直接把這題變成送分題……
第 101 關
於是很順便地就又換了個資料夾了。既然是為了 101 關放的梗就來問一點豆知識題吧。
……可以看到我已經快沒點子了。
第 102 關
這關標題是 No maths,所以頁面上的那條等式不是數字的和;配合上原始碼的提示,這個其實是前面也用過的回收梗:舊關卡的組合。由於提到的關卡有的有密碼格有的沒有,要組合的東西其實是關卡檔名。
第 103 關
……有誰還記得這個偶像組合的? XD
這關她們只是門面,標題才是這關要給的鑰匙——然而拿去搜尋就會發現這其實是將鑰匙應用在鑰匙上的結果。於是把網頁檔案名用一次這個鑰匙就能得到彩蛋頁面,裡面就是答案了。
第 104 關
這個又是另一個新鑰匙關了。為了稍微增加一點難度,所以隨便地把這個鑰匙編出一個縮寫再小小地擴寫成一段意味不明的文字。是說這個鑰匙似乎是出自 Mac 那邊的東西的樣子?可能因此我才在相對晚的時間知道吧。理論上現在各大軟體應該都能開這個東西就是了,不過我當時的實驗至少 Winzip 有支援,所以放了一張圖片是 Winzip 的圖示。
然後事實上這關有兩個這個鑰匙能使用的地方。一個是改副檔名,會得到一個比較短的訊息,說東西不在這裡;另一個則是在原始檔裡,這個才是正解。雖然我想因為原始檔裡的那段還滿大一塊的應該不多人會被副檔名那個拐走就是了。
第 105 關
一個看起來很複雜的迷宮。嘛,有耐心的話是可以慢慢走啦,但其實我這裡是想要推廣一個這種迷宮的速解法,所以才會生成一個這麼大的迷宮。
咦?怎麼解?都寫在原始檔裡啦。如果被橫向捲軸蓋住的記得往右拉。
解出來之後就會看到答案了。
第 106 關
記得我前面提過後來我搞懂了 notpron 那種要輸入帳密的密碼框是怎麼實作的,這關就是把它拿出來試試身手。技術上,這是使用了 HTTP 基本認證機制進行的;而在伺服器方的實作上,Apache 有提供 AuthType 等相關指令進行處理,所以我可以用 .htaccess 去指定目標檔案要用什麼帳號密碼來認證。Notpron 很多時候會把通關提示放在這個架構中一個被稱為 realm 的欄位裡,實際上顯示出來時會是一段跟在帳號密碼輸入框旁邊的文字;之所以會稱為 realm 我想是表示原本這個地方是設計來告訴使用者你現在登入的地方是什麼地方吧。
那當然,帳號密碼不會這麼簡單給出來。主頁的圖片叫做 pic106alpha.jpg,所以想當然會有其他希臘字母為名的圖片……只是有東西的只有前兩張,剩下的 22 張都是隨便一句話之外真的什麼東西都沒有。前兩張的圖片中跟內容裡各有帳密的一個字母,然而序號編到了 5 所以還缺一個——那一個就是出現在上面講到的 realm 文字當中。不過近年的瀏覽器好像不會顯示這個 realm 文字了的樣子?
第 107 關
這關我覺得稍微有點做失敗了。畫面上有一個 X 圖示,但是看了原始碼發現它的檔名是 106,所以換成 107 之後得到一個奇怪圖案的圖示。
這關的梗其實是這個副檔名:ico 格式,這個是微軟的圖示格式。檔案裡的圖片格式跟 BMP 差不了多少 (微軟在這兩個格式之間共用了不少內部結構),不過除了圖片之外還有一個「遮罩」圖 (以 1-bit 深度的黑白圖片格式儲存),這個遮罩圖是用來表示在畫圖示時,要把畫面上遮罩沒蓋到的部份清空再把這些地方的圖畫上去,可以說是個很樸素的「透明」表示方式。這關的解就是:當這個圖示實際畫出來時 (例如瀏覽器中或是下載下來的圖示檔) 會應用遮罩圖,這時雖然圖片顏色很怪,但遮罩會顯示出字母來;而如果用 (至少以前的) 小畫家打開的話,由於它缺少透明相關操作,因此只會簡單載入圖示全圖不管遮罩,這時圖片顏色就會是另外的字母,兩者合一即為答案。
不過問題在於,由於圖片顏色要能分出字母來,蓋上遮罩之後遮罩的形狀並不是那麼容易看得出來。簡單來說,這是個爛透了的圖示檔 (不管是一般應用還是關卡應用上都是)。話說回來,我還沒用現在的小畫家開過這個圖示,不知道新版的這個問題有沒有修正了……
第 108 關
那個紫紅色又出現了。所以要做的事只有一個。咦?分數要怎麼辦?當然轉成小數啊。那個分母是個大提示呢。
於是我們得到了一個看似檔名的字串。下載下來解開之後……是一百多個檔案。簡單開了幾個看了看會發現這跟 77 關很像,都是每個檔案指向下個檔案的結構。109.txt 比較大,裡面在隔了一大串空行後下面有一個表格。
是的,這又是一關寫程式做比用手做來得輕鬆的題目了。照著檔案指向串起檔案之後,就能看到這些檔案一共形成了兩個大圈;把表格中其中一圈的數字標記起來就能看到答案了。
……當年的我還真喜歡搞人。
第 109 關
這關就比較接近傳統的謎題了;這個點子大概也是在某個脫出遊戲中得到的靈感吧?
標題寫著 Clock Hands,所以把畫面上的數字當做時間,化成鐘面之後可以看到它們的兩根針都夾著一個數字,這些數字進行頗為明顯的轉換就是答案了。
第 110 關
看到槓掉 68 關就應該要知道這又是另一個日文解碼關了。不過這次的梗更偏門:我去用了《獵人》文字。眾所周知 (?),《獵人》當中的文字是日文假名的代換編碼——如果你不知道 (或是根本沒看過《獵人》),我還寫了段小故事放在彩蛋頁面裡充當提示;那裡甚至沒有明說《獵人》這部作品,只有讓小傑跟奇犽登場而已,他們的名字還是藏在頭像圖片後面的檔名。
然而,究竟是要代哪一關的解碼?槓掉的 68 關就是在指示要用的是 68 關的那個 (比較簡單的) 解碼。已經把《獵人》這個提示藏到不知道幾層後面了就不要在這裡搞玩家了。
第 111 關
這兩個出現在左上角的圖示跑到中間來了。在沒有其他提示的狀況下問題只可能在它們身上,於是抓下來一看果然在裡面看到提示了。兩個檔案各有一半提示,組合起來進行操作就是答案。
這關是我終於找到方法在 gif 裡藏東西了。Jpeg 的藏法我早就知道 (而且很早就出成題目了,上面也在好幾關裡有用到),後來研究了下 png 也找到要怎麼塞字串在裡面,但 gif 則是又過了好一陣子才找到這個它的特殊區塊。
「暫時」終點
於是這就是《高手過招》所有的關卡了。原本預計在這之後還有一波更新的,但因為一直湊不到適當數量的題目所以就一直擺著,這一擺就是 20 年過去了……。我的紀錄當中原本就有約五關左右是已經做好的,不過當時的計畫是湊到 128 關才停,要能有這麼後面的難度的關卡其實不是很容易。
噢對了,中間的驗證碼。說穿了不值錢,這個驗證碼就只是一串大部份亂數的字元,我只在當中埋了兩個欄位:一個是伺服器所抓到的 IP,另一個是取得驗證碼當下的伺服器時間。(怎麼埋的就不說了,不然我會收到一堆舊時戳的驗證碼,這會很麻煩) 這兩個欄位一來做為一點 sanity check 以防有人亂送,二來伺服器時間可以作為一個相對客觀的「誰先通關」的標記,以防我漏信造成名次誤值。(結果我還真的有漏過一次信,其中一個通關者晚了好幾個月才被我發現;當然那個人的名次我依照驗證碼中的時間放到正確的地方去了) 當然為了簡單的防止真的有人亂送,我在這裡面另外也埋了檢查碼,所以有亂送的話我應該是都能抓出來的。
在這之後
系列的第一篇文裡我有提到說「最近有想要來為這個做一些事」。事情是這樣的:現在它在的台大資工系工作站空間前陣子有些變動,於是有想把《高手過招》給搬出來的計畫。
於是我挖出了當年留下來的作業紀錄,然後想到說裡面有好幾關其實因為各種原因已經壞掉了,要不要順便把它修好,那既然要修了要不要就乾脆留個文章紀錄好了——然後就是這系列文章了。
也就是說,我想要來做的事其中之一就是:把《高手過招》搬出台大資工系工作站到我自己買的空間來。各位看到這篇文章的時候已經搬完了,位置在 https://sk3.cruciferslab.net/game/game.htm。(把這個域名買下來的其中一個目的就是在像有這種東西要丟出來時,能有一個我自己能管理的地方用。) 這是在 Google 雲上面的空間,然後前面還有 Cloudflare 幫忙,應該不太會被亂打吧……?而原本要做的修關卡當然也完成了,所以有些細節應該會跟我在這裡寫的有些出入。
再接下來嘛……檯面下現在有幾個東西在轉,不過到底什麼時候會出來還真的不知道,畢竟還是有白天的工作和一些積著的遊戲要消化掉。或許今年可以讓我有動力把這些東西都給轉出來?