第063章 克里斯的最後一根頭髮
克里斯·彼得羅夫正趴在鍵盤上,頭髮亂得像個雞窩,眼窩深陷,黑眼圈重得像是剛被人打了一拳。
他已經連續熬了三個通宵了。
「該死的……還是不行。」
克里斯狠狠地薅了一把頭髮,看著手裡那縷斷髮,眼神里充滿了絕望。
「我們嘗試了所有的方法。USB協議模糊測試,基帶命令注入,甚至是暴力破解密碼鎖……全都失敗了。」
「蘋果把這個系統鎖得太死了。沙盒機制就像是把每個應用都關進了單人牢房,哪怕我在Safari里找到了漏洞,也沒法跳出這個牢房去訪問其他文件。」
旁邊的幾個黑客也是一臉死灰。他們都是頂尖的高手,但在賈伯斯築起的這道高牆面前,第一次感覺到了無力。
「也許……我們需要換個思路。」
一個聲音在門口響起。
顧清舟走了進來。他穿著整潔的襯衫,手裡提著幾杯熱騰騰的咖啡,和這間屋子裡的頹廢氣息格格不入。
「老闆,你來了。」克里斯有氣無力地抬了下頭,「抱歉,我們可能……搞不定了。」
「別急著認輸。」
顧清舟把咖啡放在桌上,拉過一把椅子坐下。
他看著屏幕上那些密密麻麻的反彙編代碼,那是ARM架構的指令集,普通人看一眼都會頭暈,但在他眼裡,那是通往自由的地圖。
「克里斯,你一直在嘗試攻擊內核,攻擊基帶。這就像是想用鐵頭去撞開城門。」
顧清舟拿起一支馬克筆,在白板上那個複雜的架構圖上圈出了一個不起眼的角落。
「為什麼不試試……給守門人送一杯毒酒呢?」
「毒酒?」克里斯愣了一下。
「Safari瀏覽器是用來渲染網頁的。網頁里有什麼?有文字,有視頻,還有……圖片。」
顧清舟在白板上寫下了一個詞: libTIFF 。
「這是一個開源的圖片處理庫。蘋果為了省事,直接把它拿來用了。但我記得,這個庫的老版本里,有一個很有趣的特性。」
「當它在處理某種格式畸形的TIFF圖片時,如果圖片的頭部信息里聲明的大小,和實際數據的大小不一致……」
顧清舟頓了頓,眼神變得銳利。
「它會發生什麼?」
克里斯的瞳孔猛地收縮。
作為黑客,他對這種底層的內存邏輯太熟悉了。
「緩衝區溢出!」
克里斯猛地站起來,碰翻了手邊的紅牛罐子。
「如果圖片聲明的大小比實際小,內存分配就會不足。然後,當庫函數試圖把圖片數據寫入內存時,多出來的數據就會……溢出!」
「沒錯。」顧清舟點了點頭。
「溢出的數據會覆蓋掉後面的內存空間。如果我們在那張圖片的數據里,藏一段精心構造的機器碼……」
「我們就能劫持程序的執行流!」克里斯興奮得渾身發抖,「我們可以讓Safari跳過沙盒的檢查,直接執行我們的代碼!」
「這就叫——給守門人灌毒酒。」
顧清舟笑了。
「只要用戶用iPhone訪問一個包含這張『毒圖片』的網頁,Safari就會崩潰。但在崩潰的那一瞬間,我們的代碼就已經注入進去了。」
「在那一瞬間,我們將獲得系統的最高權限——Root。」
仿佛一道閃電劃破了黑暗。
整個地下室瞬間沸騰了。
「快!查文檔!libTIFF的源碼在哪裡?」
「我來構造圖片頭!偏移量怎麼算?」
「準備好Shellcode!我要寫一個最精簡的掛載腳本!」
剛才還死氣沉沉的黑客們,此刻像打了雞血一樣。鍵盤的敲擊聲密集得像是一場暴雨。
顧清舟沒有說話,只是靜靜地坐在角落裡喝咖啡。
他看著克里斯那雙在鍵盤上飛舞的手,看著屏幕上不斷滾動的十六進位代碼。
那是人類智慧與機器規則的博弈。
也是一場關於自由的戰爭。
時間一分一秒地過去。
凌晨四點。
克里斯的手指終於停了下來。
「好了。」
他的聲音沙啞,但透著一種壓抑不住的狂喜。
「毒酒釀好了。」
他指了指屏幕上那個看起來普普通通的網頁連結。
「只要點開這個連結,Safari就會加載那張特製的TIFF圖片。然後……」
克里斯拿起旁邊那台用於測試的iPhone,深吸了一口氣。
所有人都圍了過來,屏住呼吸。
手指按下。
加載中……
Safari的進度條走了一半,突然卡住了。
屏幕閃爍了一下,像是花屏了一樣。
「失敗了?」有人小聲嘀咕。
「等等。」顧清舟盯著屏幕。
突然。
原本白色的網頁背景消失了。取而代之的,是一行黑底綠字的命令行代碼。
那不是Safari的界面。
那是終端。
緊接著,最下面跳出了一個簡單的符號:
在Linux/Unix系統里,這個符號只有一個含義——超級管理員。
「Root!」
「我們拿到Root了!」
「我的天!真的進去了!」
歡呼聲瞬間炸裂,差點掀翻了地下室的屋頂。幾個黑客抱在一起,有人甚至激動得哭了。
克里斯癱坐在椅子上,看著那個閃爍的光標,手還在微微發抖。
他做到了。
他真的在那個號稱「銅牆鐵壁」的蘋果花園裡,炸開了一個缺口。
「老顧……」
克里斯轉頭看向顧清舟,眼神里滿是敬畏,「你是不是早就知道?我是說……那個庫的問題。」
顧清舟放下空了的咖啡杯,站起身。
「我知道的不僅是這個。」
他走到那台已經被「越獄」成功的iPhone前,手指輕輕敲了敲屏幕。
「既然門已經開了,那就把我們的東西搬進去吧。」
「把那個『地下商店』裝進去。」
「從今天起,這台手機,不再姓賈伯斯。」
「它姓——自由。」
克里斯點了點頭,重新坐直了身體。雖然已經三天沒睡,但他現在的精神比任何時候都要好。
「明白。我會把Halo的原生安裝包作為第一個推薦應用放上去。」
「不僅如此。」
顧清舟走到門口,回頭看了一眼這群瘋狂的天才。
「我要你們把這個越獄工具,做得像傻瓜一樣簡單。一鍵操作,無需電腦。」
「我要讓每一個拿著iPhone的普通人,都能在五分鐘內,享受到這種打破禁忌的快感。」
「去吧。」
「讓那個蘋果,爛在肚子裡。」
他已經連續熬了三個通宵了。
「該死的……還是不行。」
克里斯狠狠地薅了一把頭髮,看著手裡那縷斷髮,眼神里充滿了絕望。
「我們嘗試了所有的方法。USB協議模糊測試,基帶命令注入,甚至是暴力破解密碼鎖……全都失敗了。」
「蘋果把這個系統鎖得太死了。沙盒機制就像是把每個應用都關進了單人牢房,哪怕我在Safari里找到了漏洞,也沒法跳出這個牢房去訪問其他文件。」
旁邊的幾個黑客也是一臉死灰。他們都是頂尖的高手,但在賈伯斯築起的這道高牆面前,第一次感覺到了無力。
「也許……我們需要換個思路。」
一個聲音在門口響起。
顧清舟走了進來。他穿著整潔的襯衫,手裡提著幾杯熱騰騰的咖啡,和這間屋子裡的頹廢氣息格格不入。
「老闆,你來了。」克里斯有氣無力地抬了下頭,「抱歉,我們可能……搞不定了。」
「別急著認輸。」
顧清舟把咖啡放在桌上,拉過一把椅子坐下。
他看著屏幕上那些密密麻麻的反彙編代碼,那是ARM架構的指令集,普通人看一眼都會頭暈,但在他眼裡,那是通往自由的地圖。
「克里斯,你一直在嘗試攻擊內核,攻擊基帶。這就像是想用鐵頭去撞開城門。」
顧清舟拿起一支馬克筆,在白板上那個複雜的架構圖上圈出了一個不起眼的角落。
「為什麼不試試……給守門人送一杯毒酒呢?」
「毒酒?」克里斯愣了一下。
「Safari瀏覽器是用來渲染網頁的。網頁里有什麼?有文字,有視頻,還有……圖片。」
顧清舟在白板上寫下了一個詞: libTIFF 。
「這是一個開源的圖片處理庫。蘋果為了省事,直接把它拿來用了。但我記得,這個庫的老版本里,有一個很有趣的特性。」
「當它在處理某種格式畸形的TIFF圖片時,如果圖片的頭部信息里聲明的大小,和實際數據的大小不一致……」
顧清舟頓了頓,眼神變得銳利。
「它會發生什麼?」
克里斯的瞳孔猛地收縮。
作為黑客,他對這種底層的內存邏輯太熟悉了。
「緩衝區溢出!」
克里斯猛地站起來,碰翻了手邊的紅牛罐子。
「如果圖片聲明的大小比實際小,內存分配就會不足。然後,當庫函數試圖把圖片數據寫入內存時,多出來的數據就會……溢出!」
「沒錯。」顧清舟點了點頭。
「溢出的數據會覆蓋掉後面的內存空間。如果我們在那張圖片的數據里,藏一段精心構造的機器碼……」
「我們就能劫持程序的執行流!」克里斯興奮得渾身發抖,「我們可以讓Safari跳過沙盒的檢查,直接執行我們的代碼!」
「這就叫——給守門人灌毒酒。」
顧清舟笑了。
「只要用戶用iPhone訪問一個包含這張『毒圖片』的網頁,Safari就會崩潰。但在崩潰的那一瞬間,我們的代碼就已經注入進去了。」
「在那一瞬間,我們將獲得系統的最高權限——Root。」
仿佛一道閃電劃破了黑暗。
整個地下室瞬間沸騰了。
「快!查文檔!libTIFF的源碼在哪裡?」
「我來構造圖片頭!偏移量怎麼算?」
「準備好Shellcode!我要寫一個最精簡的掛載腳本!」
剛才還死氣沉沉的黑客們,此刻像打了雞血一樣。鍵盤的敲擊聲密集得像是一場暴雨。
顧清舟沒有說話,只是靜靜地坐在角落裡喝咖啡。
他看著克里斯那雙在鍵盤上飛舞的手,看著屏幕上不斷滾動的十六進位代碼。
那是人類智慧與機器規則的博弈。
也是一場關於自由的戰爭。
時間一分一秒地過去。
凌晨四點。
克里斯的手指終於停了下來。
「好了。」
他的聲音沙啞,但透著一種壓抑不住的狂喜。
「毒酒釀好了。」
他指了指屏幕上那個看起來普普通通的網頁連結。
「只要點開這個連結,Safari就會加載那張特製的TIFF圖片。然後……」
克里斯拿起旁邊那台用於測試的iPhone,深吸了一口氣。
所有人都圍了過來,屏住呼吸。
手指按下。
加載中……
Safari的進度條走了一半,突然卡住了。
屏幕閃爍了一下,像是花屏了一樣。
「失敗了?」有人小聲嘀咕。
「等等。」顧清舟盯著屏幕。
突然。
原本白色的網頁背景消失了。取而代之的,是一行黑底綠字的命令行代碼。
那不是Safari的界面。
那是終端。
緊接著,最下面跳出了一個簡單的符號:
在Linux/Unix系統里,這個符號只有一個含義——超級管理員。
「Root!」
「我們拿到Root了!」
「我的天!真的進去了!」
歡呼聲瞬間炸裂,差點掀翻了地下室的屋頂。幾個黑客抱在一起,有人甚至激動得哭了。
克里斯癱坐在椅子上,看著那個閃爍的光標,手還在微微發抖。
他做到了。
他真的在那個號稱「銅牆鐵壁」的蘋果花園裡,炸開了一個缺口。
「老顧……」
克里斯轉頭看向顧清舟,眼神里滿是敬畏,「你是不是早就知道?我是說……那個庫的問題。」
顧清舟放下空了的咖啡杯,站起身。
「我知道的不僅是這個。」
他走到那台已經被「越獄」成功的iPhone前,手指輕輕敲了敲屏幕。
「既然門已經開了,那就把我們的東西搬進去吧。」
「把那個『地下商店』裝進去。」
「從今天起,這台手機,不再姓賈伯斯。」
「它姓——自由。」
克里斯點了點頭,重新坐直了身體。雖然已經三天沒睡,但他現在的精神比任何時候都要好。
「明白。我會把Halo的原生安裝包作為第一個推薦應用放上去。」
「不僅如此。」
顧清舟走到門口,回頭看了一眼這群瘋狂的天才。
「我要你們把這個越獄工具,做得像傻瓜一樣簡單。一鍵操作,無需電腦。」
「我要讓每一個拿著iPhone的普通人,都能在五分鐘內,享受到這種打破禁忌的快感。」
「去吧。」
「讓那個蘋果,爛在肚子裡。」