[STM32F1]

STM32基础篇 程序加密保护实验

[复制链接]
2673|22
手机看帖
扫描二维码
随时随地手机跟帖
aizaixiyuanqian|  楼主 | 2018-2-23 19:32 | 显示全部楼层 |阅读模式
本帖最后由 aizaixiyuanqian 于 2018-2-23 19:33 编辑

STM32 芯片本身有一个 ID,不同的芯片 ID 号不一样。因此本实验可以基于
这点将我们芯片内的程序进行加密,通过在固定的ID地址上读取ID号进行判断,
判断读取的 ID 是否是本芯片独一无二的 ID,正确的话可以对加密的程序进行读
取,反之不能打开。本实验通过串口进行输出芯片 ID 号及解密成功或者失败。实验目的:
1. 学习如果利用 ID 进行加密
aizaixiyuanqian|  楼主 | 2018-2-23 19:34 | 显示全部楼层
int main()
{
u8 sys_id[12],i;
printf_init(); //printf 初始化
for(i=0;i<12;i++) //将 ID 号全部打印输出
{
sys_id[i]=*((u8 *)(id_adr+i));
printf("%x ",sys_id[i]);
}
//对比 ID,如果正确执行下面程序,否则程序不能继续
if(sys_id[0]==0x33&&sys_id[1]==0xff&&sys_id[2]==0xd7&&sys_id[3]==0x05&&
sys_id[4]==0x42&&sys_id[5]==0x41&&sys_id[6]==0x33&&sys_id[7]==0x30&&
sys_id[8]==0x12&&sys_id[9]==0x79&&sys_id[10]==0x20&&sys_id[11]==0x43)
{
printf("\r\n 程序解密成功\r\n");
}
else
{
printf("\r\n 程序解密失败\r\n");
}
while(1);
}

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-23 19:34 | 显示全部楼层
定义芯片 ID 号地址是:
#define id_adr 0x1ffff7e8 //这个是固定的 ID 地址
该函数实现通过比较 ID 号,正确的话通过串口打印输出程序解密成功,否则输出解密失败。

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-23 19:35 | 显示全部楼层
当程序下载进去后,打开串口,对 DTR 前进行勾选,然后在取消。再通过发送字符即可以显示
1.png

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-23 19:38 | 显示全部楼层
本次的实验是最轻松的了,感谢大家的支持。

使用特权

评论回复
734774645| | 2018-2-24 11:00 | 显示全部楼层
我觉得你验证后还是没用

使用特权

评论回复
xiaoyaodz| | 2018-2-24 18:24 | 显示全部楼层
加密是烧断熔丝位吗

使用特权

评论回复
febgxu| | 2018-2-24 18:25 | 显示全部楼层
加密也没有什么作用,很多人能够**了。

使用特权

评论回复
xiaoyaodz| | 2018-2-24 18:26 | 显示全部楼层
熔丝位是最重要的。

使用特权

评论回复
febgxu| | 2018-2-24 18:26 | 显示全部楼层
现在的芯片除非把jtag都封死。

使用特权

评论回复
玛尼玛尼哄| | 2018-2-24 19:20 | 显示全部楼层
熔丝烧了也没用,腐蚀后,显微镜下接好,继续提取。

使用特权

评论回复
mmuuss586| | 2018-2-25 12:10 | 显示全部楼层

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:19 | 显示全部楼层
734774645 发表于 2018-2-24 11:00
我觉得你验证后还是没用

的确,不过程序还是要走一遍

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:19 | 显示全部楼层
xiaoyaodz 发表于 2018-2-24 18:24
加密是烧断熔丝位吗

不是的

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:20 | 显示全部楼层
febgxu 发表于 2018-2-24 18:25
加密也没有什么作用,很多人能够**了。

现在的技术,点到为止

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:20 | 显示全部楼层
xiaoyaodz 发表于 2018-2-24 18:26
熔丝位是最重要的。

的确,看来ST需要努力了

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:21 | 显示全部楼层
febgxu 发表于 2018-2-24 18:26
现在的芯片除非把jtag都封死。

一次烧入再不利用

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:21 | 显示全部楼层
玛尼玛尼哄 发表于 2018-2-24 19:20
熔丝烧了也没用,腐蚀后,显微镜下接好,继续提取。

大佬厉害了

使用特权

评论回复
aizaixiyuanqian|  楼主 | 2018-2-25 19:22 | 显示全部楼层

使用特权

评论回复
meijc119| | 2019-11-4 12:04 | 显示全部楼层
程序里面千万不要直接出现1FFFF7E8这个地址,不然太容易改了,改这个只要几百块钱,Q5225016

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

1353

帖子

6

粉丝