① STM32的加密庫在哪兒
關於STM32加密
摘要:
知識產權的保護,如何讓自已辛勤的勞動成果不被別人抄襲,採用有效的手段對IC加密是值得每一個設計者關注的問題。
當然,有人說,沒有解不了密的IC,的確,解密是一項技術,只要有人類在不斷的研究,它就有破解的一天;但是加密後的IC會增加破解的難度與破解成本,當破解的成本大於收益時,自然就會使破解者望而卻步。
STM32晶元這兩年銷量很好,它的性能和價格都很不錯,但如何對STM32進行加密呢,本人結合自已使用STM32 MCU一年多的經驗,總結一下我對它加密的理解與方法。
關鍵字: STM32 加密 讀保護
加密,最基本的方法是置讀保護,這樣可以防止外部工具非法訪問,在STM32官網發布的 串口ISP軟體中有置讀保護和加密選項,選擇一個就可以了,這樣外部工具就無法對FLASH進行讀寫操作,但我要重新燒寫FLASH怎麼辦?只能清讀保護,而清讀保護後,晶元內部會自動擦除FLASH全部內容。
還有人說,置讀保護還不夠安全,說要採用晶元內的唯一ID來加密,在程序里識別晶元的ID,如果ID不對,則程序不運行,當然,這樣安全性又要更高一些,但每個晶元的ID不一樣,因此對應的程序也應該不一樣,那如何處理呢?有網友說:采購的時候,產品同批生產的ID號應該是連續的,可以通過判別ID的范圍;還有網友說,在燒錄工具里做一個演算法,讀取晶元ID,再修改相應的二進制文件。當然還會有很多種方法,這里不展開討論。
以上介紹的只是一種情況,在實際的應用中還會發生第二種情況。
我們知道,STM32的內部FLASH是用戶可編程的,也就是說它支持IAP,而IAP中的APP代碼一般是需要開放的,那麼只有保證BOOT的代碼安全,才能確保不被破解。
前面提到,當IC置讀保護後,外部工具不能訪問內部FLASH,但CPU可以訪問,破解者完全可以自已編寫一段代碼通過BOOT下載到IC 運行,然後在程序中讀出你的BOOT代碼。
只能加以限制,使別人的代碼運行不了,才能保證BOOT不被讀出。
常用的方法是採用加密演算法,如AES;流程如下:
APP代碼加密,下載時,在BOOT中解密,這樣,只有通過正確加密的APP代碼才能正常的運行,因此加密的演算法就成了你的密鑰,而這個是你獨有的。
參考資料:《STM32F1x Flash Programming.pdf》作者:STMicroelectronics
② 怎樣把文件2次加密
兩次加密完全可以啊,不要說兩次加密,你加密更多次也成,但得保證,每次加密的密碼不一樣,不然人家破解一層加密密碼後,就全解了。
如果文件重要。可以這樣層層加密,用不同的密碼。
1、先用word自帶的加密功能加密。這個加密不可靠,10秒鍾之類,再復雜的密碼也能破。
2、用winrar加密。把加密的word加密後,再用rar的加密功能加密。這個也能破解,只不過要多花點時間。
3、用你的「文件夾加密超級大師」加密。這個也不可靠,只用現有機器自帶的軟體,文件10秒鍾之類就能復制出來的。
4、推薦你使用ecboy來加密,它既能加密單個文件,也能加密文件夾,也可以批量加密,還能偽裝加密,這個也能破解的。相比其它加密軟體來說,要破解的話,要麻煩點。
俗話說:「不怕賊偷,就怕賊惦記」,有時加密倒不如不加,感興趣的話,私聊。
③ stm32的flash有幾種加密方法
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可
2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確
3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用
4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序
④ 怎樣對STM32加密,防止被讀出復制
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可
2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確
3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用
4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序
⑤ 二次加密什麼意思
軟體二次加密為了防止破解文件四處流傳。
⑥ stm32加密怎麼設置
if(FLASH_GetReadOutProtectionStatus() != SET)
{
FLASH_Unlock();
FLASH_ReadOutProtection(ENABLE);
FLASH_Lock();
}
⑦ 如何用 stm32的單片機 id做加密
由於ID號是不可修改的,你可以先讀出來,然後進行一個演算法,把演算法產生的數據存到FLASH裡面,然後每次程序開始時候把演算法數據讀出來,把ID號進行運算,看看是否匹配,不能匹配,程序停止,否則程序程序正常運行;
⑧ 問個很簡單的問題stm32怎樣加密
燒寫的時候有加密的選項
⑨ STM32F103C8T6解密價格是不是不貴為啥有的報的價格那麼懸殊
這個晶元主要問他是軟加,你可以問問北京致芯。就是二次加密的難度非常大,很多時候是需要進行反匯編後,找出問題然後修改後才可以用,所以價格會貴些,一些不懂的人,不知道,就瞎說唄,
⑩ stm32LEVE2加密別人能解嗎
首先WIFI有3種加密方式,分別是WEP、WAP、WAP2(打開WIFI搜一下就可知道用的什麼加密方式)。WEP加密是可以破的,買個蹭網卡回來照著說明書操作就可以了,很簡單的。WAP有可能破解,但操作很復雜,成功幾率不高。WAP2是完全不能破解的。最好不要破解人家的WIFI,畢竟是不道德的。再說就是能破解,也是用一時,別人還會發現改密的,以後設置下不給用了,就又不行了。還是自己一個寬頻或是共享。