这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » AT89C 系列单片机解密原理

共8条 1/1 1 跳转至

AT89C 系列单片机解密原理

助工
2014-08-15 14:20:31     打赏
AT89C 系列单片机解密原理

单片机解密简单就是擦除单片机片内的加密锁定位。由于AT89C系列单片机擦除操作时序设计上的不合理。使在擦除片内程序之前首先擦除加密锁定位成为可能。AT89C系列单片机擦除操作的时序为:擦除开始---->擦除操作硬件初始化(10微秒)---->擦除加密锁定位(50----200微秒)--->擦除片内程序存储器内的数据(10毫秒)----->擦除结束。如果用程序监控擦除过程,一旦加密锁定位被擦除就终止擦除操作,停止进一步擦除片内程序存储器,加过密的单片机就变成没加密的单片机了。片内程序可通过总线被读出。对于AT89C系列单片机有两种不可破解的加密方法。

一、永久性地破坏单片机的加密位的加密方法。简称OTP加密模式。 
二、永久性地破坏单片机的数据总线的加密方法。简称烧总线加密模式。


AT89C系列单片机OTP加密模式原理

这种编程加密算法烧坏加密锁定位(把芯片内的硅片击穿),面不破坏其它部分,不占用单片机任何资源。加密锁定位被烧坏后不再具有擦除特性,89C51/52/55有3个加密位进一步增加了加密的可靠性。一旦用OTP模式加密后,单片机片内的加密位和程序存储器内的数据就不能被再次擦除,89C51/52/55单片机就好象变成了一次性编程的OTP型单片机一样。如果用户程序长度大于89C51单片机片内存储器的容量,也可使用OPT模式做加密,具体方法如下: 
1、按常规扩展一片大容量程序存储器,如27C512(64K)。 
2、把关键的程序部分安排在程序的前4K中。 
3、把整个程序写入27C512,再把27C512的前4K填充为0。 
4、把程序的前4K固化到AT89C51中,用OPT模式做加密。 
5、把单片机的EA脚接高电平。 
这样程序的前4K在单片机内部运行,后60K在片外运行。盗版者无法读出程序的前4K程序,即使知道后60K也无济于事。

AT89C系列单片机炼总线加密模式原理

因为单片机片内的程序代码最终都要通过数据总线读出,如果指导单片机的数据总线的其中一条线永久性地破坏,解密者即使擦除了加密位,也无法读出片内的程序的正确代码。89C1051/2051的数据总线为P1口烧总线模式烧坏89C2051的P1.0端口,原程序代码为02H、01H、00H。读出的数据则为03H,01H,00H。其中最低位始终为1,读出的程序代码显然为错码。这种加密模式用于加密89C1051/2051单片机。缺点是占用单片机的资源。开发设计人员在设计单片机硬件系统时只要预留出口线P1.0不用,以后就可用烧总线模式对单片机加密。


院士
2014-08-15 23:23:39     打赏
2楼

我们已经不再使用51单片机了。

我觉得这种加密与解密的方式已经没有意义了。


工程师
2014-08-16 21:58:39     打赏
3楼

表示正在学习

其实51还没有被淘汰的吧


院士
2014-08-16 22:29:23     打赏
4楼
谢谢楼主分享。

院士
2014-08-17 00:13:48     打赏
5楼

还是趁早放弃51单片机吧

重点放在C语言的算法与数据结构上吧


工程师
2014-08-17 14:01:30     打赏
6楼
啊啊啊,我要的是鼓励啊

助工
2014-08-17 17:59:00     打赏
7楼
我不赞成这种说法,51毕竟是根本,而且51到现在还是有很多应用,学习是一个过程,51只是一个基础,如果不做单片机这方面的开发,也就不必过于精通,学习一下通用的就好了,对于以上所说,有兴趣可以了解。

菜鸟
2014-08-21 22:22:43     打赏
8楼

楼主,51单片机的数据总线是双向的P0口才对吧?

P0口和P2口作为16地址线,P0口读8位数据。


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]