打印

谁做过msp430单片机的加密?

[复制链接]
2193|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaxw|  楼主 | 2018-5-25 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiaxw|  楼主 | 2018-5-25 11:22 | 只看该作者
JTAG相关的

使用特权

评论回复
板凳
liliang9554| | 2018-5-25 11:25 | 只看该作者
这个。。。还真没有

使用特权

评论回复
地板
jiaxw|  楼主 | 2018-5-25 11:58 | 只看该作者

前段时间能够读出430单片机的JTAG ID号,但是在进行下一步操作时总是得不到正常的返回值

使用特权

评论回复
5
jiaxw|  楼主 | 2018-5-25 12:03 | 只看该作者
所以也没法进行JTAG的下一步操作。

使用特权

评论回复
6
lizye| | 2018-5-25 12:04 | 只看该作者

看看TI提供的文档

使用特权

评论回复
7
jiaxw|  楼主 | 2018-5-25 12:08 | 只看该作者

嗯,看了。如果通过TDI输入0X158B,从TDO应该会返回0X55AA的

使用特权

评论回复
8
jiaxw|  楼主 | 2018-5-25 12:12 | 只看该作者


但是这个返回值总是不固定

使用特权

评论回复
9
午夜粪车| | 2018-5-25 12:16 | 只看该作者

以0X80出现的次数多点?

使用特权

评论回复
10
zhenykun| | 2018-5-25 12:24 | 只看该作者
硬件有问题?

使用特权

评论回复
11
jiaxw|  楼主 | 2018-5-25 12:31 | 只看该作者
是的

使用特权

评论回复
12
jiaxw|  楼主 | 2018-5-25 13:10 | 只看该作者
硬件上也实在检查不出来什么问题

使用特权

评论回复
13
shimx| | 2018-5-25 14:45 | 只看该作者
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

使用特权

评论回复
14
jiahy| | 2018-5-25 14:50 | 只看该作者
楼主是要对传输的数据加密还是对程序加密?

使用特权

评论回复
15
lizye| | 2018-5-25 14:54 | 只看该作者
1,烧写器有一个加密,2,烧掉熔丝!!!

使用特权

评论回复
16
wuhany| | 2018-5-25 14:59 | 只看该作者
BSL加密被**也是迟早的事,更好的方法应该将密钥写进加密IC

使用特权

评论回复
17
jiaxw|  楼主 | 2018-5-25 15:03 | 只看该作者

嗯,我知道了, 多谢啊

使用特权

评论回复
18
cemaj| | 2018-6-4 21:54 | 只看该作者
使用熔丝或者电子熔丝去做内部代码的保护

使用特权

评论回复
19
10299823| | 2018-6-4 21:54 | 只看该作者
通过JTAG还能烧断加密熔丝

使用特权

评论回复
20
jimmhu| | 2018-6-4 21:55 | 只看该作者
采用e-Fuse电子熔丝的方式去做加密

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