Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

採用多種方式保護程式碼免受盜版

上網時間: 2005年12月22日     打印版  Bookmark and Share  字型大小:  

關鍵字:版權保護  程式碼  軟體盜版  EE Times  Embedded Systems Programming 

對於《Embedded Systems Design》雜誌來說,我們要處理的問題之一就是版權保護。身為出版業的一份子,我們要為所提供的內容及其傳播途徑提供保護。作為程式設計人員,我相信你們當中許多人有相同的顧慮,那就是保護你們的程式碼以免被盜版及被工業間諜獲取,竊取確實是一個大問題。

Jim Turley

我們當中許多人對自己的程式碼被別人‘借用’並不擔心,即使自己不知曉的情況下也是如此。的確,整個開放原始碼社群正是依賴這樣的法則:程式碼可以且應該被亟需用到它的任何人所重新利用。顯然,開放原始碼的重新利用造就了一些偉大的產品,包括:網路瀏覽器、協定堆疊、編解碼器及整個作業系統。

有一些程式師(或他們的雇主)對程式碼廣泛傳播極為擔心,他們設下了許多技巧來防止程式碼被盜版。未來,我將持續討論程式碼的保護問題,但是,現在我先談一下目前業界主要採取的軟體保護措施。

一種辦法是,讓微處理器或具有片上記憶體的微控制器無法實際存取程式碼。如果程式碼一直留在晶片內,那就很難從外部窺視晶片內部的奧秘。如果操作碼從來不流經匯流排,透過邏輯分析儀或模擬器就將無濟於事。

另一種軟體盜版的辦法就是‘剖開’晶片並用電子顯微鏡探測儲存在上面的儲存位元,但是,現在的半導體製程技術,將ROM置於幾層金屬之下通常就能夠打敗這種雕蟲小技。某些晶片就被刻意製作成使內部構成元件具有防偵測能力。對於片外記憶體,一些程式人員在將目標代碼寫入到ROM或磁片之前就對其進行了加密。加密很簡單:就是憑空任意設置加密代碼來欺騙盜版者。除非你在片外記憶體和CPU之間放置特定的加密硬體,否則處理器就會被獲取到的加密操作碼感到非常困惑。但是,此時你會回到把‘清楚的文字’透過外部匯流排公諸於世的老問題。一些 PowerPC處理器採用CodePack壓縮技術來加密二進位元,結果恰得其反。

另一種加密辦法是編寫處理器的可配置或用戶可定義指令集。如果你能建立自己的指令集,儘管外人能夠監測指令串流,但這對他們來說是毫無意義的。你甚至不需要建立整個指令集,僅僅一或兩個放置良好的FOOBAR指令就可以讓演算法難以理解並將程式流偽裝得很好。(你的神秘指令的功能無關緊要;要隱藏你的意圖,NOP指令和JMP指令一樣有效。)

這就有了‘利用晦澀難懂以達成安全’的策略--弄亂你的程式碼使之難以仿效。(一些程式師會無意識這樣做)用這種辦法來保護程式碼比保護物件碼更有效。如果你的原始程式中無理地搪塞大量無關和無用的代碼,那麼競爭對手要從無關的程式中分離真正的程式流就很困難。要搞亂物件碼有點困難,如果物件碼執行正確,決心已定的駭客用普通工具就可以跟蹤其過程。

無論你採用什麼辦法,目的通常是一樣的。競爭對手一般不會全部照抄你的程式碼,他們僅僅想從中學習。我們擔心競爭對手佔據領先地位遠遠勝於對完全盜版問題的擔心。雖然,我們知道總是有一些知識產權處於被剽竊的風險之中,但我們能做的只是希望不要讓那些剽竊者這麼容易得手。

作者:Jim Turley是EE Times姊妹刊物《嵌入式系統設計》的主編。




投票數:   加入我的最愛
我來評論 - 採用多種方式保護程式碼免受盜版
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首