close

一般來說開發一個含有微控制器(MCU)的電子產品,免不了都要有燒錄MCU程式的過程,但如果是開發者或製造商自行燒錄程式碼後再將MCU的程式上鎖(lock),這樣基本上就保護了程式碼不會被人讀出,並且也保護了整個硬體設計不容易被盜用或複製。

 

但如果這個含有微控制器(MCU)的產品賣出後還要具有程式版本升級功能的話,那在User端從開發者或製造商取得程式燒錄檔再執行燒錄的過程中就暴露了程式碼外流的破綻,雖然燒錄碼經常是.bin.hex檔案類型,但是這些燒錄檔一旦沒有加以保護處理就傳給客戶,有心人就很可能盜用、複製或反組譯破解程式,這樣開發者的智慧財產權就會遭人侵害。

 

針對這種遠端MCU程式燒錄(field firmware upgrade)的保護對策,我利用笙泉(Megawin)的一顆8051 base MCU(MG84FG516)研究設計了一套具有程式碼加密功能的燒錄機制,就是傳到客戶端的bin燒錄檔是有經過加密的,客戶可以方便透過Megawin原廠的DFU(Device Firmware Upgrade)軟體經由USB燒錄到指定產品的MCU進行程式更新或升級,若客戶欲拿此燒錄檔去燒到盜版但型號相同的MCU則無法動作,或是拿燒錄碼去反組譯欲破解程式也非常困難,此防拷方案便可以嚴格保護程式開發者的智慧財產。

 

這個做法也適用在用C寫成的程式,因為最終燒錄碼不是.bin就是.hex檔,所以程式開發者只要將bin檔先用加密工具程式轉換過再傳給客戶進行程式更新或升級即可,當然必要的條件是客戶端是購買原開發者或原製造商的MCU產品才行。

方案執行要點:

1.      先將Megwin MCU(MG84FG516)內的ISP code更新成含解密功能的ISP code,燒錄後MCU要設定lock

2.      C語言或組語寫好的程式轉譯成bin

3.      用下面的工具程式將bin檔執行加密轉換

4.      再用下面Megawin原廠DFU工具程式從USB port燒錄加密的bin檔到目標MCU

 

 

如果對這個保護遠端MCU程式更新的解決方案有興趣或有需求的朋友,可以跟我聯絡。

(請點看我部落格首頁的名片)

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ㄚ超 的頭像
    ㄚ超

    ㄚ超的部落格

    ㄚ超 發表在 痞客邦 留言(0) 人氣()