您的位置 首页 电路

MSP430单片机常见加密总结

1、为什么要加密,如何加密?当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/262161.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部