MSP430单片机常见加密总结

发布者:iota19最新更新时间:2021-03-16 来源: eefocus关键字:MSP430  单片机  加密总结 手机看文章 扫描二维码
随时随地手机看文章

1、为什么要加密,如何加密?


当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的MSP430单片机没有被加密的话,那么您辛辛苦苦的劳动成功就很容易成为您竞争对手的产品了,使用JTAG调试工具FET虽然可以将程序下载到芯片内部,但只有使用专业编程器能够防止程序被 窃取。


2、JTAG、BSL、BOOTLOADER、熔丝的区别和关系是什么?


JTAG接口能够访问MSP430单片机内部所有资源,通过JTAG可以对芯片进行程序下载、代码调试、内存修改等等,通过JTAG还能烧断加密熔丝,熔丝一旦被烧断,JTAG接口绝大部分功能失效,就再也不能通过它进行编程了。


BSL接口是利用芯片内部驻留的bootloader程序实现的自编程,通过特定的时序使得CPU进入bootloader代码断,然后利用每个MSP430芯片内部都有的Timer A构成一个软件串口来与上位机通讯,这样可以将代码下载到芯片内部。实现BSL除了JTAG接口的一些引脚外,还需要用到两个TA0功能引脚,因此在设计产品时如果需要加密,则应该考虑将这两个引脚也连出来。


注意:A 、要烧断熔丝(加密)必须使用JTAG接口;B、烧断熔丝后只能通过BSL或者用户代码来实现编程更新。


3、BSL的验证密码是怎么回事?


BSL也能读出芯片内部的代码,这样可以实现编程后的校验等功能。通过BSL擦除所有Flash信息时不需要验证密码,但是要进一步操作,就得输入32字节密码进行验证。BSL的协议规定这32字节密码为芯片FLASH区域的最高32字节,也就是程序的16个中断向量,如果您拥有这段程序的最后32字节,就能通过BSL将芯片内部所有代码读取出来。


4、为什么要使用高级加密?


32字节的密码看似几乎完全没可能使用穷举法来实现破解,但是各位别忘了,msp430的16个中断向量未必每一个都用到了,没用到的中断向量为0xffff,如果您的程序只用到了复位向量,那么破解者只需尝试最多32768次(中断向量为偶数,所以除以2)就能将其破解,另外,如果芯片本身Flash容量较小,比如4K字节,那么破解者只需尝试最多2K次就能将其破解。这对自动操作的计算机来说几乎是一瞬间的事情。那么如果用到的中断向量越多,就越难破解,最好的办法就是将所有未用到的中断向量全部填充为随机数据,这就是“高级加密”。


5、关于TI-TXT文件


TI-TXT文件是TI公司为MSP430单片机定义的一种编程代码格式,其内容为纯文本格式,使用任何文本编辑器都能对其进行阅读,下面是一个这类文件的例子:


@FEFE


B2 40 80 5A 20 01 F2 40 9D 00 90 00 F2 40 2E 00


40 00 F2 D0 80 00 01 00 F2 43 33 00 C2 43 95 00


C2 43 9A 00 F2 D0 20 00 53 00 F2 40 1F 00 52 00


F2 43 91 00 F2 43 92 00 F2 43 93 00 F2 43 94 00


F2 43 95 00 F2 43 96 00 F2 43 97 00 F2 43 98 00


F2 43 99 00 F2 43 9A 00 32 D0 D0 00 FD 3F 31 40


00 03 B0 12 A2 FF 0C 93 18 24 3C 40 00 02 0E 43


30 12 00 00 B0 12 C4 FF 3C 40 00 02 3E 40 FE FE


30 12 00 00 B0 12 A6 FF 21 52 3C 40 00 02 3E 40


FE FE 30 12 00 00 B0 12 A6 FF B0 12 FE FE 30 40


A0 FF FF 3F 1C 43 30 41 0A 12 1D 41 04 00 0F 4C


0A 4D 1D 83 0A 93 05 24 EF 4E 00 00 1F 53 1E 53


F7 3F 3A 41 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D


1D 83 0A 93 04 24 CF 4E 00 00 1F 53 F8 3F 3A 41


30 41


@FFFE


5C FF


q


