單片機在現(xiàn)在工業(yè)控制中起著巨大的作用,在各個地方都可以看到它的身影。其中的程序更可以說是單位的商業(yè)秘密。所以,就關于單片機的加密我來說幾點體會。
單片機加密方法 (1)
科研成果保護是每一個科研人員最關心的事情 , 目的不使自己的辛苦勞動付注東流。加密方法有軟件加密 , 硬件加密 , 軟硬件綜合加密 , 時間加密 , 錯誤引導加密 , 專利保護等措施。
現(xiàn)先講一個軟件加密 : 利用 MCS-51 中 A5 指令加密 , 其實世界上所有資料 , 包括英文資料都沒有講這條指令 , 其實這是很好的加密指令。 A5 功能是二字節(jié)空操作指令。加密方法在 A5 后加一個二字節(jié)或三字節(jié)操作碼 , 因為所有反匯編軟件都不會反匯編 A5 指令 , 造成正常程序反匯編亂套 , 執(zhí)行程序無問題。仿制者就不能改變你的源程序 , 你應在程序區(qū)寫上你的大名、單位、開發(fā)時間及仿制必究的說法 ,以備獲得法律保護。
硬件加密 :8031/8052 單片機就是 8031/8052 掩模產(chǎn)品中的不合格產(chǎn)品 , 內(nèi)部有 ROM, 可以把 8031/8052 當 8751/8752 來用 , 再擴展外部程序器 , 然后調(diào)用 8031 內(nèi)部子程序。當然你所選的同批 8031 芯片的首地址及所需用的中斷入口均應轉到外部程序區(qū)。
單片機加密方法 (2)
硬件加密 : 使他人不能讀你的程序
① 用高電壓或激光燒斷某條引腳 , 使其讀不到內(nèi)部程序 , 用高電壓會造成一些器件損壞。
② 重要 RAM 數(shù)據(jù)采用電池 ( 大電容 , 街機采用的辦法 ) 保護 , 拔出芯片數(shù)據(jù)失去。機器不能起動 , 或能初始化 , 但不能運行。
用真真假假方法加密 :
擦除芯片標識。
把 8X52 單片機 , 標成 8X51 單片機 , 并用到后 128B 的 RAM 等方法 , 把 AT90S8252 當 AT89C52, 初始化后程序段中并用到EEPROM 內(nèi)容 , 你再去聯(lián)想吧 !
用激光 ( 或絲印 ) 打上其它標識。如有的單片機引腳兼容 , 有的又不是同一種單片機 , 可張冠李戴 , 只能意會了 , 這要求你知識面廣一點。
用最新出廠編號的單片機 , 如 2000 年后的 AT89C 就難解密 , 或新的單片機品種 , 如 AVR 單片機。
DIP 封裝改成 PLCC,TQFP,SOIC,BGA 等封裝。
如果量大可以做定制 ASIC, 或軟封裝。
用不需外晶振的單片機工作 ( 如 AVR 單片機中的 AT90S1200) 。
使用更復雜的單片機 FPGA+AVR+SRAM=AT40K 系列。
單片機加密方法 (3)
硬件加密與軟件加密只是為敘說方便而分開來講 , 其實它們是分不開的 , 互相支撐 , 互相依存的。
軟件加密 : 其目的是不讓人讀懂你的程序 , 不能修改程序 , 你可以 。..。..。
利用單片機未公開 , 未被利用的標志位或單元 , 作為軟件標志位 , 如 8031/8051 有一個用戶標志位 ,PSW.1 位 , 是可以利用的。
程序入口地址不要用整地址 , 如 :XX00H,XXX0H, 可用整地址 -1, 或 -2, 而在整地址處加二字節(jié)或三字節(jié)操作碼。
在無程序的空單元也加上程序機器碼 , 最好要加巧妙一點。
用大容量芯片 , 用市場上仿真器不能仿真的芯片 , 如內(nèi)部程序為 64KB 或大于 64KB 的器件 , 如 :AVR 單片機中 ATmega103 的Flash 程序存儲器為 128KB 。
AT89S8252/AT89S53 中有 EEPROM, 關鍵數(shù)據(jù)存放在 EEPROM 中 , 或程序初始化時把密碼寫到 EEPROM 中 , 程序執(zhí)行時再查密碼正確與否 , 然后 。..。..。 。當然不能告說人家這是什么器件 , 盡量不讓人家讀懂程序 , 在這里說謊 , 騙人是正當防衛(wèi)。
用“真真假假 , 假假真真” , 把幾種不同品種的單片機放在同一設備中 , 如主芯片用 AVR( 說是 MCS51), 鍵盤顯示用 AT89C2051( 說是 GAL),I/O 口擴展驅動用 PIC( 說是 AT90S1200) 等 , 當然要求你知識面廣一點。如果你用高級語言 C 編寫程序就簡單了 , 因為 C 語言程序移植方便。
有些國家的產(chǎn)品能做到三年保修 , 三年保不壞 , 三年后保壞 , 或三年后保有故障 , 可能用什么技術 ? 你去想吧。例 : 每次開機或關機 ,EEPROM 某單元加 1, 也可二個、三個單元連接起來計數(shù) , 達到某值停止工作。
硬件用軟件代替 , 軟件用硬件代替。用大規(guī)模 CPLD 可編程器件。
關于單片機加密 , 講到這里 , 就算拋磚引玉吧。
-
單片機
+關注
關注
6037文章
44558瀏覽量
635301 -
RAM
+關注
關注
8文章
1368瀏覽量
114697 -
源程序
+關注
關注
63文章
1693瀏覽量
45490
發(fā)布評論請先 登錄
相關推薦
評論