第182章 時間回歸漏洞

  第182章 時間回歸漏洞

  總之林灰覺得在他重生之後的十年時間內元宇宙很不靠譜。

  雖然元宇宙不靠譜。

  不過這種看似有點遙遠聽上去又觸手可及想像起來又略帶美好的東西拿去坑人似乎很不錯[壞笑]

  不過,這些都是後話了。

  說起來林灰短時間不打算深入涉及IP領域除了謀求長線發展之外。

  還有一個很重要的原因:

  ——林灰缺錢。

  林灰缺錢的原因很簡單:

  ——想做的事情太多。

  而且林灰想做的事情基本都極其燒錢。

  諸如硬體一類的科技產品有多燒錢就不消多說了。

  軟體方面的很多項目也都是吞金巨獸。

  一個看似平平無奇的AI模型,具體調/教的過程往往需要無數的真金白銀。

  至於更複雜的人臉識別技術、Fuchisia OS之類的問世所需要的更是金山銀海。

  沒錢根本玩不轉。

  或許有人不理解林灰的「野心」。

  其實林灰也知道,重生未必就非得波瀾壯闊。

  也可以漁樵江渚、閒雲野鶴。

  但林灰覺得他做不到如此這般。

  至少最近半年之內林灰很難做到。

  太多的事情需要林灰親歷親為。

  雖然沒人逼著林灰走什麼路線。

  但在家庭背景、教育經歷、人生際遇這些東西的潛移默化之下實際上一個人該走什麼路線已然是定數。

  除了家庭因素、教育經歷以及人生際遇之外的原因之外。

  跟林灰的個人想法也有很大的關係。

  林灰覺得一個人的命運只有跟國家的命運民族的命運緊密地結合在一起。

  才能走得更高更遠。

  有著遠大的理想,林灰自然不會被眼前的小小困難所掣肘。

  雖然林灰缺錢了,不過問題不大。

  搞錢很容易!

  這個時代對於林灰來說遍地是錢。

  軟體能換錢,算法能換錢、商業模式能換錢……

  不過暫時林灰沒心情鼓搗這些東西。

  暫時還是找些輕輕鬆鬆的搞錢方式比較好。

  說到輕輕鬆鬆地搞錢,林灰最先想起了他前幾天看到的新聞:

  ——蘋果公司全面開放了漏洞賞金計劃。

  根據該計劃,可以通過提交漏洞來換取報酬。

  當安全人員向「漏洞賞金計劃」提交漏洞之後。

  蘋果方面稱會對這些漏洞基於開發鏈的複雜性和嚴重性進行衡量。

  每個安全漏洞至高可獲得100萬美元的賞金。

  而如果能夠在Beta版(測試版)軟體中發現漏洞的話。

  賞金最高一次能夠獲得150萬美元。

  林灰前段時間之所以沒有馬上提交漏洞,主要是抱著觀望的態度。

  萬一提交了漏洞,蘋果不認帳就比較悲催了。

  這事前世蘋果也不是沒幹過。

  不止蘋果這麼幹過,谷歌微軟之類的企業都這麼幹過。

  不過林灰從一些公開的新聞獲悉。

  已經有幾個安全團隊通過這個安全網站提交了安全漏洞並且換得近百萬美元了。

  當然並不能據此說蘋果守規則。

  林灰覺得這主要是因為這個漏洞賞金計劃剛剛推出不久。

  蘋果方面還不至於這麼快就自己打自己臉。

  如果是這個原因,那麼最近一段時間。

  林灰似乎沒必要擔心太多,他只需要如法炮製提交些漏洞就可以了。

  說到蘋果iOS的漏洞,林灰最先想到的是「時間回歸漏洞」。

  時間回歸漏洞可以說是iOS系統最經典的漏洞之一。

  所謂的時間回歸漏洞指的是有一段時間蘋果手機調整時間會變磚。

  調整時間手機會變磚?

  聽起來可能有點滑稽,不過這漏洞真實存在。

  在iOS 64位設備的早期版本上。

  只要將蘋果手機時間設定到 1970年1月1日,然後重啟,蘋果手機就變磚頭。

  之所以存在這樣一個漏洞跟iOS系統的最底層——Unix系統有很大的關係。

  Unix作業系統,是一個強大的多用戶、多任務作業系統。

  該系統支持多種處理器架構。

  按照作業系統的分類,屬於分時作業系統。

  該系統最早由肯·湯普遜、丹尼斯·里奇和道格拉斯·麥克羅伊於1969年在AT&T的貝爾實驗室開發。

  Unix系統有很多衍生產物。

  iOS基於的 Darwin正是 Unix的分支之一。

  iOS作為一個系統一定程度上繼承了Unix的特性。

  既然是系統,那麼不可避免會涉及到計時的問題。

  與人類一般使用「年+月+日」的計數格式不同。

  Unix採用了一種完全不同的計時方式:

  在Unix系統中計時方式是先將(UTC時區) 1970年 1月 1日 00:00設定為 0點。

  隨後計算到目前為止所經過的秒數。

  舉個栗子。

  2014年6月22日18時30分25秒。

  表示出來的話為1403433025秒。

  換算成對應的二進位在Unix系統下表示時間。

  這種計時方法被稱為時間戳。

  iOS系統也沿襲了Unix這一計時方法。

  也正因此,iOS中時間的設定最多也只能回溯到 UTC時區1970年 1月 1日 00:00也是這個原因。

  僅僅是設置成這個時間的話不會有什麼問題。

  但涉及到一些特殊的在局部關鍵功能具有查詢過往信息的規則的時候

  將時間設置成UTC時區1970年 1月 1日 00:00很容易出問題。

  儘管多數時候可以通過人為的因素避免觸發這個漏洞。

  但蘋果手機開機的時候就有一個這樣強制查詢過往信息的機制這個幾乎無法避免。

  這個機制沒辦法取消,因為關機重啟之後手機肯定是要讀取一部分先前的日誌數據的。

  這種情況下如果時間戳是正常時間的話,那麼讀取先前的日誌數據並不會有什麼問題。

  但當UTC時區1970年 1月 1日 00:00的時候,這個時候時間戳的時間是0。

  當局部時間比時間戳 0點更早的情況下。

  應該怎麼表示比時間戳 0點更早的時間?

  似乎沒什麼好辦法。

  儘管沒別的好辦法,系統是機器。

  又不是擁有智慧的生物,它一樣是要通過查詢機制找到更早時間的。

  這個時候就會在時間戳0的基礎上進行-1操作。

  (這是為了在系統時間戳表達的時間上減去相差的秒數來查詢之前的內容)

  不過在0的基礎上-1就比較悲催了。

  得到的結果並不是-1。

  0-1≠-1?

  聽起來很匪夷所思,但實際上在程序裡面涉及到這種現象比比皆是。

  (本章完)