如何提高stm8l eeprom 寿命存储器的擦写寿命

一个利用EEPROM加密的恶心方法...
用这种方法,
FLASH+EEPROM都被破解后
照原样烧到空芯片中,运行时能检查出是COPY货,然后随你愿意的时候#%^%$^%
在EEPROM中预先定义一个固定ID(长度你随意,每个芯片都一模一样)....
上电后,芯片如果检测到这个ID正确后,就开始在EEPROM中这个ID所在的几个字节不停的写入随机乱数(不要和ID重复),
重复20W次后(内置EEPROM一般是10W次寿命),看写入两个不同的数,看和读出的是否一致,
不一致就成功了,然后想办法提示下,比如点个LED之类...
每个芯片烧写好后,在出厂前都要做这种“预处理”
之后上电时,芯片检测到ID不正确,则写入一个随机数(与ID不同),再读,如果和写入的一样,则说明该芯片没经过“预处理”,计数一次
若“正常读写EEPROM”次数超过一定后,并工作一段时间后,发生些“很正常”的事就再“正常” 不过了...
写坏EEPROM,感觉很恶心,不过应该是可行的...就是写坏它需要时间可能很长...
而且随机数的原因,每片破解出来的EEPROM都是不一样的...
当然想一样也可以,不用随机数,用固定数去写EEPROM,
人家一般破两片,破出来内容一样,当然认为芯片软件上没任何“特殊处理”
这样可能更好些,不过为了记次数,使用次数不同的芯片,EEPROM还是不一样的...
而且在次数足够之前,不要做任何“正常”处理,给对方破解成功的假象...
等对方产品出厂了,被人买了一段时间后再时不时复位,罢工啥的...
======================================
[添加内容]
试了擦写30W次后,ATMEGA48的EEPROM仍是好好的,懒得继续了....
要花的时间太多了,不适用批量生产,所以还是用OSCCAL....
凑和下就行了...
写坏EEPROM不算慢,我曾经试过2008年ATMEL新版的24C512,一个单元的擦写寿命超过200万次,若干个小时就写坏了。
只怕这种失效不稳定,比如过一段时间后它又可写入一两次,那就惨了。
另外,人家可以把你这段程序nop掉。
看似破解成功后,几百次上电工作都正常,想必对方不会费那事再去看程序吧
等客户用段时间,估计一年后了,批量开始出问题,目的已经达到了...
用给定寿命的两倍去写,并且写完后要验证一下,而且还有数百次甚至上千数的记数
就算偶尔正常写入了一两次,也没什么关系...
另外,人家可以把你这段程序nop掉。 有几个人有那个精力啊 破解都是拿代码 生产使用
罪过罪过!楼主还给人家留了一年的时间,我只留了3个月。
不得不承认,有些程序是值得反汇编并研究的。
并不是每个盗版的人都全盘照抄,有些人只取关键之处。
罪过啊,好好的EEPROM就这样被你活生生的强J了!
肯研究我程序的,也算不错了,抄就抄了...
只恨那些几百元破解就想抢客户的...
这个主意不错啊...
哈哈,强人啊,这都想得出来!!!
那些破解的人太可恶了,是要整整
hehe 不新鲜了 很多年前21ic的坛子上就有人考虑这么干过了
我们但是还讨论过多快可以写坏某个存储器
把你的数据读出来,重新写入新的芯片里,ID也一样,这种加密不行的,早就被破解了,再说,我编个和你一样的程序也很快
学习一下。
14L没能理解此方法,估计没看完就自以为是了,
新的芯片EEPROM没有被写坏,原始代码不外流,出厂前都先上电初始化后,EEPROM内的东东已经和刚烧进去时不一样了,
而且有写坏的块,
在没有反汇编源码分析前,是不可能真正破解成功的
因为它拿到手的EEPROM中的数据已经没有初始了ID,所以不会造成“坏”了某字节的EEPROM...
请问楼主,要是盗版者也把EEPROM写坏了,然后再把从你那里copy来的HEX写道flash里面会怎样?
同楼上问。
他这个是这样的。hex是根据写坏了以后的样子生出来的。克隆的片子再写坏,基本上坏的位置是不一样的。所以copy来的hex不能直接用。
但是我也有个疑问。
EEPROM是不是坏了的byte都变成00?还是某个bit变成0?
那么是稳定的状态吗,会不会最后都变成0x00了?
那么这个方法就不能用。
觉得可行,可以实验下
把“24C04”的丝印刮成“24C01”,每次上电把24C04写整一页,如仿冒者用了24C01,由于每页字节数不同,写入24C01的数据就不一样。回读后你想干什么就干什么...
盗版者为什么要写坏EEPROM?
再说,又不是每个字节都坏。后面还有有用的数据呢...
23L的方法似乎不大可行,因为仿造者怕“24C01”中有初始数据,
所以一定会拆下来读出来再生产用的,
通用烧写器上一读,
24C04的密秘就可能会被发现了...
是个好办法啊哈哈
应该说盗版者不知道某个字节是坏的,哈哈,如果写坏两个字节那就更好了,重复的可能性是65536分之一。如果再来几个哈哈...
【25楼】 snoopyzz ,烧写器可以把24C04当成24C01读,没分别的,只是后面的3/4内容没读出来罢了。
我现在已经开始用OSCCAL+自己设计的脱机批量烧录器来干活了,每片hex都不同。也不知道有没有人破解我的程序。
这个方法虽然恶心了点
但是低成本 且很有效
m8的写坏次数超过200w,不停地写也要10多小时
批量小的时候还可以,多的时候就不行
不错的做法...&&再像示波器一样,加个开机次数计数进去,写进eeprom.这样也不会有谁觉得写进去eeprom会有什么用途,使用者可以在某个地方知道这台机的开机次数,然后...当程序发现这台机是copy的,开机计数又超过1****次....&&马上升压,给高压电容充电,自我销毁:)
其实这就是利用某些不可知或者随机分布的因素来进行加密,最早的同样原理加密出现在对软盘加密上,在软盘上用烫红的针尖点一下,可以造成一个位置随机的坏点,在软件灌录过程中记录这个位置,验证的时候往这个位置写入数据,再读取出来应该是错的,如果是正确的就说明被COPY了。这样随机的位置就和代码唯一关联起来了。
升压,没必要吧,这样可能会被分析出来,然后去掉那个电路。
我觉得,发现被COPY后,正常运行程序,等几个月后进入写EEPROM程序,一边正常运行,一边一直写EEPROM,把另一个存重要数据的EEPROM写坏,这样这个芯片对于运行你的程序来说已经是永久损坏了哈哈。
这个防止出问题后,盗版者再次烧录原程序那又得几个月后才坏。
别把自己给套牢了。
假如出点纰漏,你成千上万的正版产品要是出点问题,你就等着哭吧
方法不错..
如果你记录的EEPROM实效只是一个偶然的情况
比如你在25度 测试的/预处理的
别人在15度工作
发现25度不能正常写的EEPROM在15度又能工作了,比如延长10%的寿命
你怎么办?
想法不错,记号
打开eeprom后物理破坏再封装..
或者定制一批损坏的eeprom
能详细点吗,我没完全理解。
我的理解是:
1。用一个单片机或先在产品上下载一个预处理程序,进行把EEPROM用做ID号的字节写坏掉。
2。确定EEPROM有坏块了,然后再烧录正常的产品程序,正常程序重启后向ID位置写入数据,然后读出是否一致。
3。如果一致则是盗版,然后在EEPROM内计数。超过一定数就%^&*#@.
4。如果不一致,则是经过预处理的,可以正常运行。
如果是这样那也很容易破解掉的,一般的烧录器都可以测试到那一地址是有坏块的,如果也强行那那个地址写坏掉,那不就也没戏了吗?
41L理解的不正确....
程序只用烧一次,然后出厂前通电运行一次(就是运行时间有点长)...
能详细点吗?
觉得这方案很好。
我这样理解是不是对的:
1。在EEPROM内写一个ID(这个ID只有厂家知道)。
2。程序运行时如果ID相同,则把这个ID所在的EEPROM地址写坏掉(预处理)。
3。由于EEPROM内的ID数据已经损坏,程序不会再预处理了。
4。之后每次上电都向ID地址位置写入数据,再读出,然后判断是否一致,确定是正版或盗版。
5。如果是正版那么上电后写入的数据和读出来的数据是不一样的。
6。如果是盗版,写入的数据和读出来的数据是一样的。
试了擦写30W次后,ATMEGA48的EEPROM仍是好好的,懒得继续了....
要花的时间太多了,不适用批量生产,所以还是用OSCCAL....
凑和下就行了...
这想法好,也许写坏flash会快点,1分钟可以到1W次吧
呵呵,把ID放在EEPROM,人家不用你的EEPROM里的数据呢??只要你的FLASH????
这方法很久前在本网站已经看到有人提出来过,但是好像没有人用过,怕不可靠吧,想法很好
46L又是个没理解的,不过算了,反正花的时间太长,不实用...
阿莫要是看到,帮忙锁贴吧...
Maxim的1-wire有唯一ID的,可不可以用来做加密
时间有点长
头像被屏蔽
提示: 作者被禁止或删除 内容自动屏蔽
关注一下!~
楼上上没明白。知道ID有什么用?
加密就是防小人的。
现在小人都很有经验了,反编译一下,专门找到写EEPROM ,OSCCAL等等的关键地方,看看有没有“礼物”,有的话就用NOP掉了。
好方法,以后可以试着用用。。。
对,跟用针头加密软盘是一个道理,但这带有太多的不可预知银色,有可能会给生产带来不良的影响。
方法是不错,只是要写坏EEPROM花的时间太长,有一次我试着写坏一片m48,有一片两个小时就完成了,但另一片写了一个星期,还没坏。
一星期,残念...
我今天又试了30W次,一共60W次了,还是好的...
atmel是做flash起家的。
供电用5.5V试下EEPROM可能会比较容易坏
会不会破坏附近其它字节啊?
楼主实际使用过这个办法吗?
比如电压变成5V 甚至6V
这样 EEPROM是不是更容易坏
希望有人能试验下
这种加密的方法不容易破解
和别的加密方法合起来用 就更好了
如果破解的人 把你所有加密的方式都破解了,也就是说,他完全能看懂你的程序了(反编译),这样,对于他来说已经是没有用的了,他的水平,就是不破解也可以再编一个新程序来。
实际上,我曾反编译过别人的代码(51系列),想完全看懂别人的程序 ,真的是好难,我用了很多天才基本懂。当然,如果不不看他的程序,而是根据功能,新做程序,这个就很快了。所以说想从程序上弄懂 的方法来破解,这个意义不大,和新做程序来比,难度大很多的。
另外,我看了关于RAR加密方式 ,是一种到现在也没有破解的 加密方法,在单片机上面是不是可以用这种方式呢?它的方法是先解,最后再校验,没人能破解的----在破解前要人工输入一个密码,单片机上不现实。
用高压烧坏某不同的引脚,比如不能输出,然后从该脚用软件输出,从另一个脚输入。能正确得到结果的,表示已经被COPY。
【65楼】 zhwm3064 沉伦蜗牛
RAR不一样的,做个AES加密,没有密钥就是弄不出来。
单片机不同,他要在flash执行的。
找片加密存储器把关键数据放进去如何?难道要我放片智能卡在PCB上面?关键计算都做到里面去
唉!m48在4MHz下连续檫写了10个小时,不下千万次才永久写坏了该byte的一个bit,另有两bit在32度下正常,27度下错误!搞破坏怎么这么难啊?!
试过了,我搞坏M64里的一个BYTE用了二天半,呵呵!
几年前就试过了,不可行,有的EEPROM的烧写次数远大于手册中的次数。想写坏几个字节,有的写几天都坏不了。
tnnd,昨天写坏的那bit,又经过1天的檫写,居然.......
居然恢复为好的了,整个byte没有一点异常,晕..........
防破解还没结果,反倒坚定了我对EEPEOM的信心。EEPEOM是好东西啊。
AVR要是作出向STC有唯一ID号就好加密了
这种挥刀自宫的作法不可取
晕,这么说avr是史上最伟大的公公了:他至少能成功地自宫256*2次!
发个消息,那块m48还在被自宫中^_^
太有才了!
很有创意,但并不太现实,量产是个大问题!而且还容易咬住自己--破坏的BIT并不稳定!
关注中.....
已经一周多了,前后檫写了2~3亿次了(中间换了几次电池)每檫写65536次检查一次,现在依然是写什么读出来是什么,到底它被写坏了没有?是不是当时读出正确,过一段时间读就会不正确?
再过几天如果还是这样,我就要放弃了。唉!
唉,放弃了,究竟是为什么写不坏呢?
最后,不死心,仔细检查了下,还是写坏了!汗!
原来是没仔细分辨,误导大家了,sorry!
其实在即写即读的情况下是正确的,但是过一会儿,就不正确了,汗!!
最后得出结论:多次檫写同一个数,数字中值为1的位不会写坏,值为0的位大部分会写坏(估计次数要是够了值为0的位都会坏)。坏的表现为檫后仍为&0&,写&1&仍为&0&。
受到82楼的启发,可以有选择的破坏一些bit,破换的方法是擦除、写0、擦除,其他写1的位不会坏,形成一个key,将来用一个数值去写入后读出,根据结果可以判定程序是否是copy的。但是鉴于ee的破坏后的不稳定性,这种方法也不太完美。
全部读完。学习了。
这样子不好吧,要是别人看你的程序并且理解了你的意图,还不是没用。
还有EEPROM要是频繁操作坏的很神奇。比如在预处理坏了之后若是电地短路的故障且是批量的,你就亏大了。
楼上的方法全都不靠谱!这个已经有很多人用过了。没用过但是知道的人就更多了。拿到片子后发现其中的猫腻是很容易的。可以说,这个方法从公开的那一天起就失效了。
eeprom/flash的寿命超过标称值后并不会立即损坏,只是保存数据的时间越来越短。根据不同的工艺,有的是不能保存1,会慢慢变成0,一般是eeprom。有的是不能保存0.会慢慢变成1,一般是flash。反过来的也有。而且,大多数flash都具有自愈的特性,自愈和温度是成平方关系(简单来说是这样)。而且,并不是每个bit都会自愈,甚至自愈的速度、结果都不会完全一样。如果只是简单的写坏,自愈、温度、数据变化、电压等等各种因素会导致不可预料的情况发生。举个简单的例子,如果你在夏天写坏flash,到了冬天再检查,很可能就变成好的了。然后到了第二年夏天,不说了.....所以我说用楼上的方法全都不靠谱。
公开一个靠谱的方法,只说一半哦!
找一个MEGA8,按照数据手册的算法写一个全片擦除-XX操作-写熔丝位低字节-XX操作-写锁定位-XX操作-写熔丝位高字节-XX操作-全片擦除-XX操作......的程序。下班之前开始,然后回家吧。
天亮了,太阳公公出来了,袜子里面有圣诞礼物了!
读完了,方法很有意思但是不大可靠吧。万一你自己写坏的片子苏醒过来,发现自己是假的……悲剧大了
不得不说,楼主是个人才
有点意思!mark!!
我觉得楼主的方法很好
升压,没必要吧,这样可能会被分析出来,然后去掉那个电路。
我觉得,发现被COPY后,正常运行程序,等几个 ...
一个星期左右比较合适,待在现场不是,回程也不行 ,服务费整死他
一星期,残念...
我今天又试了30W次,一共60W次了,还是好的...
写完一个有有没有延时稍微长度的时间再读,这个方法几年前我在论坛上看过,试avr128时,eeprom写入寿命到后,如果再一写入,马上读eeprom数据会是正确的,必须写入后延时后再读出,eeprom数据才出错
阿莫电子论坛, 原"中国电子开发网"EEPROM是一种可以进行电擦写,很新很全的EEPROM是一种可以进行电擦写资讯 - 电子工程世界网
EEPROM是一种可以进行电擦写
EEPROM是一种可以进行电擦写文章
你可能感兴趣的标签
热门资源推荐谁知道Arduino的存储器的寿命是多少次写入?【arduino吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:53,364贴子:
谁知道Arduino的存储器的寿命是多少次写入?收藏
EEPROMWrite 的资料里有提到 EEPROM 的设计寿命是 100,000 write/erase cycles (10万次写入/清除)SRAM命应该比较长。存储主程序的Flash Memory(闪存)又能写多少次呢?
DF创客社区为广大arduino,开源硬件爱好者提供线上社区交流平台,沉淀了2千多原创项目arduino爱好者交流,arduino(初级,中级教程,视频教程等).
Atmega328芯片(Uno用的)的datasheet说它的flash可以写10,000次,是EEPROM寿命的十分之一。这个其实不用太在意,玩arduino时的闪存写入基本上都是来自程序下载(即使使用PROGMEM语句也一样),正常情况下可以用很长时间了。倒是EEPROM需要留心,因为可以用程序去写EEPROM,一不留神就可以写出变态的次数而废了EEPROM。
我的ATmega16和ATmega128已经被我写了大概2W多次了,没有高压写过。都是USBasp搞定的。貌似现在没出啥状况。下次我自己写个老化程序试试看到底多少次擦写能把EEPROM废掉……反正M8现在也不贵了
登录百度帐号推荐应用}

我要回帖

更多关于 铁电存储器 寿命 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信