IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【单片机】唯一设备ID UID固件加密 -> 正文阅读

[嵌入式]【单片机】唯一设备ID UID固件加密

简单就是说相当于芯片的身份证,可以区分每一个芯片

唯一设备标识符最适合:
● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)
● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以
提高 Flash 中代码的安全性
● 激活安全自举过程等
96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远
不能改变这些位。
96 位的唯一设备标识符也可以以单字节/ 半字 / 字等不同方式读取,然后使用自定义算法连接
起来。

芯片固件加密破解:

基本上任何固件加密都是可以被破解的,当然使用uid只是会增大破解的难度,如果当我们使破解的难度几乎等同于重新写代码的难度的时候,这个时候就算是加密的成功了。

代码思路:

第一次进入芯片,将芯片身份证固件uid读到静态区flash中

第二次进入芯片,就会将读取芯片uid,如果当前固件被读出到其他芯片中,会判断之前的uid

之前不一样,就会报错

#define uid1            (0x1FFF7A10)
#define uid2            (0x1FFF7A14)
#define uid3            (0x1FFF7A18)

static const int id1 = 0xffffffff;
static const int id2 = 0xffffffff;
static const int id3 = 0xffffffff;
static const int id4 = 0xffffffff;
static const int id5 = 0xffffffff;
static const int id6 = 0xffffffff;

/* 第一次进入,初始化uid */
if ((0xffffffff == id1) && (0xffffffff == id2) && (0xffffffff == id3) &&
    (0xffffffff == id4) && (0xffffffff == id5) && (0xffffffff == id6))
{
    id1 = *(uint32_t*)(0x1FFFF7E8);
    id2 = *(uint32_t*)(0x1FFFF7E8 + 4);
    id3 = *(uint32_t*)(0x1FFFF7E8 + 8);
    id4 = 0x11111111;
    id5 = 0x22222222;
    id6 = 0x33333333;
    return success;
}
/* 判断是否是该芯片 */
else if((*(uint32_t*)(0x1FFFF7E8) == id1) && (*(uint32_t*)(0x1FFFF7E8 + 4) == id2) && (*(uint32_t*)(0x1FFFF7E8 + 8) == id3) &&
        (0x11111111 == id4) && (id5 == 0x22222222) && (0x33333333 == id6))
{
    return success;
}
else
{
    return error;
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:42:58  更:2022-11-05 00:45:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:21:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码