05.07 手把手教你如何在Intel 8752上繞過代碼保護

導語:可以用UV清除在Intel 8752上執行代碼保護的安全位,並且同時保持主程序內存的基本完整,這一操作是通過將一種UV掩模(指甲油)應用到模具的EPROM區域實現的。

概述

可以用UV清除在Intel 8752上執行代碼保護的安全位,並且同時保持主程序內存的基本完整,這一操作是通過將一種UV掩模(指甲油)應用到模具的EPROM區域實現的。

考慮到在芯片時代(1985年),這一結果並不令人驚訝,並且可以通過相同的技術繞過8751代碼保護(與8752屬於同一家族),但儘管如此,本文還是對其進行了確認並提供了複製該過程的步驟。在這次嘗試中,可能是由於EPROM的一個角落沒有被UV掩模完全覆蓋,結果丟失了一些字節。

介紹

手把手教你如何在Intel 8752上繞過代碼保護

Intel8752 BH封裝

Intel8752是一個通用的MCU,製造於20世紀80年代。與Intel 8751類似,它具有一個安全設置:一旦設置好,任何試圖轉儲EPROM的操作都會讀出一個看似空白的EPROM,而MCU的原始EPROM內容在正常操作中是完整的。這種特性對於需要隱藏敏感信息(比如對稱密鑰)的供應商來說是很有吸引力,可以防止盜版,並且增加了程序漏洞分析的難度。

通過將安全位暴露給UV,可以繞過8751的代碼保護,同時可以使用指甲油保護EPROM的其餘部分不受UV的清除1 2。鑑於8752和8751屬於同族,所以在8752上使用同樣的方法也就不足為奇了。

首先,我通過Bunnie的博客瞭解了這項技術,然後和John McMaster一起改進了這項技術。經McMaster允許,我使用他的設備、材料和實驗室來進行這項研究,同時McMaster也教了我一些技術。

使用UV清除安全位是一項相當老的技術。現代芯片實現了一些針對性的緩解措施,如屏蔽和安全網格等,使得攻擊更加困難。

準備

由於手邊沒有程序,所以我必須用0xCA字節填充整個程序內存。這一操作的目標是設置好安全位並使用UV清除後,對其重新讀取。在啟用代碼保護之前,我讀取了模式以確保芯片的程序正確。

手把手教你如何在Intel 8752上繞過代碼保護

0xCA測試模式

一旦被驗證,我就啟用代碼保護並重新讀取芯片。

手把手教你如何在Intel 8752上繞過代碼保護

從安全的8752中讀取出的

這一操作是對有代碼保護的8752進行的可預期行為。與大多數具有代碼保護的現代芯片不同,8752沒有可供程序員讀取的反饋或“安全位”。

打開陶瓷DIP(CDIP)

目標是一個帶有熔化石英窗口的陶瓷DIP(CDIP),該窗口可以從視覺上暴露模具。由於不能使用電來清除EPROM,因此這些窗口可以讓程序員通過20 – 60分鐘的UV暴露來清除程序內存。UV引起電離,因此會消耗EPROM中浮柵的存儲電荷,這使得它們可以重新編程。由於我想在不影響程序內存的情況下清除安全位,所以最好對EPROM有物理訪問,以便用指甲油對其進行掩蓋,因此我需要做一個decap。

該陶瓷封裝由兩個陶瓷半片(頂部、底部)組成,而這兩個陶瓷半片用玻璃熔塊組合在一起。頂部的陶瓷半片保護層保護模具。我們的目的是將芯片加熱到足夠的溫度來預熱包裝和工件夾具,然後用丙烷火焰加熱頂部的陶瓷材料,直到玻璃熔化將上下兩部分陶瓷半片粘合在一起。

手把手教你如何在Intel 8752上繞過代碼保護

打開陶瓷芯片操作檯

McMaster向我傳授了他的打開陶瓷芯片技術,即熱熔化打開陶瓷40針封裝技術,如下圖所示:

1.將芯片放置在機加工塊上。我忘記了該加工塊的尺寸,但是我用了一個Starrett 154C的可調平行加工塊,並對其進行了調整使之堅固並適合大頭針,同時在陶瓷體下面為熱脹留出了空間。

2.將加工塊塊和芯片放在虎鉗上,鉗住大頭針。在陶瓷體下面預留一些空間,否則封裝會在膨脹的時候斷裂。理想的情況下,這種裝置也能幫助散熱,所以高熱量質量的虎鉗是首選。如果大頭針和/或底部太熱,我可能會在去掉頂部的陶瓷半片時,把大頭針去掉。

3.放置一個夾鉗,用夾鉗的鋸齒/尖端抓住頂部的陶瓷半片,像下圖這樣:

當玻璃熔塊熔化時,夾鉗主要用來夾起頂部的陶瓷半片。它還可以幫助將熱量散發在頂部陶瓷片上。

手把手教你如何在Intel 8752上繞過代碼保護

4.將加熱槍對準芯片頂部(X/Y平面)。試著移動加熱槍以確保熱量均勻/對稱地分佈在芯片的頂部。

5.將加熱槍設置在455攝氏度(850華氏度),加熱封裝20分鐘。請記住,加熱持續的時間取決於老虎鉗的熱質量。

6.關掉加熱槍。這時包裝應該很燙,但還不夠熱,還不能把玻璃熔化來將兩個半片組合在一起。

7.請參閱下面的安全注意事項。

8.將丙烷火焰與頂部陶瓷半片保持5CM(2英寸)左右的距離,並儘可能的與之保持垂直,同時在陶瓷半片的頂部和底部來回移動加熱(朝向並遠離包裝上的凹槽)。這一操作的目的是在不同樣加熱底部陶瓷半片的情況下,使熱量均勻分佈。

