stm32加密方法
⑴ 一個STM32F102R8型號的晶元,可以把里邊的程序提取出來嗎好像加密的可以解密嗎
像下邊那位朋友說的多重加密很難,但是如果只是提取出來程序是可以的,程序提取出來之後也可以燒錄,反編譯的話會復雜一些,之前在北京致芯科技做過這個型號的晶元,你可以問一下
⑵ stm32加密怎麼設置
if(FLASH_GetReadOutProtectionStatus() != SET)
{
FLASH_Unlock();
FLASH_ReadOutProtection(ENABLE);
FLASH_Lock();
}
⑶ 怎樣對STM32加密,防止被讀出復制
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可
2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確
3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用
4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序
⑷ 單片機原理的加密方法
科研成果保護是每一個科研人員最關心的事情,加密方法有軟體加密,硬體加密,軟硬體綜合加密,時間加密,錯誤引導加密,專利保護等措施有矛就有盾,有盾就有矛,有矛有盾,才促進矛盾質量水平的提高加密只講盾,也希望網友提供更新的加密思路,現先講一個軟體加密:利用MCS-51 中A5 指令加密,其實世界上所有資料,包括英文資料都沒有講這條指令,其實這是很好的加密指令A5 功能是二位元組空操作指令加密方法在A5 後加一個二位元組或三位元組操作碼,因為所有反匯編軟體都不會反匯編A5 指令,造成正常程序反匯編亂套,執行程序無問題仿製者就不能改變你的源程序。
硬體加密:8031/8052單片機就是8031/8052掩模產品中的不合格產品,內部有ROM,可以把8031/8052 當8751/8752 來用,再擴展外部程序器,然後調用8031 內部子程序當然你所選的同批8031晶元的首地址及所需用的中斷入口均應轉到外部程序區。
硬體加密
用高電壓或激光燒斷某條引腳,使其讀不到內部程序,用高電壓會造成一些器件損壞重要RAM 數據採用電池(大電容,街機採用的辦法)保護,拔出晶元數據失去機器不能起動,或能初始化,但不能運行。
用真假方法加密
擦除晶元標識
把8X52單片機,標成8X51 單片機,並用到後128B的RAM 等方法,把AT90S8252 當AT89C52,初始化後程序段中並用到EEPROM 內容,你再去聯想吧!
用激光(或絲印)打上其它標識如有的單片機引腳兼容,有的又不是同一種單片機,可張冠李戴,只能意會了,這要求你知識面廣一點 。
用最新出廠編號的單片機,如2000 年後的AT89C 就難解密,或新的單片機品種,如AVR 單片機。
DIP 封裝改成PLCC,TQFP,SOIC,BGA等封裝,如果量大可以做定製ASIC,或軟封裝,用不需外晶振的單片機工作(如AVR 單片機中的AT90S1200),使用更復雜的單片機,FPGA+AVR+SRAM=AT40K系列。
硬體加密與軟體加密只是為敘說方便而分開來講,其實它們是分不開的,互相支撐,互相依存的軟體加密:其目的是不讓人讀懂你的程序,不能修改程序,你可以………….....
利用單片機未公開,未被利用的標志位或單元,作為軟體標志位,如8031/8051有一個用戶標志位,PSW.1 位,是可以利用的程序入口地址不要用整地址,如:XX00H,XXX0H,可用整地址-1,或-2,而在整地址處加二位元組或三位元組操作碼,在無程序的空單元也加上程序機器碼,最好要加巧妙一點用大容量晶元,用市場上模擬器不能模擬的晶元,如內部程序為64KB 或大於64KB 的器件,如:AVR 單片機中ATmega103 的Flash 程序存儲器為128KBAT89S8252/AT89S53中有EEPROM,關鍵數據存放在EEPROM 中,或程序初始化時把密碼寫到EEPROM 中,程序執行時再查密碼正確與否,盡量不讓人家讀懂程序。關於單片機加密,講到這里,就算拋磚引玉。
⑸ 如何用 stm32的單片機 id做加密
由於ID號是不可修改的,你可以先讀出來,然後進行一個演算法,把演算法產生的數據存到FLASH裡面,然後每次程序開始時候把演算法數據讀出來,把ID號進行運算,看看是否匹配,不能匹配,程序停止,否則程序程序正常運行;
⑹ stm32加密怎麼可以看出來
stm32加密這樣可以看出來:
1、讀出完整程序段,搜索關鍵位元組E8F7FF1F,因為STM32唯一的96位(12位元組)ID基地址位於0x1FFF7E8,若程序段中涉及ID校驗必然會讀取晶元中ID索引該地址。
2、用工具讀取此晶元該地址的96位(12位元組)ID碼,找到空片區寫入此地址,更改索引地址:例如此晶元ID碼為34FFDA054E50383119651843選取起始地址區域0x80000020,在前四個位元組輸入"34FF1843",後12位元組輸入34FFDA054E50383119651843,晶元中索引的E8F7FF1F均改成20000008,這是常用軟加密的去除方法。
⑺ jflash燒寫stm32可以燒寫加密一次完成嗎
jflash燒寫stm32可以燒寫加密一次完成。
1、 打開J_Flash ARM出現如下工作界面。
2、選擇Options—Project settings進入Project settings界面。
3、點擊CPU,選擇合適的型號:此時,我們在device裡面選擇好我們目標板上的晶元就可以了,然後點擊確認。
4、我們現在將JLINK和目標板進行連接:Target ——connect沒有跳出錯誤,說明連接成功。
特點:
內核:ARM32位Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬體除法。
存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器。
時鍾、復位和電源管理:2.0-3.6V的電源供電和I/O介面的驅動電壓。上電復位(POR)、掉電復位(PDR)和可編程的電壓探測器(PVD)。4-16MHz的晶振。內嵌出廠前調校的8MHzRC振盪電路。內部40 kHz的RC振盪電路。用於CPU時鍾的PLL。帶校準用於RTC的32kHz的晶振。
低功耗:3種低功耗模式:休眠,停止,待機模式。為RTC和備份寄存器供電的VBAT。