我独创的AT89S52另类加密方法,是你想不到的,奉献给大家!

2020-02-02 09:33发布

我刚刚接触单片机不久,下面讲到的方法绝对是我自己思索出来的,保证原创!
如果别人和我的思路一样,纯属巧合,也请各位大侠们别拍砖,也同时帮我分析一下这种方法可不可行!

我一直想对辛辛苦苦编写出来的单片机程序进行加密,但无从下手,大家知道,像S51、S52这类型的ISP下载的MCU,你即然可以ISP写入,
别人也很容易读取,写的程序一样被人家偷_窥无疑。我在网上搜索良久,找的方法无疑就三种:
1.使用有加密功能的单片机,但现在解密的编程器大把,很快就把你的程序偷取了。
2.把单片机的管脚烧毁,无疑这种方法最好,但是没有人提供正确的烧断步骤。为此我特地发了一个贴讨论过,都没有人知道怎么烧!
3.程序内部加密,但是你的板如果能正常运行,别人也仿照和你的板一模一样,别人也一样可以正常运行。这个方法不可行。

我自己就想,硬件烧断管脚我不会,那我就采用EEPROM(AT24C02)存储器进行加密,把加密值放入EEPROM中。

第一:
例如,我做一个4*4键盘的密码锁的电磁门锁产品。用的是AT24C02来存储用户的设置密码,假设地址1和地址2用来存放用户设置的密码,而地址10
和地址11、地址12用来存放我的加密值。我只要在程序中判断:地址10+地址11=地址12,那么条件成立,程序正常运行。否则就是盗版的,
我会让程序在24小时后陷入死循环锁坏,让用户开不了门,非得破门而入,让用户去投诉盗版公司,让他们的生意做不成。呵呵,想到这里我就想笑。
(注;加密值是我事先写入EEPROM中,并不会在产品程序中写入,这样的话,盗版的人就不知道我有加密过,给他们认为这是一个无加密的产品)

第二:
第二个产品就是烘烤箱,例如烘烤各类果实的果干。使用的是AT89S52和AT24C02和DS18B20,我的加密值同样也放在EEPROM中,大家知道,每个18B20
都独有一个序列号,我也把这相序列号存入EEPEOM中,在程序中也做相应的对应关系,能对应上就可以正常运行程序,否则就让程序在10分钟后拼命的
加热烧烤,烧死它,而让数码管显示的温度值是一个非常正常的数值。呵呵,想到这里我就会偷偷的笑!

第三:
我不会用平常的P0、P1口去驱动数码管,而是从P0-P3四个I/O口中任意取几个脚,只要凑够8个脚就行了,同理,键盘输入也是这样取管脚。
然后我用0.5平方的细漆包线进行连接管脚和元件,再用农机胶把这些细小的漆包线和整个AT89S52全部封住,让别人不知道这些管脚到底接的是哪个
元件,如果他们拆除农机胶进行查看,呵呵,因为农机胶很硬,拆不出就算拆出来,也会同时把漆包线弄断,更不可能知道管脚和元件的连接关系。

以上是我想到的加密方法,不知可不可行,请大家发表一下意见,如何才能做得更好。
(很遗憾的是我还掌握不到怎么烧断AT89S52管脚的方法,如果大家有这方面的经验,贴出来让大家分享一下好吗!)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
87条回答
HBV_F
1楼-- · 2020-02-04 13:44
针对1,2。

我晕倒,这样的加密对初哥有点用,对于专业解密的,这些都是小意思了。


特别是24c02,复制个24c02是简单的事,别说你直接写ID了,就算你用18b20的id作种子,再用算法运算加密码存到24c02,想解密也是小意思。

第3个还有点用,但是不现实,如果让你生产100k,你就吐血去吧。
pxlpxlpxl
2楼-- · 2020-02-04 18:26
回复【18楼】HBV_F
针对1,2。
我晕倒,这样的加密对初哥有点用,对于专业解密的,这些都是小意思了。
特别是24c02,复制个24c02是简单的事,别说你直接写id了,就算你用18b20的id作种子,再用算法运算加密码存到24c02,想解密也是小意思。
第3个还有点用,但是不现实,如果让你生产100k,你就吐血去吧。
-----------------------------------------------------------------------

呜呜
117433525
3楼-- · 2020-02-04 22:42
以前看到坛子里有人想出一个这样的加密方法,把一个24c02的几个字节人为擦写坏掉,那么单片机每次启动的时候检查那几个字节是否是坏的,如果是坏的则正常运行程序,如果是好的则不运行程序。
pxlpxlpxl
4楼-- · 2020-02-05 02:05
回复【20楼】117433525 Owen
以前看到坛子里有人想出一个这样的加密方法,把一个24c02的几个字节人为擦写坏掉,那么单片机每次启动的时候检查那几个字节是否是坏的,如果是坏的则正常运行程序,如果是好的则不运行程序。
-----------------------------------------------------------------------

呵呵呵,有创意!

问题是怎么搞坏那几个字节?
xiaomage_2000
5楼-- · 2020-02-05 03:45
 精彩回答 2  元偷偷看……
shandian
6楼-- · 2020-02-05 05:02
门锁那个其实应该设置为3个月或半年以后才出现故障,这样才会给仿冒者造成比较大的损失。24小时的话太短了,很容易在早期就发现,并进一步进行破_解。

18B20那个,建议24Cxx里18B20的序列号不要连续放置,越离散越好。并且在未使用的空间里写随机数,单片机程序中时不时去读写未使用的空间(就算他用逻辑分析仪来查看单片机访问了24C02里哪几个数据,也不能分析出哪些是有用部分)。只要做个小设备,读18B20序列号,直接写入24C02内,并且产生随机数填满未用空间就行,量产时也不会太麻烦。

一周热门 更多>