本文將介紹如何拆焊Flash芯片,設(shè)計及制作相應(yīng)的分線板。了解對嵌入式設(shè)備的非易失性存儲的簡單有效攻擊手段。這些攻擊包括:
讀取存儲芯片內(nèi)容
修改芯片內(nèi)容
監(jiān)視對存儲芯片的讀取操作并遠程修改(中間人攻擊)
想想,當(dāng)你拆開一個嵌入式產(chǎn)品,卻被擋在Flash之外,好奇的你一定想對它一探究竟。
那么,下面我們就開始。
拆焊Flash芯片
為了讀取Flash芯片的內(nèi)容,有以下兩個基本途徑:
直接將導(dǎo)線連接到芯片的引腳
把芯片拆下來,插到另一塊板子上
下面介紹的Flash為BGA(球形柵格陣列)封裝——無外露引腳。因此,只能選擇拆焊的方法。
拆焊法的優(yōu)點:
可避免對電路板上其他器件造成影響;
可以很容易看到芯片底部的布線;
可用其他芯片或微控制器代替原芯片。
一些不便之處:
電路在缺少完整器件的情況下無法運行;
在拆卸過程中,一些鄰近器件可能被損壞;
如果操作不恰當(dāng),F(xiàn)lash本身可能毀壞。
OK,拆焊是吧?你看,下圖所示的熱風(fēng)槍簡直就是神器。只要將芯片周圍加熱,便可以很容易地拿下芯片:
圖:熱風(fēng)槍拆焊
這種辦法簡單、快速只是可能傷及無辜——焊掉鄰近的元件,所以,務(wù)必小心翼翼。
下圖顯示芯片拆下后PCB的布線。觀察圖片,猜想底部的兩列引腳為空引腳,因為他們壓根就沒接入電路。
圖:拆焊下來后
用KiCAD定制分線板
現(xiàn)在該做什么?BGA封裝簡直就是一團糟,依然無法外接導(dǎo)線。
一種可行的方法是制作分線板。通常,分線板是將芯片的所有針腳的位置“鏡像”下來,這樣就能將芯片的引腳引接出來。
為此,我們首先要搜集芯片的相關(guān)信息。大多數(shù)情況下,芯片的型號都印制在芯片上,這樣我們就很容易識別。如上圖,芯片上第一行為MXIC代表Macronix International公司,第二行為芯片的具體型號MX25L3255EXCI datasheet 。以下為datasheet資料:
圖:針腳排布
PCB的設(shè)計可由KiCAD ,常用的EDA軟件實現(xiàn)。
分線板的設(shè)計過程與其他PCB板一樣:
新建電路板,畫出電路簡圖,標(biāo)明元器件的具體型號
確定芯片的具體尺寸
根據(jù)之前datasheet的資料。我們添加1個4×6的網(wǎng)格作為整個芯片的BGA封裝,2個1×4的網(wǎng)格作為連接芯片8個有效引腳的接線柱。最后一步是,用線路將這些器件連接起來:
圖:step2
轉(zhuǎn)接板的設(shè)計到此為止,接下來是如何把設(shè)計轉(zhuǎn)化成的PCB。
PCB制作
PCB就像是由兩層銅和一層基板壓制成的三明治,導(dǎo)線分布在銅上面。
根據(jù)制作流程,分為:
蝕刻法
數(shù)控銑法
以下為兩種方法的具體步驟。
蝕刻法
蝕刻,即是用化學(xué)藥品逐步除去銅的過程。我們先用油墨保護覆銅板上的線路及要保留下來的銅。
1.首先,用熱轉(zhuǎn)印法制作PCB。PCB電路圖用激光打印機打印在亮光紙上。然后,把亮光紙緊貼在覆銅板上,加熱和施以壓力,使亮光紙上的電路圖轉(zhuǎn)印到覆銅板上。通常,這個過程用熨衣服的熨斗即可完成,但是專用的壓制器會使加熱及受力更加均勻,更容易成功。
2.接下來是蝕刻,將整塊PCB板浸沒在腐蝕液,以此來去除多余的銅。
蝕刻后的分線板,轉(zhuǎn)印的墨粉還附著在上面:
圖:step3
除去墨粉后:
圖:step4
現(xiàn)在可以準(zhǔn)備手工焊接了。微型焊接與正常焊接一樣,只是器件的尺寸極小,因此需要借助顯微鏡。
此外,傳統(tǒng)的焊接用的是線狀的焊錫絲,而BGA微型焊接用的是錫球。
圖:step5
接下來,開始重整錫球:
將一個新的錫球放置在凹槽上,加熱,熔化錫球;
校準(zhǔn)芯片和板子;
回流。
圖:step6
錫球重整完成:
圖:step7
芯片焊接完成后的最終結(jié)果:
圖:step8
數(shù)控銑
作為替代方法,數(shù)控銑僅是將需要的線路和剩余的銅隔離開來而已。
(1)5X5的BGA通常用于制作 PCB,而4X6的常用于分線板。我們設(shè)計5X5的是為了該分線板可以直接插接在通用EEPROM 編程器的ZIF插槽里,電路簡圖如下:
圖:step9
(2)芯片的尺寸與前面設(shè)計的4X6的一樣,只是網(wǎng)格變成5X5,板上的布線也稍顯復(fù)雜:
圖:step10
(3)由于KiCAD無法直接生成與數(shù)控銑兼容的目標(biāo)文件,因此,我們用Flatcam接收Gerber文件并確定數(shù)控銑隔離的導(dǎo)線的路徑:
圖:step11
圖:step12
(4)接下來將生成的STL文件導(dǎo)入bCNC——數(shù)控銑的終端控制程序,如下圖所示:
圖:step13
雕刻過程中:
圖:step14
(5)板子雕刻完成:
step:15
最終結(jié)果:
圖:step16
(6)下一步,涂覆阻焊層,保護銅不被氧化,并用紫外燈固化:
圖:step17
圖:step18
(7)阻焊層覆蓋了BGA的銅片及1X4的接線柱,我們得刮掉這個薄層,使銅片露出來:
圖:step19
(8)給各個節(jié)點焊錫:
圖:step20
圖:step21
(9)回到數(shù)控銑,打孔,切削PCB的邊緣:
圖:step22
圖:step23
(10)最終成品,BGA焊接在板子上,準(zhǔn)備插到EEPROM編程器上:
圖:step24
結(jié)論
了解了,以及制作PCB的兩種不同方法。
編輯:黃飛
?
評論
查看更多