2012年AVR被破解
2013用STM8
stm8 唯一ID号加密方法.思路
http://www.amobbs.com/thread-5540720-1-1.html
2016年唯一ID被破解(烦!被聊城鑫*连破解抄袭3个产品.恶心!STM8ID)
http://www.amobbs.com/thread-5647898-1-1.html
之前一直听人家说无用完的FLASH空间有多危险.一直都不知道。今天发现问题了.吓死人
2016-05-08再一次加密!
我看几年后再有人来破!
QQ图片20160508173537.jpg (143.39 KB, 下载次数: 0)
下载附件
2016-5-8 17:33 上传
QQ图片20160508173550.jpg (20.4 KB, 下载次数: 0)
下载附件
2016-5-8 17:33 上传
QQ图片20160508173543.jpg (21.69 KB, 下载次数: 0)
下载附件
2016-5-8 17:33 上传
QQ图片20160508173553.jpg (34.27 KB, 下载次数: 0)
下载附件
2016-5-8 17:33 上传
8K FLASH不可能全部用完吧?总会有些空间剩的.好吧。只要有12字节就够了.这12字节就保存母片的ID
2.读唯一ID时,是先向一个指针初始化,然后连续读ID对吧?如下
unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);
for(i=0;i!=12;i++){*p++=*pIDStart++;}
这样的程序---编译--生成HEX文件了。
这个HEX文件烧录到芯片.---成产品卖出去-------------这就是母片!
3.客户拿到母片总能读出HEX的。技术难度高点。总能读出HEX的
问题来了。客户在这个HEX文件里面。能不能查到(unsigned char *)(ID_BaseAddress); ????
以STM8S102为例ID_BaseAddress=0x4865
那么这个HEX中就肯定能查找到0x4865如第一张图片
母片的ID号也能读出的!而且母片FLASH是有空余的
就把母片的ID写入0x7E00这地址吧!如图1的第3步
最后!把HEX文件所有的0x4865 改成0x7E00
烧录到新的芯片里面
这样会发生什么?
unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress);
for(i=0;i!=12;i++){*p++=*pIDStart++;}
这里读的是母片的ID,不是芯片自己的ID
这里不存在4865只有7E00
解决方法就是不要明文出现ID号的地址!
一周热门 更多>