歷經漫長的六日(原本預估只想撐住四小時,結果百米賽跑變成馬拉松... orz),紀念黑暗執行緒網站百萬人次的黑暗尋寶活動,終於由CCN在2009/10/15 00:36達陣成功,抱走VX-7000! 恭喜CCN之外,也向各位參賽者說聲辛苦了。

【以下有雷,會提及解題關鍵,還想保留闖關樂趣的人回頭是岸】

依粗略統計,這次比較威的關卡是第1.5關(Seednet網頁空間免費加贈的URL Redirect及HTTP 404)、第3關、第6關,跟許多人想破頭卡很大的第7關。其實比賽開始後10小時(16:38)就有人(Orange)抵達第7關,排除1.5關的干擾後,又有很多高手紛紛來到第7關,但卡在一張達文西密碼電影海報的照片的JPG就沒了頭緒。於是分別在10/11 22:22追加公告關於EXIF的提示,10/12 22:00公告變位字提示,10/13 22:00公告CLSID提示,10/14 22:00公告"茶包射手的獵物提示",終於由CCN率先破解謎語,抵達終點。

現在來分享一下本次關卡設計的背後祕辛及破解說明:

  1. Why GUID?
    由一個網頁找到下一個網頁的遊戲,URL是關鍵,如果URL的組合可以被預期或猜測,就可能發在不知線索的情況下,直接猜中下一關檔名。很長的亂數名稱是一種做法,但身為MS Developer,我更愛GUID。
  2. Why Seednet Homepage?
    我猜有些人可能會動起"暴力破解"的歪腦筋(qwert0533,對!! 就是在說你 XD),使用程式大量嚐試可能的GUID組合,因此我選擇將網頁放在平日閒置的Seednet個人網頁空間而非我的部落格平台,以防止受到暴力破解攻擊對Blog本身的波及。但Seednet怪異的分流機制,在一開始造成一些人的困擾,在此說聲抱歉。
  3. 為什麼遊戲網頁都要放廣告?
    廣告就真的只是廣告而已,跟解題沒有任何關聯。不過我想有很多人會花時間去查它,足以產生不錯的欺敵拖延效果。後來證明 1) 的確很多人被廣告迷惑 2) 其實根本沒必要"拖延"...
    當然,說不想藉趁機賺一下廣告收入絕對是騙人滴。對不起,我又貪財了。
  4. 第1關怎麼解?
    這... 這... 這... 按連結,好嗎? 這明明是送分題。
  5. 第2 關怎麼解?
    畫面看不到東西,任何Web Developer的下一步反射動作就是View Source,看HTML原始碼,原則上這也是送分題。
  6. 更! 第3關是在搞什麼鬼?
    用第2關的View Source技巧,可以發現第3關的圖檔URL變成darkthre”e”dbanner.jpg,然後就卡住了。 設計思維是用"檔名不同"突顯"第3關故意用了一張不一樣的圖",所以圖是關鍵,應"仔細檢查"兩張圖有什麼不同。(瀏覽器的Zoom In功能可以幫上大忙!)
  7. 第4關,Palette調色盤? 跟解題有什麼關係?
    白色黑色"Palette”的GIF圖檔,說明了"跟調色盤有關",而GIF圖檔是內建256色調色盤的,所以就用Hex Viewer類的工具看一下,GUID果然藏在裡面:
     
    感覺上有些朋友較少接觸GIF圖檔的格式細節,看GIF檔案找到答案進了第5關,居然還是不知道"Palette”與解題有何關聯? (城市還有鹽,對! 我就是在說你~~)
  8. 第5關,其實是最簡單的!
    A1 A2 A3 A4 A5 A6 A7 A8 - B1 B2 B3 B4 - C1 C2 C3 C4 - D1 D2 D3 D4 - E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12
    Hint Formulas:
    1.A7 - E10 - E8 = -8
    2.B4 * A5 * D1 = 726
    ... 略 ...
    511.A8 * B4 + B2 = 12
    512.E9 / E4 - E1 = –2   
    題目一清二楚,完全不拐彎,也沒陷阱。我寫了程式用亂數出題,偷懶沒去細數如何包含最少的聯立方程式就有解,所以放上512個公式以求保險,順便也展現我的氣度與佛心。(謎之聲: 去~~~)。
    這題可以寫程式解,不過因為隨機產生的公式有些很白目(例如:  507.C1 - A5 / A5 = 3),我想直接用人工分析應該比較快,花點耐性不用太久就可以解開!
    這關完全沒被抱怨,看來是大家最愛的一題;相對地,也意味難度跟趣味性不足呀! XD
  9. 第6關,向本站的忠實讀者致意!
    提示只有一行編碼: orOiuKK3otGi0aKzorWizwCjwqOyo7SjswAU/yL/I/8Z/wDvvJnvvKXvvKbvvKMAIf8X/xH/Gf8W/xb/E/8i/xP/Jf8Q/yX/ 程式寫多的人都看得出來是Base64編碼,用Convert.FromBase64String()解開,可以得到:
    A2 B3 A2 B8 A2 B7 A2 D1 A2 D1 A2 B3 A2 B5 A2 CF 00 A3 C2 A3 B2 A3 B4 A3 B3 00 14 FF 22 FF 23 FF 19 FF 00 EF BC 99 EF BC A5 EF BC A6 EF BC A3 00 21 FF 17 FF 11 FF 19 FF 16 FF 16 FF 13 FF 22 FF 13 FF 25 FF 10 FF 25 FF
    抓一下00的位置當成分割點,可以分成16, 8, 8, 12, 24個Byte,看起來跟GUID的8-4-4-4-12結構有點關聯。把byte[]轉成string試試,不管用哪一種Encoding,會發現string中有一部分會變成全型的0-9A-F字元。忠實讀者一定不會忘記中文編碼是本站的特色主題之一,而打開中文編碼解析工具,照著BIG5, GB2312, UCS-2, UTF-8(一個中文字會變3個byte,4*3=12解開了第四節長度不合群之謎), UTF-16編碼GetString(byte[]),分開取得五節全型16進位數,換成半型就是前往第七關的鑰匙!
  10. 第7關終極殺陣
    眾多高手被卡在此動彈不得,逼得只能陸續增加提示,降低難度後,才有人闖關成功。
    最初只有一張達文西密碼的電影照片JPEG檔,就是全部的提示。圖片是網路上找到的,被我加了工,藏了資訊在EXIF裡,不過似乎很多人沒有料到EXIF裡會藏東西。(當然,也有高手在第二天連海報照原始圖都找到,還用工具做過比對,驗證圖片內容完全一致,鎖定了線索就在Metadata中,了不起!)
    有鑑於讓眾家高手卡著無解也不是辦法,於是我先釋出第一波提示,讓大家聚焦在EXIF的Camera欄位:
    * It's not a GIF
    * Metadata
    * Canon 10D, Canon 5D2, Nikon D70

     
    不過即便鎖定了EXIF,似乎有些朋友還沒體會到”tri linen St. RCP(三亞麻布聖RCP?)"是一段變位字,照片之所以選擇達文西密碼,就是希望電影一開始的變位字謎團可以形成暗示... 照片暗示效果不彰,索性祭出第二波提示:
    * 啊,嚴峻的魔鬼! 啊,跛足的聖人!
    明確指明是變位字後,大家知道到重組,但大多還是沒什麼頭緒(其實可以用字典暴力攻擊把變位字可能的組合試出來,但成本看來不低),再釋出第三波提示:
    * CLSID
    其實,"tri linen St. RCP”是RSClient.Print的變位結果,這顆Reporting Service附屬的由網頁直接印報表元件在黑暗小站亮相過好多次(1 2 3),提示是CLSID,期望勾起大家的回憶,很快聯想到是它。(後來我發現這個提示很糟,因為Google CLSID + darkthread就可以直接連到相關網頁,幸好沒人藉此破關)
    無奈大家跟我還是沒能心有靈犀,於是得再丟出第四波提示,直接說Reporting Service太明了,苦思許多,想了個"茶包射手的獵物",暗示它在本站演過茶包。公告後不久,CCN終於闖關成功,我終於不必再為第五波提示傷透腦筋了。

