单片机加密方法

摘要:
现在使用燃烧器在Flash中读取程序。首先,抛光或更换芯片型号的丝网。研磨或更换芯片型号的丝网可能会混淆饼干。第二,使用加密芯片使用加密芯片更昂贵。同时,无法掌握加密芯片的可靠性。第三,打开单片机闪存保护。大多数有价值的单片机都具有Flash保护功能,燃烧器无法通过通信引脚读取Flash中的数据,如图1-1新塘SCM图1-1所示。一些SCM还通过程序直接断开通信线路的物理连接。

                          单片机加密方法

  在最近一个项目中,急急忙忙把功能完成就给了客户,完全没有安全意识,现在用烧录器把Flash里的程序一读,我就慌了,完全没有加密,随随便便就把程序读出来了,那我干了一个月的活,被人家花几秒钟读出来了,我这不是白干吗。因此,在这里普及一下安全意思,顺便介绍几种常见的加密方法。

一、打磨或更改芯片型号丝印

  打磨或更改芯片型号丝印可以迷惑破解者,使破解者不知从何入手。当然,这是需要成本的,根据产品价格考虑是否需要打磨。

二、使用加密芯片

  使用加密芯片的成本更加高,同时对于加密芯片可靠度无法掌握,风险很大。

三、开启单片机Flash保护

  大部分有价值的单片机都有Flash保护功能,使能对应的标志位,烧录器就无法通过通讯脚读取Flash里的数据,唯有全部擦除数据。如图1-1新塘单片机单片机加密方法第1张图1-1

  也有一些单片机通过程序直接把通讯线路物理意义上的断开,这种方法保护更有效,但从此不能再对单片机写入程序,对于售后服务来说是一种风险。如图1-2ST单片机

单片机加密方法第2张图1-2

三、使用唯一ID号

  对于一些高端的单片机,在出厂的时候芯片内部就给予了一个唯一的ID号。我们可以添加一个存储器(有的单片机内部有),然后组织一种特殊的算法,利用这个唯一的ID号,产生一组数据,把这个数据预先烧录到存储器里。单片机上电初始化的时候,先读出存储器里的这个数据X,然后读出自身的ID号通过加密算法算出一个值Y,然后比较XY值是否一样,如果一样则继续工作,否则停止工作。这种方法是最实用的一种。如图1-3ST单片机的唯一ID号

单片机加密方法第3张图1-3

四、利用外部电路参数校正

  对于一些非纯数字电路,电路自身存在有较大的参数偏差,这时候可以利用软件校正参数偏差,这使得每一块电路板的程序电路一样,但Flash数据不一样。破解者即使破解出程序和电路,如果无法理解电路的含义,则无法校正Flash数据,产品运行结果就会有偏差。

免责声明:文章转载自《单片机加密方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mysql占用过高CPU时的优化手段[译] 如何使用 WebGL 技术进行风力地图可视化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python中的各个包的安装,用pip安装whl文件

在安装之前,一直比较迷惑究竟如何用,安装完后,发现竟然如此简单 首先我一般用的是python27,官网下载python27msi安装window7 64位后,已经自带了Pip 和 easy_install 但是却不晓得如何安装 whl目录, 经过搜索后发现,把pip和easy_install加入到环境变量中,这个应该不是难事,如下: 把Scripts这个...

Android中的数据存储

Android中的数据存储主要分为三种基本方法:   1.利用shared preferences存储一些轻量级的键值对数据。   2.传统文件系统。   3.利用SQLite的数据库管理系统。   对SharedPreferences对象和SQLite数据库,它们的数据仅对创建它们的应用是可访问的。   (比如,MODE_WORLD_READABLE 和...

JavaEE 对象的串行化(Serialization)

什么情况下需要序列化 a)当你想把的内存中的对象写入到硬盘的时候;b)当你想用套接字在网络上传送对象的时候;c)当你想通过RMI传输对象的时候;再稍微解释一下:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔...

c#原理:c#代码是怎么运行的、实例化时发生了什么、静态对象(类、方法、变量、属性)的原理

c#代码是怎么运行的:  c#代码=》编译器=》DLL/EXE=>CLR/JIT=>机器码 最后到二进制的时候是这么执行的??? 要知道更具体细节,可以参考书籍《CLR VIA C#》 C#基础篇之C#和 .Net框架的概念和运行原理 深度理解C# 的执行原理 CPU(中央处理器) - 百度百科   转自:c#编译后是怎么运行的 1..NET语...

Windows7虚拟化体验之三:XP MODE体验

  XP MODE体验           部署完XP MODE后,我们可 以先来简单地体验一下在Windows 7下运行XP程序的效果。如图1所示,在Windows7的程序组 中找到Windows Virtial PC下的Virtual Windows XP,这个Virtual Windows XP其实就是XP MODE。只要执行Virtual Win...

C++随机崩溃捕捉处理

1. 会引起异常的几个原因(主要记录目前遇到过的几个问题) 程序读取了无效的内存地址 堆栈的溢出,比如无限循环导致那段内存溢出,比如把size为20的缓存拷贝到size为10的缓存块等 无法申请到有效的内存 多次删除同一块内存 2. 异常处理 2.1 SEH(Structured Exception Handling) SEH是C语言的异常处理方法,主...