日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年01月23日(星期四)

正在發(fā)生

2020年01月23日 | stm32芯片利用唯一ID對程序進(jìn)行加密的一種方法

發(fā)布者:guqian999 來源: eefocus關(guān)鍵字:stm32芯片  唯一ID  程序  加密 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

#define STM32_ID_D  352525   //任意的一個數(shù) 

//stm32芯片的ID地址,把地址減去一個數(shù),避免匯編里面直接出現(xiàn)ID的地址,不然很容易暴露加密與ID號有關(guān)

volatile u32 STM32_ID_addr[3]={0x1ffff7e8 - STM32_ID_D,0x1ffff7ec + STM32_ID_D,0x1ffff7f0 - STM32_ID_D};

 

/********************************************************************

函數(shù)功能:讀出stm32的ID,12字節(jié)

入口參數(shù):p

返    回:

備    注:把ID的地址做一下處理,加密性更好

********************************************************************/

volatile void STM32_Read_ID(volatile u32 *p)

{

   volatile u32 Addr;

// 因為不想讓程序反匯編后直接找到這個地址,所以這個地址是運(yùn)算出來的,

// 跟STM32_ID_addr反運(yùn)算,當(dāng)然了也可以用高級的算法,注意不能讓編譯器優(yōu)化這個地址

   Addr = STM32_ID_addr[0] + STM32_ID_D;

   p[0] = *(vu32*)(Addr);

   Addr = STM32_ID_addr[1] - STM32_ID_D;

   p[1] = *(vu32*)(Addr);

   Addr = STM32_ID_addr[2] + STM32_ID_D;

   p[2] = *(vu32*)(Addr);

}

/********************************************************************

函數(shù)功能:加密ID并保存

入口參數(shù):

返    回:

備    注:

********************************************************************/

void STM32_Encrypted_ID(void)

{

   u32 stm32ID[4],dat;   

   STM32_Read_ID(stm32ID);

   

   //這里可以用其它一些高級的算法,但解和加要一樣

   //把ID號處理成一個32位數(shù),也可以用自己的算法,處理成其他數(shù)據(jù),多少位都行

   stm32ID[3] = STM32_ID_D;        

   dat = stm32ID[0] + stm32ID[1] - (stm32ID[2]/stm32ID[3]); //處理成一個32位數(shù)

   

   FLASH_Unlock();

   FLASH_ErasePage  (STM32FLASH_EN_ID_START_ADDR);     // 

   FLASH_ProgramWord(STM32FLASH_EN_ID_START_ADDR,dat); //保存這個數(shù),寫進(jìn)32位 

   FLASH_Lock();

}

 

/********************************************************************

函數(shù)功能:比較加密ID,正確返回0

入口參數(shù):

返    回:1:不正確,0:正確

備    注:

********************************************************************/

u32 STM32_CMP_Encrypted_ID(void)

{

   u32 stm32ID[4],dat,dat2;   

   STM32_Read_ID(stm32ID);

   

   // 這里可以用其它一些高級的算法,但解和加要一樣   

   stm32ID[3] = STM32_ID_D;      

   dat = stm32ID[0] + stm32ID[1] - (stm32ID[2]/stm32ID[3]); 

   

   dat2 = *(u32*)(STM32FLASH_EN_ID_START_ADDR);  //讀出加密時,保存在flash中的數(shù)

   

   if(dat == dat2){return 0;} // 相同

   else           {return 1;} // 不同

}

 

 

//好了,有了上面那個程序,那下再繼續(xù)

 

 

//===================ID加密控制=====================================================================

   if(STM32_CMP_Encrypted_ID())

   {

      //量產(chǎn)時給一些條件,條件滿足就對ID加密,然后把加密結(jié)果保存到flash中,把該程序與芯片的ID,唯一對應(yīng)起來,加密完后,你也可以讓它自宮。   

      if(XXXXXX)

      { 

         STM32_Encrypted_ID();   //加密ID

         自宮                    //即把加密這段代碼從flash里面擦除,直接跳出去繼續(xù)執(zhí)行

      }

   }

 

 

//===================正常運(yùn)行時==================================  

 

// 校驗一下ID是否正確, 

   if(STM32_CMP_Encrypted_ID())

   {

    /*

來到這里嘛,當(dāng)然不正確咯,你別讓程序死在這哦,太明顯了,很容易找到是你干的,

    那么,一個系統(tǒng)肯定有一些參數(shù)才能運(yùn)行的,你可以改變一些參數(shù),這可以讓系統(tǒng)

    有時正常有時不正常,,呵呵,要查也不是那么容易的事了

*/

   }

}


關(guān)鍵字:stm32芯片  唯一ID  程序  加密 引用地址:stm32芯片利用唯一ID對程序進(jìn)行加密的一種方法

上一篇:stm32對flash的讀寫保護(hù)與解除
下一篇:stm32定時器的ETR、CH1N、CH2N、CH3N

推薦閱讀