第一行的@FEFE表示从地址0xFEFE开始,有如下代码。每行为16字节,每个字节使用16进制数表示,每两个字节之间用一个空格格开。内容末尾的@FFFE就是程序的复位向量了,表示程序的入口地址为0xFF5C。最后用一个小写的q字符加换行结束,当然也可以把中断向量的那两行放到最前面去,比如下面这段代码的含义跟上面的是一样的,同样符合规则。


@FFFE


5C FF


@FEFE


B2 40 80 5A 20 01 F2 40 9D 00 90 00 F2 40 2E 00


40 00 F2 D0 80 00 01 00 F2 43 33 00 C2 43 95 00


C2 43 9A 00 F2 D0 20 00 53 00 F2 40 1F 00 52 00


F2 43 91 00 F2 43 92 00 F2 43 93 00 F2 43 94 00


F2 43 95 00 F2 43 96 00 F2 43 97 00 F2 43 98 00


F2 43 99 00 F2 43 9A 00 32 D0 D0 00 FD 3F 31 40


00 03 B0 12 A2 FF 0C 93 18 24 3C 40 00 02 0E 43


30 12 00 00 B0 12 C4 FF 3C 40 00 02 3E 40 FE FE


30 12 00 00 B0 12 A6 FF 21 52 3C 40 00 02 3E 40


FE FE 30 12 00 00 B0 12 A6 FF B0 12 FE FE 30 40


A0 FF FF 3F 1C 43 30 41 0A 12 1D 41 04 00 0F 4C


0A 4D 1D 83 0A 93 05 24 EF 4E 00 00 1F 53 1E 53


F7 3F 3A 41 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D


1D 83 0A 93 04 24 CF 4E 00 00 1F 53 F8 3F 3A 41


30 41


q


手动修改TI-TXT文件来实现高级加密:


下面是使用到中断向量较少的一段代码的中断向量:


@FFE0


10 FF A0 FF


@FFFE


5C FF


它与下面这段代码意义是一样的:


@FFE0


10 FF A0 FF FF FF FF FF FF FF FF FF FF FF FF FF


FF FF FF FF FF FF FF FF FF FF FF FF FF FF 5C FF


这里我们把未用到中断向量改成随机数据,就实现高级加密了,不过注意不要把有效的中断向量也改了哦。


@FFE0


10 FF A0 FF A5 5A 37 21 F3 44 E0 77 9A 00 22 33


44 55 66 77 88 99 AA BB CC DD EE 3E E3 0F 5C FF


关键字:MSP430  单片机  加密总结 引用地址:MSP430单片机常见加密总结

上一篇:基于MSP430自动胀管控制器的研制
下一篇:MSP430学习点滴——看门狗定时器

推荐阅读最新更新时间:2024-11-16 20:00

8051单片机指令系统的7种寻址方式解析
寻址方式:寻址就是寻找操作数的地址。绝大多数指令执行时都需要操作数,因此就存在如何确定操作数地址的问题。所谓寻址方式就是通过什么途径获取操作数的方式。根据指令操作的需要,计算机总是提供多种寻址方式。一般来说,寻址方式越多计算机的寻址能力就越强,但指令系统也就越复杂。 8051指令系统有7种寻址方式:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址,相对寻址,位寻址,下面分别介绍。 寄存器寻址 寄存器寻址:寄存器寻址就是操作数在寄存器中,因此指定了寄存器就得到了操作数。采用寄存器寻址方式的指令都是一字节的指令,指令中以符号名称来表示寄存器。例如:MOV A R1 这条指令的功能是把工作寄存器R1
[单片机]
单片机小白学步(15) 单片机程序下载失败总结
前面介绍了点亮第一个LED的全过程,很多人可能很幸运的点亮了LED,然而也很可能不少人非常不幸没有把程序下载进去。初学者常会遇到程序无法下载的情况,很多人在尝试多次未果后比较受打击,因此放弃了学习,实在太可惜了。鉴于此,这里列举了单片机程序下载失败的各种出错原因、判断方法和解决方法,是前人所遇到的种种原因的总结。 STC单片机下载程序主要分为三部分:单片机最小系统、下载电路、计算机端。下载失败一般主要就从这三个方面来解决问题。 快速排错方法 如果你有或者能向别人借到一套可以正常下载程序的电脑、单片机下载线、开发板全套装备,依次换用别人的下载线,电脑,和单片机系统板进行下载。如果换别人电脑下载就成功了,说明问题在于你的电脑。通过这
[单片机]
延长EEPROM使用寿命的方法
   EEPROM(Electrically Erasable Programmable Read一Only Memory)即电子擦除式只读存储器,它是一种非挥发性存储器,与擦除式只读存储器(EPROM)类似,电源消失后,储存的数据依然存在,要消除储存在其中的内容,不是用紫外线照射方式,而是以电子信号直接消除即可。   正是由于EEPROM具有以上特点,该器件可广泛应用于对数据存储安全性及可靠性要求高的应用场合,如门禁考勤系统,测量和医疗仪表,非接触式智能卡,税控收款机,预付费电度表或复费率电度表、水表、煤气表以及家电遥控器等应用场合。该类型存储器在可靠数据存储领域会获得越来越广泛的应用。   但是,EEPROM有固定的使用寿命,