謝謝所有參賽的朋友,希望大家在解題過程中有享受到樂趣。歡迎大家在留言版留下感想或意見,覺得哪一關最有趣,哪一關卡最久,哪一關最欠揍,什麼感想都可以。

我超愛這類動腦解題的比賽,下回各位如有舉辦,記得要通知我!

最後,再次恭喜CCN!!


Comments

# by VampireNeo

實在好玩! 可惜小弟只去到第4關 ^^"

# by Whisley

同上, 我也只到第四關, 看了512個提示後索性放棄了 XD

# by JetFire

我最後就是卡在第7關, 也有想過是BASE64, 不過因為最後一碼不是=, 所以就沒去TRY了... (可惜呀...), 不過看來過了BASE64, 後面轉UTF還是過不了...

# by 鐵衛

小弟第三關就死了,一直在找網頁以外的東西現在看來果真是想太多了,但看了一下後面幾關的解答,就算過了第三關應該也是死在第四關或第五關了吧,呵呵

# by 小朱

第三關果然欠揍啊... 我電腦螢幕太差了,看不到那串字。

# by qwert0533

抗議,還有"我們這囧家~",他似乎爆破成功了,真強大

# by CHUNG

我被第三關卡了好多天... 然後剛好不一樣的檔名長度跟guid一樣長 就被檔名誤了好久 然後又看檔案大小不同 又開始誤會是不是藏在檔案內容中 看了好久的hex沒看到東西 把所有跟guid的字元清掉也還是看不到東西 於是就又那邊猜是不是類似聖經密碼一樣有跳位字 結果也沒看到半個規則 然後也用photoshop那邊對圖片弄了半天也還是沒看到東西 (就是沒想到放到超大) 然後又想該不會是藏在檔案內容中的是加密資訊 又那邊弄半天 最後才靈光一閃...想說...不會那麼機車吧... 結果就是真的那麼機車= =...最後才找到Orz 差點沒吐血 只能說跟獎品無緣(飄走)

# by CHUNG

我被第三關卡了好多天... 然後剛好不一樣的檔名長度跟guid一樣長 就被檔名誤了好久 然後又看檔案大小不同 又開始誤會是不是藏在檔案內容中 看了好久的hex沒看到東西 把所有跟guid的字元清掉也還是看不到東西 於是就又那邊猜是不是類似聖經密碼一樣有跳位字 結果也沒看到半個規則 然後也用photoshop那邊對圖片弄了半天也還是沒看到東西 (就是沒想到放到超大) 然後又想該不會是藏在檔案內容中的是加密資訊 又那邊弄半天 最後才靈光一閃...想說...不會那麼機車吧... 結果就是真的那麼機車= =...最後才找到Orz 差點沒吐血 只能說跟獎品無緣(飄走)

# by CHUNG

不好意思= =~不小心貼了太多篇... 黑暗大麻煩幫忙刪掉~謝謝

# by 小柯

第三關有機車到...卡1小時直接放棄..嘎...

# by 坎尼

這東西太好玩了,可惜三小時就是我的極限 (謎:又不是烏拉超人 到第六關自動棄權 Orz

# by 許胖

我也是到第6關棄權XD 有想到base64可是就是解不出來Orz

# by I'm Ant Only

今次最重要的是幾乎不用Visual Studio就可以過1~5關,所以可以隨時隨地玩。 第3關:Paint .NET 的Magic Wand找到怪異的地方...就過關了。 第4關:用Notepad++一開圖片,答案就出現了。 第5關:徒手計容易計錯(卡了2晚),最後找到Online的Linear Solver解決。 第6關:棄權...(雖然試用Online的base64 decoder...)

Post a comment