你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞
文 | 无际(微信:2777492857)
全文约1106字,阅读大约需要 5 分钟
我碰到过几个人,都说能不能帮他破解一些程序,就是把别人产品程序读出来。
我没干过这种事,一直觉得,难度挺大,感觉还不如按功能山寨一个简单。
特别是那种带服务器的物联网产品,哪怕程序给你读出来,都没用。
第一是要破解他们的协议,光这个就搞死人。
第二是要知道他们的服务器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块钱的成本。
end
下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式?
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解
7.手把手教你c语言队列实现代码,通俗易懂超详细!
8.c语言指针用法详解,通俗易懂超详细!