[应用]
带有高性能ADC的单片机C805lF060
1 引言 在混合信号单片机中,美国Cygnal公司新推出的C8051F06X系列高集成度混合信号单片机可谓一枝独秀。C8051F06X是高度集成的片上系统单片机,它有多达59个数字I/O口,采用与8051兼容的内核CIP-51,速度高达25MI/s。该系列单片机有C8051F060/2型和C8051F061/3型,与同家族的其他单片机相比,其模拟外设性能优异,除有一个带可编程放大器和多路选择器的8路10位ADC外,还有两路采样速度可达1 MS/s的16位ADC,两路12位DAC,3个电压比较器,1个片内温度传感器和参考电压源等。本文仅以C8051F060型为例,着重介绍其高速、高精度模/数转换器的使用方法。 2 高精度模/数
[单片机]
Ubuntu上AVR单片机开发环境设置
操作系统:ubuntu 13.04(32 bits) AVR单片机:ATmega644pa 首先要明确,我们在Ubuntu(或者Linux)上开发AVR单片机应包括两大部分: 程序编译、程序下载。 环境布置: 程序编译使用Linux下的编译器 avr-gcc,通过以下指令安装: sudo apt-get install gcc-avr #这是avr的交叉编译器 sudo apt-get install avr-libc #这是编译要用的库 另外还有一个工具,目前感觉没什么用,先记下来 sudo apt-get install gdb-avr #gdb反向调试工具,反汇编 程序的下载使用avrdud
[单片机]
基于52单片机与ds1302时钟芯片的电子闹钟C程序
  52单片机是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。   52单片机结合可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等功能的dDS1302时钟芯片做出的电子闹钟会有什么火花呢?奉上基于52单片机与ds1302时钟芯片的电子闹钟C程序,让大家亲身体验。      52单片机与ds1302时钟芯片的电子闹钟C程序   #inc
[单片机]
SST单片机的IAP与softicE两种模式的区别
单片机在IAP模式下无法进行在线仿真,通过使用IAP软件将softice监控程序下载到单片机后就会将单片机从IAP模式转换为softiCE模式,这样就可以进行在线仿真功能了,也就是可以通过keil进行仿真。 单片机在softiCE模式下使用IAP软件将无法检测到单片机,需要在keil中将BSL监控程序下载到单片机中才能检测到,这样keil就无法再进行在线仿真。
[单片机]
基于MSP430F2274单片机的倒车雷达设计
  随着人们对汽车辅助驾驶系统智能化要求的提高和汽车电子系统的网络化发展,新型的倒车雷达应能够连续测距并显示障碍物距离,并具有通信功能,能够把数据发送到汽车总线上去。以往的倒车雷达设计使用的元器件较多,功能也较简单。本文介绍的基于新型高性能超低功耗单片机MSP430F2274的倒车雷达可以弥补以往产品的不足。    系统总体设计   系统采用超声波测距原理。超声波测距仪器一般由发射器、接收器和信号处理器三部分组成。工作时,超声波发射器发出超声波脉冲,超声波接收器接收遇到障碍物反射回来的反射波,准确测量超声波从发射到遇到障碍物反射返回的时间,根据超声波的传播速度,可以计算出障碍物距离。作为一种非接触式的检测方式,超声波具有空气传
[工业控制]
基于<font color='red'>MSP430</font>F2274<font color='red'>单片机</font>的倒车雷达设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved