产品在车间生产烧录,怎么防止单片机程序不能被拷贝走?

我碰到过几个人,都说能不能帮他破解一些程序,就是把别人产品程序读出来。

我没干过这种事,一直觉得,难度挺大,感觉还不如按功能山寨一个简单。

特别是那种带服务器的物联网产品,哪怕程序给你读出来,都没用。

第一是要破解他们的协议,光这个就搞死人。

第二是要知道他们的服务器IP和端口。

第三是要他们服务器要给你这台设备授权,这个基本无解。

比如我们无际特训营的项目6,用的是我们自己研发的服务器。

每个设备,必须要后台授权,才能使用。

哪怕硬件做到一模一样,烧录程序被破解了,没有云平台的支持,也白搭,除非云平台也自己做。

但问题又来了,网关的通讯协议设计也是一个经验活。

前段时间,我们用涂鸦云的一个WiFi模组,突然停产了,整个产品直接废了,换WiFi模块都没用,别人平台不给你接入。

去破解,真的还不如自己重新研发一个来得快。

我工作时,就碰到过一次程序加密的需求。

不过,之前的工程师已经做好了。

他们是用类似XZ8802加密芯片干的,不过很多年前了,不知道现在有没有更好的方案。

虽然这款芯片采用硬件加密的方法,但所有的加密,都需要靠软件配合,哪怕是用了加密芯片

XZ8802是通过IIC协议和单片机通讯的。

主要特点和工作原理:

1.客户自定义密码:

XZ8802允许用户设置自定义密码,这增加了破解的难度。如果芯片被非法取下或破坏,系统将无法正常启动。

2.固化ID号:

每个XZ8802芯片都有一个针对客户的固化ID号,这个ID号是不可更改的,可以有效防止芯片被破解或复制。

3.密码尝试限制:

设定了密码尝试次数的限制,通常最多允许连续8次输入密码。如果密码输入错误达到这个次数,芯片可能会被永久锁定,无法再次使用。

4.存储空间:

XZ8802芯片自带有一定容量的存储空间,用于存储加密数据或固件。

所以,有这个芯片做辅助,加密的方式就有很多种,就看算法怎么去设计了。

我的初步思路是,烧录时,把XZ8802的唯一ID读出来,写到单片机Flash里去。

或者把单片机的唯一ID,写到XZ8802里去。

上电后,只有ID匹配,才能运行程序。

这样,即便对方读了程序,芯片ID不对应,程序也执行不了。

在数据通讯时,还可以加一些算法,比如CRC啥的,增加破解难度。

实际去做的时候,还会有很多细节问题,只是大概思路。

还有这种方式,烧录程序会多一个步骤,增加一颗XZ8802芯片,也大约增加几毛到1块钱的成本。

最后彩蛋时间,最近有粉丝问我怎么提升单片机编程思维和水平

我做了开发10几年,累计做过几十个项目,我针对这些项目共性功能,比如任务创建、管理、队列算法、LED特效、按键扫描等,写了一个标准程序框架。

这个架构,我在2019年也录了教程,我做新项目时,直接套用这个架构去写,效率直接起飞。

可以点击下方⬇️卡片看文章开头领取

单片机入门到高级开挂学习路径(附教程+工具)

单片机入门到高级开挂学习路径(附教程+工具)

单片机入门到高级开挂学习路径(附教程+工具)

或者可以找「无际单片机」全网同名的。

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值