历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2021年03月16日 | MSP430单片机常见加密总结

2021-03-16 来源:eefocus

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


推荐阅读

史海拾趣

Etco Inc公司的发展小趣事

面对数字化转型的浪潮,Etco Inc公司主动拥抱变革,积极推进数字化转型。公司利用大数据、云计算等先进技术优化生产流程和管理模式,提高了生产效率和管理水平。同时,Etco还加强了与客户的数字化连接和交流,提供了更加便捷和高效的服务体验。这些举措使Etco在数字化时代中保持了领先地位并实现了持续增长。

ASSMANN WSW components公司的发展小趣事

ASSMANN WSW components公司的创立源于一个对电子行业充满热情的家族。起初,它只是一个小型家族企业,专注于为当地电子市场提供连接器和其他基础电子元件。然而,凭借其出色的产品质量和专业的服务态度,ASSMANN WSW逐渐赢得了客户的信任和好评。随着时间的推移,公司的业务范围逐渐扩大,不仅在国内市场取得了显著成绩,还开始进军国际市场。

HN Electronic Components GmbH & Co Kg公司的发展小趣事

背景:2008年全球金融危机爆发,电子行业受到重创,市场需求大幅下降。

发展:面对严峻的市场环境,HN Electronics迅速调整战略,削减非核心业务,加强成本控制,并加大在研发领域的投入,以技术创新为突破口,寻找新的增长点。

关键事件:在金融危机期间,HN Electronics成功开发出具有更高性价比的物联网传感器芯片,满足了市场对智能家居、智慧城市等新兴领域的需求,从而实现了业绩的稳步增长。

Crowd_Supply__Inc.公司的发展小趣事

在电子行业的众多初创公司中,Crowd Supply Inc.以其独特的理念和模式崭露头角。公司成立之初,便聚焦于开放式硬件和社区驱动的产品开发,这在当时的行业环境中还是一个较为新颖的概念。创始人团队由一群富有热情和创新精神的电子工程师和产品开发专家组成,他们通过线上平台汇聚了一群同样对电子硬件感兴趣的爱好者和开发者。初期,公司面临资金短缺、市场认可度低等挑战,但通过不断试错和社区反馈,逐渐找到了自己的发展方向。

电连(ECT)公司的发展小趣事

为了提高公司治理能力和运营效率,ECT在2019年引入并升级了SAP信息化系统。这一系统的引入不仅实现了公司各部门之间的信息共享和协同工作,也提高了公司对市场变化的响应速度和决策效率。通过SAP信息化系统的支持,ECT在保持技术领先的同时,也实现了业务的稳健发展。

以上五个故事概述了电连(ECT)公司在电子行业中的发展历程和关键事实。这些故事展示了ECT在技术创新、市场拓展、国际化战略和信息化建设等方面的努力和成果。

Conexcon Group公司的发展小趣事

在电子行业的快速发展中,Conexcon Group以其前瞻性的技术视野,成功研发出一款新型智能芯片,这款芯片不仅性能卓越,而且功耗极低,迅速赢得了市场的青睐。公司凭借这一技术突破,逐步扩大了在国内外市场的份额,成为了行业内技术创新的领军者。随着产品线的不断丰富,Conexcon Group逐渐形成了从芯片设计到整机制造的完整产业链,进一步巩固了其在电子行业的领先地位。

问答坊 | AI 解惑

电量隔离传感器的工作原理和数字化技术

电量隔离传感器变送器是针对工程中的电量检测(监测),提高系统的整体抗干扰能力,而研制开发的一种小体积、高性能的电量测试部件(产品)。 电量隔离传感器变送器可以对现场的大电流、高电压、功率、频率、相角、电度等电参量进行隔离测量和变换,也 ...…

查看全部问答>

请教:6410 wince5.0 BSP移植到wince6.0

     请问各位老大有谁做过6410 wince5.0 BSP的移植没?应该如何着手呢?本人菜鸟中的菜鸟,帮帮忙,不胜感激。。。      邮箱:949770385@qq.com…

查看全部问答>

【正版】Windows Embedded SP2

Windows Embedded Standard SP2 正版全套9CD 版本 软件功能及介绍就不多说了,可以去微软官方网站查看, (http://www.microsoft.com/windowsembedded/zh-tw/about/what.mspx) 产品包括9张CD光盘和安装ID以及PID,是市场上 最全的正版产品。 以下是9 ...…

查看全部问答>

标题: 学3G,拿高薪,来渥瑞达!

渥瑞达专注于培养薪酬高、市场紧缺的高端3G嵌入式软件工程师。 欢迎大家与我们的703期学员交流!这期学员已于07年7月29日毕业。 学员就业薪水都在6000元/月以上 您还可以加入渥瑞达学员的QQ群与学员面对面交流 渥瑞达学员咨询交流的QQ群号 ...…

查看全部问答>

急!!!求GAL的8分频设计 (在线等)

   我想用GAl实现信号的八分频,不知道用ABEL怎么编写程序!!!想请各位帮忙!!!不胜感激…

查看全部问答>

WinCE 18bpp LCD驱动的问题

现在有一块18bpp(RGB666)的TFT屏,想在Windows Mobile6上点起来。可是发现Windows Mobile只支持16bpp和24bpp,并不支持18bpp。我应该怎么样做呢?十分感谢…

查看全部问答>

内部FAE培训资料【3】GPIO模块介绍及应用_讲稿

内部FAE培训资料【3】GPIO模块介绍及应用_讲稿…

查看全部问答>

上海招聘:FPGA设计师

上海博达数据通信有限公司招聘FPGA设计工程师和电源开发工程师,有兴趣的朋友请发简历到:yangrong@bdcom.com.cn,或者在QQ:277358331上留下联系方式,我会及时回电!谢谢各位的关注!   高级FPGA设计师  工作职责: 负责数据通信 ...…

查看全部问答>

求应用设计

各位大虾:   我有如下两个需求,望有能力的大虾赐教:   1、在一较大的容器内装有水,再放置一比较小的玻璃容器,玻璃容器内装有有机溶剂,有机溶剂液面会逐渐下降,能否有那种技术能监测到有机溶剂的液面下降? 2、需要检测空气中的 ...…

查看全部问答>

NXp 1pc1114 使用什么工具ISP下载

RT,第一次玩NXP 的M0,问问大家。 …

查看全部问答>