9.如果丙烷火焰有輕微的角度,則每2-4秒更換一次加熱面。

10.在使用丙烷火焰時輕輕擺動夾鉗。

11.重複步驟7-10。

12.在用丙烷火焰加熱幾次之後,頂部半片應該幾乎不用費力就能夾起來,同時還可以扭動鉗子。這時立即鬆開丙烷火焰,以避免火焰擊中模具/封裝接線,同時提升頂部陶瓷半片。如果提升過程中用力過大,會有將大頭針與頂部陶瓷半片一起拆掉的風險。

安全提示:雖然打開陶瓷芯片不需要處理腐蝕性物質或酸,但有可能會破壞陶瓷封裝。用上述方法,在夾具上的用力不當將導致陶瓷片破碎,碎片被拋向不同方向。因此需要使用抗衝擊面罩來降低身體傷害的風險。

手把手教你如何在Intel 8752上繞過代碼保護

打開Intel8752BH

識別EPROM

在檢查顯微鏡下可以看到模具的一些普通特徵。我特別感興趣的是識別和掩蓋模具的EPROM部分,同時保持其餘部分完好無損。假設安全位不在EPROM區域。

手把手教你如何在Intel 8752上繞過代碼保護

在檢查範圍內的Intel8752BH模具

由於它們的重複結構、內存數組的特性,這四個模塊是有意義的。但是,包含SRAM和EPROM.SRAM數組的模具有一個更粗糙的模式,該模式在模具的下部可見,所以我想要在模具頂部覆蓋兩個塊。

掩蓋EPROM

可以用指甲油來保護模具特徵不受UV的損害,所以我要小心地將指甲油滴到EPROM區域。如果我在EPROM上滴的指甲油太少或錯過一個點,在UV擦除過程中那部分就會被損壞。因此這一操作有覆蓋安全位的風險並且我需要防止它被清除。一般來說,首選後者,因為這個掩模可以被重新應用,我們不想破壞我們的程序。

手把手教你如何在Intel 8752上繞過代碼保護

掩模應用程序設置

McMaster建議把芯片放在一個碗裡,倒一點丙酮進去(不一定是在模具上,雖然在某些情況下可能有用)。丙酮蒸汽會顯著減緩指甲油變乾的過程,並使其在應用於模具區域時處於可以良好流動的狀態。我必須通過實驗找到合適的丙酮量。丙酮量太多會使指甲油流動性太強,難以控制。這跟水彩顏料和油畫顏料的區別比較像,丙酮量多一些,會使指甲油的狀態會跟水彩顏料比較一致。丙酮池也可以用來清潔毛刷。

毛刷是用一縷短的動物毛附著在鑷子上製作而成的。

該過程如下:

  1. 把芯片和小塊放在一個小碗裡。這個小塊將被用作指甲油托盤,以避免刷子從碗中出來並變幹。

  2. 往碗裡倒適量丙酮。確切的數量需要實驗。

  3. 把碗放在檢查顯微鏡下,把焦點放在模具上。

  4. 在托盤上塗一些指甲油。

  5. 拿一個刷子(我用一縷5毫米的動物毛粘在一個把手上製作而成),把它浸在指甲油的托盤裡。在這之後,不要把刷子從碗裡拿出來,直到不再使用它為止。

  6. 繼續將指甲油塗抹到EPROM區域直到完全覆蓋。覆蓋住EPROM內存數組周圍的行解碼器即可。

  7. 如果對結果滿意,從碗中取出芯片,使指甲油變幹。用丙酮清洗刷子,並將其從碗中取出。

  8. 要重做這個過程,在模具上噴上丙酮,直到去除所有的指甲油。確保不要噴得太猛,因為這會增加弄斷封裝接合線的風險。

手把手教你如何在Intel 8752上繞過代碼保護

滴上指甲油後的Intel8752BH

注意,EPROM其中一個塊的右上角沒有足夠的覆蓋。另一個塊的左下角也可能是這樣。這兩處覆蓋不完全解釋了我在UV擦除後出現的一些內存損壞的情況。

UV擦除

現在是考驗我運氣的時候了。我把芯片放在UV下,設置一個小時的定時器。不同的芯片,UV擦除時間的有效性是不同的:時間長一點不會損壞芯片,但更短的時間可以預防我遇到過的腐蝕的問題。我決定選擇更長的時間,因為我不想對我的假設是否錯誤存在懷疑,或者我不小心用指甲油覆蓋了安全部分。

手把手教你如何在Intel 8752上繞過代碼保護

將已經打開的Intel8752BH放入UV清除器中

首先,我建議編程、保護,然後在使用掩模前將UV應用到芯片上。如果在這種情況下,安全位沒有重置,那麼安全位上可能有遮蓋物或可能需要其他技術。否則繼續執行本文中描述的步驟。

結果

這時可以把芯片放回程序員的套接字上並嘗試讀取。

手把手教你如何在Intel 8752上繞過代碼保護

安全位已清除並有輕微數據丟失

當獲取了大部分的0xCA後,由於一些角落沒有覆蓋好,有輕微數據丟失。不管怎樣,我最終還是轉換了安全位,並且我需要一個更加謹慎的掩模應用程序可以讓我不受影響地轉儲程序內存。

附錄:失敗的嘗試

我的第一次嘗試結果覆蓋了比EPROM多一些區域。UV擦除後,沒有使用這個掩模轉換安全位。這意味著,進行兩種掩模嘗試,可以粗略地瞭解到8752上安全位的位置,並通過高倍顯微鏡進一步分析。

手把手教你如何在Intel 8752上繞過代碼保護

UV掩模嘗試最終覆蓋了安全位

  1. Caps0ff: 8751 Rampage

  2. John McMaster: Silicon photonics


分享到:


相關文章: