国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

stm8唯一ID號加密方法和思路

[復(fù)制鏈接]
樓主
coolice 發(fā)表于 2021-8-13 18:14:28 | 只看該作者 |倒序瀏覽 |閱讀模式
1.讀出ID號
  1. #if defined(STM8S103)
  2.      #define     ID_BaseAddress         (0x4865)
  3. #else//  defined(STM8S105)
  4.      #define     ID_BaseAddress         (0x48CD)
  5. #endif
  6. void GetUniqueID(unsigned char *p)
  7. {
  8.      unsigned char i;
  9.      unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);   
  10.      for(i=0;i!=12;i++){*p++=*pIDStart++;}
  11. }
復(fù)制代碼

2.把讀出的ID號生成其他數(shù)據(jù)。不一定就是12字節(jié)的!并保存在內(nèi)部EEPROM。在這個模塊準備2個函數(shù).一個用于加密.一個用于解密
  1. void StmWriteUniqueID(unsigned char Addr)
  2. {
  3.      unsigned char i;
  4.      FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
  5.      while (FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET)FLASH_Unlock(FLASH_MEMTYPE_DATA);
  6.      unsigned char *pEE=(unsigned char *)(FLASH_DATA_START_PHYSICAL_ADDRESS+(u32)Addr);
  7.      unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);
  8.      for(i=0;i!=6;i++)//由12字節(jié)生成12*N個字節(jié)
  9.     {
  10.          *pEE++=第1種算法,商業(yè)原因.我的算法就不公開了.大家可以準備一個數(shù)組查表
  11.         while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);  
  12.          *pEE++=第2種算法,商業(yè)原因.我的算法就不公開了。大家可以準備一個數(shù)組查表
  13.         while(FLASH_GetFlagStatus(FLASH_FLAG_EOP)== RESET);  
  14.          。。。。
  15.         第N種算法
  16.     }              
  17. }
復(fù)制代碼

//解密函數(shù)
unsigned char StmCheckUniqueID(unsigned char Addr)
3.主函數(shù)里面設(shè)置一個時間最好設(shè)置長一點。半個鐘或其他,讓人家難跟蹤
  
  1. while(1)
  2.      {
  3.          其他任務(wù)...............
  4.          /////////////////////////////////////////////////////////////////////////
  5.           if((Flag&FLAG_CHECK_ID)==FLAG_CHECK_ID)
  6.          {
  7.              Flag&=~FLAG_CHECK_ID;
  8.              if(StmCheckUniqueID(UniqueIDAddress)==1){IsIDCorrect=0x01;}//正確寫入
  9.             else{IsIDCorrect=0x00;}//錯誤寫入      
  10.          }        
  11.          /////////////////////////////////////////////////////////////////////////
  12.                其他任務(wù)...............
  13.      }
  14.          /////////////////////////////////////////////////////////////////////////
復(fù)制代碼


總結(jié):
這樣做還是能被破解的。但對方已經(jīng)很難跟蹤了.
如果破解者對芯片熟悉.他會根據(jù)ID號的地址!----畢竟芯片ID號的地址是固定的.找到對應(yīng)的調(diào)用程序.加密時用到芯片ID號的地址。解密時也有用到芯片ID號的地址
所以只有對方熟.是能很快跟蹤到加密/解密程序.而在解密程序入口就return出去!
這種方法已經(jīng)很實用了.畢竟不是太專業(yè)的很難破.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

手機版|小黑屋|ELEOK |網(wǎng)站地圖

GMT+8, 2026-5-26 02:11

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復(fù) 返回頂部 返回列表