這類遊戲一般都是從簡單到複雜的,類似于單機遊戲那種關卡闖蕩,不過這裏要用到的是計算機知識,其中涉及到的内容有很多,例如網絡知識,破解知識,黑客知識等等。
第一關非常簡單,許毅想都沒想就點擊右鍵,然後查看網頁的源代碼。果然,裏面有這麽一句“哈哈,被你發現了。不過下次可就沒那麽容易了。這一關的過關密碼是BD。”許毅看到原來這幾個字設定的字體顔色是和背景色一樣。他用鼠标将網頁中的内容反選,果然可以看到這幾個字。
這一關的确非常簡單,隻要拿着鼠标随便選擇就能碰巧看到了。看來是出題者爲了調動闖關者的積極性而設的,當然,隻是針對那些剛剛開始學習相關知識的菜鳥們。
順利進入第二關。網頁的内容和前面差不多,肯定不會像第一關那麽簡單了,許毅還是下意識地想查看源代碼,畢竟從網頁直接看不出什麽,要想突破隻能從源代碼入手。點擊右鍵之後,彈出一個對話框:“^_^加油,繼續努力!”。
原來是将右鍵給屏蔽掉了。這種方法在早期有很多人使用,很多比較小氣的站長不願意來訪者将網頁中的内容複制保存下來,于是便用這種方法來爲難那些不懂技術的來訪者,通常情況下,大部分人都是抱着比較随意的态度,你不讓複制就不複制了,不會非得把上面的内容抓下來不可。
這個關卡當然難不倒許毅,隻能攔攔菜鳥而已,許毅有n種方法可以破解。這個效果主要是用一種名爲Javascript的動态腳本實現的(注意:此語言和傳說中的Java語言沒有任何親戚關系,号稱被誤解最爲嚴重的編程語言)。當訪問者點擊鼠标右鍵的時候,它就會第一時間得知(捕獲),然後按照程序員編寫的預定程序功能來響應這個“事件”,例如點擊右鍵什麽反應都沒有、彈出對話框等功能。
那麽,怎樣才能破解呢?對了,就是讓這個腳本語言失效,讓它不起作用。
網頁浏覽器(如Ie)内部集成了一個腳本語言的解釋功能,隻要将這個功能給禁用掉,那網頁中的腳本程序就成了擺設,什麽效果都不會有。而這個功能是很容易就可以禁用掉的,隻要在簡單的勾掉其中的一個功能選項而已。
不過對許毅來說,這個方法還是相對比較麻煩,等看完源代碼之後又要把設置還原。因爲如果禁用掉這個功能,以後網頁中的一些動态效果都沒有了。許毅用的方法是直接在地址欄中的網址前面敲入一個命令“view-source:”,這個命令也是浏覽器本身認識的命令,意思就是“查看源文件”,執行“view-source:http://***”之後,裏面的源代碼就顯示出來了。
還有一個比較簡單的方法,那就是直接用浏覽器工具欄上的查看“源文件”功能。除此之外,還可以用其他軟件打開,例如windows系統中的記事本,寫字闆之類的,直接把網址填入要打開對話框的地址内,都可以。如果不怕麻煩,那就直接用下載軟件将這個頁面下載下來再看。
許毅很順利地看到了第二關網頁的源代碼,大緻浏覽了一下,發現了一段比較可疑的編碼,許毅推斷過關密碼應該隐藏在其中。
這段編碼内容爲:“%B9%a7%cF%B2%B9%FD%B9%D8%a3%a1%B1%Be%B9%D8%c3%Dc%c2%eB%ca%c7%45%32”
第二關還有點難度,許毅呵呵一笑。看到這個段奇怪的編碼他就知道怎麽破解了。看這它們的形式,很顯然是uRL編碼,也就是網址轉換的時候的編碼。在上網的時候,經常可以看到這樣的編碼,是浏覽器用來打包表格輸入的一種格式,這種情形在用搜索引擎搜東西的時候最常見,搜索的内容通常都會轉換成這種形式呈現在浏覽器的地址欄中(至于爲什麽要這樣以後再解釋)。
uRL編碼其實就是字符ascII碼(美國國家信息交換标準代碼)的十六進制,不過稍微有些變動,需要在前面加上“%”。比如反斜杠“\”,它的ascII碼是92,而92的十六進制是5c,所以它的uRL編碼就是%5c。漢字的編碼也是同樣的原理,如“胡”的ascII碼是17670,十六進制碼是BaFa,則它的uRL編碼是“%Ba%Fa”,由于一個漢字占兩個字節,所以中間多了個“%”。
平時通常用不上uRL編碼,因爲Ie會自動将輸入到地址欄的非數字字母轉換爲uRL編碼,隻有程序員在編寫某些相關功能的程序的時候才需要用到其中的原理,當然,身爲一個黑客,這個編碼是需要掌握的,有些入侵行爲就需要用到這個知識(如:sQL注入)。
這點小知識許毅早就掌握得滾瓜爛熟,他幹脆調出編譯器,當場編寫了一個uRL編碼轉換器,反正知道原理,編寫起來不用花多少時間,而且,以後也用得上。
将那段編碼複制到自己剛剛編寫的小程序中,轉換成了幾個漢字:“恭喜過關!本關密碼是e2”。
許毅微笑起來,雖然題目沒什麽難度,但這樣過關的感覺還是不錯,第二關的難度明顯比第一關要大上很多,估計會難倒一片菜鳥。第三關的難度怎樣呢?許毅還真有點期待了,希望能夠讓自己頭痛一下,最近正在研究密碼學呢。
填入第二關的密碼,順利進入第三關。步驟有些大同小異,還是得查看源代碼,不過這次的源代碼看上去比較混亂,不像前兩關那樣,一眼看去,就能發現密碼大概在某個部位。第三關的頁面裏面有很多用來幹擾的代碼,主要是一些腳本代碼。這就要求闖關者對網頁編程比較熟悉,能夠讀懂這些代碼,至少應該知道那些代碼應該會完成哪些功能,哪些代碼有用,而哪些代碼隻是起幹擾作用。
許毅很快找到了目标,在驗證的時候出現了一段密文,許毅一看,知道用的是Jscript.encode加密,隻要用相應的解密功能就能搞定,這對别人來說也許是個難題,但許毅自然能夠輕易搞定,他很順利地進入第四關,他想看看到底有多少關,并且想早一點看到最後一關。
---
黑客網站一般都有類似的遊戲,下章我放個地址出來,大家去試試。