從北京市經(jīng)濟(jì)技術(shù)開發(fā)區(qū)了解到,北京亦莊采用國內(nèi)自主知識產(chǎn)權(quán)的最先進(jìn)機(jī)器人技術(shù)路線,已建成全國首個跨境電商智能機(jī)器人倉庫。據(jù)悉,北京跨境電商智能一號機(jī)器人庫(簡稱智能一號)將正式啟動跨境電商網(wǎng)購保稅業(yè)務(wù),屆時北京地區(qū)的跨境電商企業(yè)可以在此享受到就近的智能化跨境電商服務(wù),廣大市民也能更加便捷地買到放心優(yōu)質(zhì)的進(jìn)口商品。智能一號按照構(gòu)建...
據(jù)外媒報道,韓國汽車制造商現(xiàn)代汽車集團(tuán)近日表示,公司開發(fā)出了一種更安全的氣囊系統(tǒng),可以保護(hù)乘員免受多次碰撞的傷害,這也是韓國汽車制造商首次開發(fā)這種多次碰撞安全氣囊系統(tǒng)。根據(jù)現(xiàn)代聲明,當(dāng)系統(tǒng)識別出首次碰撞后,先進(jìn)的安全氣囊系統(tǒng)會立即為進(jìn)一步的碰撞做好準(zhǔn)備,以防首次碰撞不夠嚴(yán)重而無法啟動氣囊,避免乘員在之后的碰撞中受到傷害。而現(xiàn)有的...
2018年,光器件行業(yè)的主旋律離不開“并購”二字,進(jìn)入到2019年雖然并購浪潮和規(guī)模無法與2018年相比,但大大小小的收購重組時有發(fā)生,上規(guī)模的是英偉達(dá)70億美元收購Mellanox,思科以26億美元收購硅光子公司Acacia。整體趨勢也符合Ovum所預(yù)期的那樣,對于一個每年不足90億美元的市場,需要更多的整合。 2019年對于光器件行業(yè)來說,正身處5G的發(fā)展機(jī)遇之下,...
為了測試錄放磁頭的線圈是否損壞,有的人用萬用表的電阻擋去測量。這種方法會給磁頭充磁,致使磁頭在工作時產(chǎn)生噪聲,使呂方效果不佳。這里介紹一個好辦法,即是將交流220V中的一跟相線引出(可用萬用表的一跟表筆線,一頭插入電源插座相線孔,另一頭即表筆還用鱷魚夾)夾住磁頭線圈的一端。磁頭線圈的另一端用測電筆去碰觸。如果磁頭線圈是好的,沒短線,...

史海拾趣

問答坊 | AI 解惑

EMC,EMI輔助材料

輔助您解決EMC,EMI問題的材料,幫助您解決問題,可以找我哦。我的郵箱是;machane2126.com  電話是13511064904 馬先生…

查看全部問答∨

在51上用C寫串口程序碰到的一個問題

#include #define unint unsigned int #define unchar unsigned char delay(unchar n) {unint i,AI; for (i=n;i>0;i--) for (AI=100;AI>0;AI--); } void main() {         TMOD=0X20;         ...…

查看全部問答∨

問個mfc應(yīng)用的問題??

在dialog中有個tab control,在每個tab的dialog中有個group box, group box中有個按鈕。 現(xiàn)在的現(xiàn)實結(jié)果是tab control和group box都顯示正常,按鈕沒有顯示,什么原因? app方面菜鳥一個,期待大家指點…

查看全部問答∨

求助:根據(jù)下面的信息可以看出我這個 flash 是 幾 byte 寬的,容量是多少嗎?謝謝!

在目前所有的非易失性存儲器(PROM、EPROM、EEPROM和Flash)中,唯有Flash存儲器幾乎擁有現(xiàn)今講究個性化的用戶所需的 所有特點,它具有掉電數(shù)據(jù)不丟失、快速數(shù)據(jù)存取速度、電可擦除、容量大、在線可編程、價格低廉以及足夠多的擦除、容量 大、在 ...…

查看全部問答∨

有關(guān) 開關(guān)恒流電源 的一些問題

本帖最后由 paulhyde 于 2014-9-15 09:03 編輯    請問大家 能 恒流 的用于開關(guān)電源的 芯片 有哪些     輸出電壓:0~50V  左右     輸出電流:0~0.5A 左右     輸出功率:0~25w ...…

查看全部問答∨

dxp2004

用DXP2004自己制作了一個80c51的庫文件,也設(shè)置封裝了,但在原理圖編輯中調(diào)用時,可以放置但就是不能選中 也不能移動,是什么地方出問題了,哪位幫幫忙?謝謝了,…

查看全部問答∨

用iMPACT燒寫程序到W25X40L問題

我現(xiàn)在用的xilinx的下載電纜,通過iMPACT軟件燒寫代碼到W25X40L里,有時能燒寫成功,有時根本不能,不知道是怎么回事,可靠性這么不好,還有W25X40L上的引腳連到cpld上的,但把cpld里的程序擦除應(yīng)該能燒寫到W25X40L吧。望大家給點意見?先謝謝了…

查看全部問答∨

求ISE14.6破解

哪位大俠有ISE14.6的破解,謝謝! …

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved