当前位置: 首页 > news >正文

网址与网站的区别行业数据网站

网址与网站的区别,行业数据网站,网站建设销售客户疑问,教学网站建设计划STM32F1系列的Unique device ID寄存器的地址为0x1FFFF7E8。 这个寄存器是只读的。 Unique device ID寄存器位于“System memory”中。“System memory”地址范围为“0x1FFF F000- 0x1FFF F7FF”。 所有STM32 MCU上都存在系统引导加载程序。顾名思义Unique device ID寄存器的地址为0x1FFFF7E8。 这个寄存器是只读的。 Unique device ID寄存器位于“System memory”中。“System memory”地址范围为“0x1FFF F000- 0x1FFF F7FF”。 所有STM32 MCU上都存在系统引导加载程序。顾名思义它位于MCU的系统内存ROM区域。系统 bootloader 位于存储器的只读部分并在制造阶段进行编程。在流行文献中系统 bootloader 可能被称为 ROM bootloader。 “引导加载程序”存储在STM32设备的内部引导ROM系统内存中并在生产过程中由ST编程。其主要任务是通过一种可用的串行外设如USART、CAN、USB、I2C、SPI将应用程序下载到内部闪存中。为每个串行接口定义了一个通信协议具有兼容的命令集和序列。 结论 通过查看各种资料发现STM32的Unique device ID只读不能修改它只能由ST在生产时进行编程 。 CPU内部的Unique device ID是唯一的且不可修改因此我们可对这ID进行加密然后将加密结果保存到FLASH中。这样每次启动都会去比较加密数据是否匹配。正确则运行不正确则进入死循环。 STM32不同系列的ID起始地址不同如下所示 1. 0x1FFFF7AC, 是STM32F0系列Unique device ID的起始地址 2. 0x1FFFF7E8, 是STM32F1系列Unique device ID的起始地址 3. 0x1FFF7A10, 是STM32F2系列Unique device ID的起始地址 4. 0x1FFFF7AC, 是STM32F3系列Unique device ID的起始地址 5. 0x1FFF7A10, 是STM32F4系列Unique device ID的起始地址 6. 0x1FF0F420, 是STM32F7系列Unique device ID的起始地址 7. 0x1FF80050, 是STM32L0系列Unique device ID的起始地址 8. 0x1FF80050, 是STM32L1系列Unique device ID的起始地址 9. 0x1FFF7590, 是STM32L4系列Unique device ID的起始地址 10. 0x1FF0F420, 是STM32H7系列Unique device ID的起始地址 编程时注意不要在程序中出现上述的Unique device ID寄存器的地址否则很容易被盗版。 例如下面这个加密就会被破解 #include stm32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include stdio.h //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf() #include USART1.h //注意USART1.h要放在 stdio.h 包含文件之后如果这个位置颠倒了业不能打印浮点数。/* CPU内部的“unique ID”是唯一的且不可修改因此我们可对这ID进行加密 然后将加密结果保存到FLASH中。这样每次启动都会去比较加密数据是否匹配。正 确则运行不正确则进入死循环。 STM32不同系列的ID起始地址不同如下所示 1. 0x1FFFF7AC, /STM32F0唯一ID起始地址 2. 0x1FFFF7E8, /STM32F1唯一ID起始地址 3. 0x1FFF7A10, /STM32F2唯一ID起始地址 4. 0x1FFFF7AC, /STM32F3唯一ID起始地址 5. 0x1FFF7A10, /STM32F4唯一ID起始地址 6. 0x1FF0F420, /STM32F7唯一ID起始地址 7. 0x1FF80050, /STM32L0唯一ID起始地址 8. 0x1FF80050, /STM32L1唯一ID起始地址 9. 0x1FFF7590, /STM32L4唯一ID起始地址 10. 0x1FF0F420; /STM32H7唯一ID起始地址 */ #define SYSID 0X1FFFF7E8 //stm32f1系列单片机id起始地址 //直接使用0X1FFFF7E8地址它会出现在FLASH中还是可以改到的; //使用RAM中的数据通过加减来得到ID起始地址比较安全;#define SYSID1 0X1FFFF7E8 #define SYSID2 0X1FFFF7E9 #define SYSID3 0X1FFFF7EA #define SYSID4 0X1FFFF7EB #define SYSID5 0X1FFFF7EC #define SYSID6 0X1FFFF7ED #define SYSID7 0X1FFFF7EF #define SYSID8 0X1FFFF7F0 #define SYSID9 0X1FFFF7F1 #define SYSID10 0X1FFFF7F2 #define SYSID11 0X1FFFF7F3 #define SYSID12 0X1FFFF7F4u8 FLASHIDbuf[12];//保存加密数据 void Save_SystemID(void) {uint8_t i;u8 id[12]; //12*8 96u8 *dfu;//读ID数据并保存加密数据///printf(\r\n\r\nEncryptionID: );id[0] *(u8*)(SYSID1);id[1] *(u8*)(SYSID2);id[2] *(u8*)(SYSID3);id[3] *(u8*)(SYSID4);id[4] *(u8*)(SYSID5);id[5] *(u8*)(SYSID6);id[6] *(u8*)(SYSID7);id[7] *(u8*)(SYSID8);id[8] *(u8*)(SYSID9);id[9] *(u8*)(SYSID10);id[10] *(u8*)(SYSID11);id[11] *(u8*)(SYSID12);for(i 0;i 12;i) //读取ID{printf(%#X,,id[i]);}dfuFLASHIDbuf;for(i0;i12;i){*dfuid[i];dfu;} }//解密 void CheckSystemID(void) {uint8_t i;u8 id[12]; //12*8 96u8 *dfu;u8 d;printf(\r\n\r\nCheckSystemID); //读ID数据并比较加密数据///id[0] *(u8*)(SYSID1);id[1] *(u8*)(SYSID2);id[2] *(u8*)(SYSID3);id[3] *(u8*)(SYSID4);id[4] *(u8*)(SYSID5);id[5] *(u8*)(SYSID6);id[6] *(u8*)(SYSID7);id[7] *(u8*)(SYSID8);id[8] *(u8*)(SYSID9);id[9] *(u8*)(SYSID10);id[10] *(u8*)(SYSID11);id[11] *(u8*)(SYSID12);dfuFLASHIDbuf;for(i0;i12;i){d*dfu;if(did[i])printf(\r\nOK%u,i);//比对正确则打印else //ID校验失败{printf(\r\n\r\nError);while(1)//死循环{;}}dfu;} }int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4USART1_Serial_Interface_Enable(115200);printf(\r\nCPU reset\r\n);while(1){Save_SystemID();//保存加密数据CheckSystemID();//检查加密数据} } 要想解决不容易被破解就将Unique device ID寄存器的地址为0x1FFFF7E8放到RAM中通过计算得到。 #include stm32f10x.h //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t #include stdio.h //getchar(),putchar(),scanf(),printf(),puts(),gets(),sprintf() #include USART1.h //注意USART1.h要放在 stdio.h 包含文件之后如果这个位置颠倒了业不能打印浮点数。/* CPU内部的“unique ID”是唯一的且不可修改因此我们可对这ID进行加密 然后将加密结果保存到FLASH中。这样每次启动都会去比较加密数据是否匹配。正 确则运行不正确则进入死循环。 STM32不同系列的ID起始地址不同如下所示 1. 0x1FFFF7AC, /STM32F0唯一ID起始地址 2. 0x1FFFF7E8, /STM32F1唯一ID起始地址 3. 0x1FFF7A10, /STM32F2唯一ID起始地址 4. 0x1FFFF7AC, /STM32F3唯一ID起始地址 5. 0x1FFF7A10, /STM32F4唯一ID起始地址 6. 0x1FF0F420, /STM32F7唯一ID起始地址 7. 0x1FF80050, /STM32L0唯一ID起始地址 8. 0x1FF80050, /STM32L1唯一ID起始地址 9. 0x1FFF7590, /STM32L4唯一ID起始地址 10. 0x1FF0F420; /STM32H7唯一ID起始地址 */ #define SYSID 0X1FFFF7E8 //stm32f1系列单片机id起始地址 //直接使用0X1FFFF7E8地址它会出现在FLASH中还是可以改到的; //使用RAM中的数据通过加减来得到ID起始地址比较安全;u8 FLASHIDbuf[12];//保存加密数据 void Save_SystemID(void) {uint8_t i;u8 id[12]; //12*8 96volatile u32 UID_BASE;UID_BASE 0x20000007; //让逆向的人误以为是ram变量UID_BASE - 0x800; UID_BASE - 0x1F; //等于id的基地址0x1FFFF7E8//读ID数据并保存加密数据///printf(\r\n\r\nEncryptionID: );for(i 0;i 12;i) //读取ID{id[i] *(u8*)(UID_BASEi);FLASHIDbuf[i]id[i];printf(%#X,,id[i]);} }//解密 void CheckSystemID(void) {uint8_t i;u8 id[12]; //12*8 96u8 *dfu;u8 d;volatile u32 UID_BASE;UID_BASE 0x20000007; //让逆向的人误以为是ram变量UID_BASE - 0x800; UID_BASE - 0x1F; //等于id的基地址0x1FFFF7E8printf(\r\n\r\nCheckSystemID); //读ID数据并比较加密数据///dfuFLASHIDbuf;for(i0;i12;i){id[i] *(u8*)(UID_BASEi);d*dfu;if(did[i])printf(\r\nOK%u,i);//比对正确则打印else //ID校验失败{printf(\r\n\r\nError);while(1)//死循环{;}}dfu;} }int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4USART1_Serial_Interface_Enable(115200);printf(\r\nCPU reset\r\n);while(1){Save_SystemID();//保存加密数据CheckSystemID();//检查加密数据} } 这样在FLASH中找不到Unique device ID寄存器的地址如0x1FFFF7E8。 为了保险起见我们可以将ID读出后按照某个算法得到另外一个数值保存到FLASH中就会更加安全。 只要盗版者无法修改的Unique device ID寄存器的内容程序就不会被盗版。 如果你有好的破解方法或者是工具请留言。
http://www.hkea.cn/news/14327773/

相关文章:

  • 外贸建站哪个最便宜网站的footer怎么做
  • 如何做单网页网站做铝材哪些网站招聘
  • 网站建设策划范文安远做网站
  • 哈尔滨网站开发联系薇昆明市住房和城乡建设局网站
  • 如何让自己的网站被搜索引擎收录营销型网站北京
  • 吉安网站优化汕头seo网站建设
  • 山西网站群建设hao123网址之家
  • 大连网络推广广告代理网站怎样做关键词优化
  • 做一款什么网站赚钱深圳专业网站建设公司多少钱
  • 专业的单位网站开发ipad室内装修设计软件
  • 全国最大的网站建设公司排名如何进行优化
  • 网站伪静态设置资料库网站开发报价
  • 长春网站快照优化公司如何做网络营销推广唯选一 诺
  • 开的免费网站能赚钱吗广州前端培训机构
  • 免费注册com的网站菏泽建设集团
  • 南山建站公司瑞安网
  • 网站开发维护的好处wordpress 中文 字体大小
  • 石家庄网站制作报价虚拟主机建设二个网站
  • ps网站页面设计教程网站建好用电脑做服务器
  • 电子商务网站开发课程教案吉林大学建设工程学院网站
  • 网站 推广 工具网上注册公司需要哪些材料和流程
  • 嘉兴企业网站建设文字生成网址
  • 网站制作工作室制作平台微信网站推广
  • 学网站开发首先学哪些基础扬中市人才网官网
  • 门户网站属于什么类型的模式5 电子商务网站建设的步骤
  • 网站应急响应机制建设建设网站审批
  • 网站 建设 维护 公司网站建设销售工资多少
  • 广州越秀网站制作荣耀华为手机商城官方网站
  • 网站首页制作网站网站建设预算描述
  • 网站广告位一般多少钱网站项目建设管理