PSP3000破解原理——緩衝區溢位漏洞隨談

來源:互聯網
上載者:User

一直很驚歎,駭客是如何利用緩衝區溢位,達到入侵,破解系統的。就如IE瀏覽器上曾出現的圖片格式病毒一樣,這次對PSP的破解,正是藉助一個TIFF格式圖片完成的。由於對PSP有愛,決定去瞭解一下這裡面都發生了什麼事情。一個神奇的圖片是如何破解系統的?  

緩衝區溢出,學名是memory overflow,實際上就是記憶體越界。其結果大致表現為,程式死機,系統崩潰。這本來是軟體編寫的bug,很常見。為什麼這個現象能夠被駭客們利用呢?  

仔細翻查資料發現,崩潰(死機)的現象,是由於機器執行一個不正確的(非法的)指令造成的。原因可能有:(1)、無效的運算條件,比如除零錯誤;(2)、資料定址錯誤,比如越界或資料受保護;(3)、指令定址錯誤(類似2);(4)、指令無效或無法識別;(5)、……等等。駭客指出,並不是所有的緩衝區溢位都會引發崩潰(死機),同樣並不是所有的崩潰(死機)都是由(3)、(4)情況引起的。大多數緩衝區溢位,對破解都沒有協助。只有緩衝區溢位導致(3)、(4)情況出現時,才對破解有價值(也有人專門研究其他情況下的破解,但是過程過於複雜,而且最終總會歸結於3、4情況)。所以,我們來仔細分析一下,3、4情況下到底發生了什嗎?  

(3)很好理解,在32位PC系統中,就是CS:IP的值錯誤導致越界。原因一般是由於在某些函數中,部分指令越界修改了記憶體棧,導致ret(或retf)指令在返回地址時得到了錯誤CS:IP。這些值一般存放於[ebp]-4(或[ebp]-8),而且很容被修改,訪問任何一個local變數都可能越界修改到它。

(4)也不難理解,微機原理的機器語言中,詳細描述了這個問題。簡單來說,一條指令就是一個位元,所有CPU能支援的指令集合,就是一個位元集合。如果某個指令(位元)不在這個集合,就屬於無效指令。如果在,當然就是有效指令啦。值得一提的是,這個指令的位元和資料的位元是同樣的。就是說,在某些情況下,資料和指令是可以互相轉換的。我們來看,組合語言的指令mov ax,4C00h等於機器語言的位元B8004C,mov sp,16等於BC1000。而這個位元B8004C等於圖片象素資料的RGB(184,0,76),BC1000等於RGB(188,16,0)。這樣,指令與映像資料之間就建立了聯絡。

 

下面來瞭解,緩衝區溢位破解流程。

1、駭客要有個類比環境,用以不斷監測CPU各個寄存器的狀態。PC系統中,就是自己的電腦。PSP上,就是已暴力破解(一般是改裝硬體)舊型號的PSP1000。

2、不斷嘗試各種系統功能,尋找崩潰(死機)現象。

3、分析機器崩潰(死機)時,CPU各個寄存器的狀態,尋找有價值的線索(一個例子是,某個遊戲要求輸入玩家名稱,但是當長度超過一定數量就會死機。某駭客發現,當他將名字輸入為AAAAAAAA……(反覆),死機時,某寄存器的值為A0A0A0A0,若為BBBBBBBB……(反覆),則寄存器值為B0B0B0B0。由此確定輸入數值對寄存器數值的影響。)。在這次破解中,是研究圖片瀏覽器預讀圖片檔案時的一個崩潰,並分析了檔案中的資料值對寄存器的影響的關係。

4、研究從3中得到的寄存器屬性,如果其為指令地址寄存器(相當於PC中的CS:IP,或ebx),那麼恭喜。離勝利很接近了,這就是上述的(3)、(4)情況。如果不是,那麼還要繼續分析這個寄存器對某個指令地址寄存器的影響,找出之間聯絡。要是實在沒有頭緒,只能放棄這步,從2開始。

5、此時,已經能確定,如果某個輸入資料為X,一定能使某個指令地址寄存器變成Y。大概是Y=f(X)。

6、編寫一組目標指令(就是你想啟動並執行程式,如hello world),將其轉換成位元據,然後匯入一個TIFF圖片格式檔案的某個特定地區中。並在檔案中一個特地的位置放入X值。

7、重複崩潰的過程。當死機發生時,某個指令地址寄存器已經按照事先預想的變成Y,並且圖片檔案的那個特定地區資料已經匯入了記憶體。而這個Y值則正好指向那段記憶體。

8、接下來,就是CPU按照駭客預想的方式,執行他們的程式。破解完成。

 

結束語:

駭客也是人,只不過是聰明一點並且勤奮很多的人。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.