标题: 请教单片机如何通过程序自己清除程序存储器(ROM) [打印本页]

作者: 一笔长空    时间: 2023-7-15 12:49
标题: 请教单片机如何通过程序自己清除程序存储器(ROM)
论坛各位大佬老师们好,我最近在研究单片机ID号加密,想着ID号验证不通过就清除内部程序,请问这个清除ROM的操作如何实现,我用的是STC8单片机,内部有rom和eeprom,eeprom倒是有清除扇区的操作可是清除不了ROM,请教各位老师如何通过程序代码实现自主清除程序。感谢大家。

作者: szb314    时间: 2023-7-15 15:13
外加一个电路 引入高压电,自毁芯片吧
作者: cr8526    时间: 2023-7-15 16:14
可以加密的啊

作者: wufa1986    时间: 2023-7-15 17:12
普通STC不具备自己编程自己的能力
作者: 一笔长空    时间: 2023-7-15 17:23
szb314 发表于 2023-7-15 15:13
外加一个电路 引入高压,自毁芯片吧

是个好办法,要在电路上加点料
作者: 一笔长空    时间: 2023-7-15 17:25
cr8526 发表于 2023-7-15 16:14
可以加密的啊

嗯,现在就是用ID号进行加密,验证不通过就卡在while循环里,不知道这是不是主流的办法,还想着验证不通过就清除flash销毁程序,不知如何操作
作者: 一笔长空    时间: 2023-7-15 17:26
wufa1986 发表于 2023-7-15 17:12
普通STC不具备自己编程自己的能力

也就是说不能通过程序本身清除flash里的程序吗,我用的STC8a8k64d4
作者: wulin    时间: 2023-7-15 22:10
STC提供那么多方法还不够你用?随便擦除一个扇区,程序不就等于全毁了。
作者: wulin    时间: 2023-7-16 07:23
一笔长空 发表于 2023-7-15 17:26
也就是说不能通过程序本身清除flash里的程序吗,我用的STC8a8k64d4

STC8a8k64d4的EEPROM是IAP,没有特定地址。正常使用EEPROM是定义在用户程序大小范围之外的下一个扇区的任意空间。想破坏程序只要在用户程序大小范围内想擦哪个扇区随你便。擦后无法恢复,只能重新烧录。
作者: 一笔长空    时间: 2023-7-16 12:09
wulin 发表于 2023-7-16 07:23
STC8a8k64d4的EEPROM是IAP,没有特定地址。正常使用EEPROM是定义在用户程序大小范围之外的下一个扇区的任 ...

老师您好,感谢您都解答,我是初学者有些地方不太明白,看stc手册里写的eeprom和rom区的地址是重叠的,擦除时指定的地址自动定位到eeprom了,请问如何擦除用户程序区都内容,请问该如何填地址,非常感谢

123.JPG (30.36 KB, 下载次数: 33)

都是从0000h开始的,执行擦除命令时如何区分

都是从0000h开始的,执行擦除命令时如何区分

234.JPG (59.09 KB, 下载次数: 34)

234.JPG

345.JPG (55.39 KB, 下载次数: 37)

345.JPG

作者: cr8526    时间: 2023-7-16 13:56
wulin 发表于 2023-7-16 07:23
STC8a8k64d4的EEPROM是IAP,没有特定地址。正常使用EEPROM是定义在用户程序大小范围之外的下一个扇区的任 ...

这是负责任的答复


作者: Y_G_G    时间: 2023-7-16 14:27
保护程序还是防止破解?
完全没有这个必要
当你有能力写出一个别人要千方百计的去破解的程序的时候,你就已经知道应该要怎么做了
作者: 一笔长空    时间: 2023-7-16 15:15
wulin 发表于 2023-7-16 07:23
STC8a8k64d4的EEPROM是IAP,没有特定地址。正常使用EEPROM是定义在用户程序大小范围之外的下一个扇区的任 ...

谢谢老师的解答,我刚接触单片机没几个月有些不明白的还想请教您,现在rom和eeprom的地址有重叠的部分,同一个地址也是rom的也是eeprom的比如0100h,如果使用擦除eeprom的指令擦除0100h肯定擦除不掉rom,请问怎么操作能擦除rom,感谢!
都是从0000h开始的,地址重叠了


用MOVC地址是唯一。可是手册上说MOVC指令不能擦除只能读,且我不会汇编语言




作者: 一笔长空    时间: 2023-7-16 15:19
Y_G_G 发表于 2023-7-16 14:27
保护程序还是防止破解?
完全没有这个必要
当你有能力写出一个别人要千方百计的去破解的程序的时候,你就已 ...

感谢您的解答,学机械的刚接触单片机没多久现在自己开发个控制板,一直听说加密什么的也好奇想研究研究,说不定以后能用上
作者: 188610329    时间: 2023-7-17 14:14
首先,你要删除程序区的内容,必须购买IAP15xxxxxx 系列单片机。stc8不能直接删除,你要先做底层“系统”才可以。 其次,有必要删除么?检验到和序列号不一致,说明你的程序已经流传出去,别人用你的程序烧录了自己的芯片。那么你删了单片机里的,人家一样可以再烧写,有任何实际意义么?
作者: yzwzfyz    时间: 2023-7-17 16:42
必须采用ISP型号的单片机。
我们做的产品中,在不改变硬件的情况下,是可以自动升级软件的,就是采用的ISP型的CPU。
升级时,先删除程序,再写入新的程序。这里是有技巧的,需要内置专门的升级程序。
作者: Hephaestus    时间: 2023-7-17 20:10
看你做什么产品了,小家电不怕死机,但是工业产品怕啊!一万次操作出一次错就够呛了,所以我写程序发现UID不对都不会擦除,而是小概率出错,这样山寨者就很难查找了。
作者: Y_G_G    时间: 2023-7-18 09:22
一笔长空 发表于 2023-7-16 15:19
感谢您的解答,学机械的刚接触单片机没多久现在自己开发个控制板,一直听说加密什么的也好奇想研究研究, ...

不要学这个加密了,现实中几乎不用
当你要去写一个需要加密的项目时,你的能力已经很强了,到时候,这个加密就不是什么大问题了
我们这基本都是直接发送烧录文件给IC厂商的,有时候有问题直接发代码给人家,叫帮忙看一下问题出现在哪里的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1