STM芯片烧写和加密解密

合集下载

STM32_FLASH的3种烧写方式

STM32_FLASH的3种烧写方式

ST ARM 芯片的FLASH 烧写方法一、 RVMDK+ULink2(ST ‐Link2、JLink)注:适用于所有的ARM芯片,但硬件上必须有JTAG 接口。

使用仿真器+ARM 开发环境,是最常用的一种方法。

该方法适用于硬件上留有JTAG/SWD 接口,如有源程序代码,可以直接编译下载;另外使用RVMDK+ULink2也可直接下载.hex 文件,操作如下。

a) 打开或新建一个与芯片型号对应的工程,在工程设置中配置output 选项,将需要下载的.hex 文件拷贝到output 目录下(output 文件夹中存放编译时输),如下图所示。

©2008 MXCHIP Corporation. All rights reserved.b) 在Name of Executable:中输入.hex名,如上图所示。

c) 配置Utilities 选项,选中Use Target Driver for Flash Programming 项(默认情所示。

©2008 MXCHIP Corporation. All rights reserved.d) c)添加Flash Programming Algorithm ,即添加与目标芯片对应的Flash 编程算法,如下图所示。

e)以上步骤完成后,连接仿真器和目标板,即可把目标程序烧写到芯片的Flash中。

二、 串口+ISP软件注:适用于带有ISP功能的ARM芯片,需要硬件上留有COM接口,且芯片的启动模式可设置。

用户的ARM系列芯片带有ISP(在系统中编程)功能,则可使用其ISP功能,通过串口和ISP软件来下载.bin文件。

下面以STM32系列芯片为例(STM32全系列芯片都带有ISP功能),演示该烧写方法。

a)将USART1口连接到PC的COM口(通常ISP使用的UART口都是芯片的第一个UART口),设置芯片的启动模式为System Memary模式(BOOT1为0,©2008 MXCHIP Corporation. All rights reserved.BOOT0为1)。

芯片解密方法概述

芯片解密方法概述

芯片解密方法概述芯片解密(IC解密),又称为单片机解密,就是通过一定的设备和方法,直接得到加密单片机中的烧写文件,可以自己复制烧写芯片或反汇编后自己参考研究。

目前芯片解密有两种方法,一种是以软件为主,称为非侵入型攻击,要借助一些软件,如类似编程器的自制设备,这种方法不破坏母片(解密后芯片处于不加密状态);还有一种是以硬件为主,辅助软件,称为侵入型攻击,这种方法需要剥开母片(开盖或叫开封,decapsulation),然后做电路修改(通常称FIB:focused ion beam),这种破坏芯片外形结构和芯片管芯线路只影响加密功能,不改变芯片本身功能。

单片机解密常用方法单片机(MCU)一般都有内部ROM/EEPROM/FLASH供用户存放程序。

为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。

如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓单片机加密或者说锁定功能。

事实上,这样的保护措施很脆弱,很容易被破解。

单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。

因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。

目前,单片机解密主要有四种技术,分别是:一、软件攻击该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。

软件攻击取得成功的一个典型事例是对早期ATMELAT89C51系列单片机的攻击。

攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。

常用的单片机加密手段(二)

常用的单片机加密手段(二)

常用的单片机加密手段(二)昨天写了一种常用的单片机加密手段,受到很多电子同行的反响,也引起来很多此类话题讨论,是我没想到的。

由于现在的公众号还没开通原创功能,没办法针对同学们的提问进行解答,而且内容也比较复杂,所以我单独再开一章来讲解关于单片机加密方面,大家普遍比较关心的问题。

第一:昨天的那种常用方法,有部分同学担心量产效率问题。

效率肯定是影响的,既要保证安全性,必然要牺牲少许效率,但是影响远远比同学们想象的影响低。

其实就是烧写两次程序,首先,写一个读取芯片ID,然后根据我们设计的算法计算出来数据,并且写入到EEPROM里数据的这样一个程序1,我们的功能程序作为程序2。

那烧写程序时,我们先烧写程序1进入单片机,固话好我们的数据后,再然后烧写程序2到单片机;或者采用流水线式工作,工作人员甲专门烧写程序1来一遍,工作人员乙烧写程序2来一遍。

程序1的功能其实非常简单,因此烧写起来肯定很快,不管如何影响到一定的效率,但是影响是非常小的。

第二:昨天的那种方法,就可以确保万无一失了么?当然不是。

这个世界上就不存在绝对安全的东西,就看付出多大的代价。

据称STM32的某些型号内部的96位的ID是烧写在system区域,而破解者找到了原厂的调试工具,可以直接烧录改变这个ID。

在利益面前,总是会有人去做这种事情,甚至说这种原厂调试工具的泄露,不排除是他们自己人做的。

那我们电子工程师的劳动成果就这么白白窃取,我们无能为力么?当然不是了。

安全和攻击一直在较量着,我们只需要多方面增强我们产品的安全性,让破解着花费的代价,超过了重新开发出来花费的代价,那就可以让破解着直接望而却步了。

我们一个产品可以采用多层加密的手段来做,这样就可以尽可能的加大破解者的难度,提高我们产品的安全性能。

------------------------------------------------------------------下面我给大家介绍几种安全加密方面的方法,由于部分方法详细讲解比较复杂,我只是简单给大家介绍一下原理,先让各位同学涨一下见识,让你知道有这么回事。

STM8 STM32芯片程序加密方法

STM8 STM32芯片程序加密方法

STM8 STM32 ID程序加密方法
一、两层保护
a)读保护。

设置读保护功能,使芯片中的程序无法被读出。

当关闭读保
护功能时,芯片会自动擦除flash中的所有程序;
b)唯一的ID识别。

每片STM32芯片都带有唯一的ID,在程序中加入
ID验证,使程序只能在一个ID下运行。

万一程序被拷贝出来,烧入
其它的STM32芯片中也不能运行。

特点:有两重保护,芯片可重复使用。

二、熔丝方案
1. 功能简介:通过烧断芯片程序烧写口的熔丝,防止芯片中的程序被读出或
修改;
2. 特点:熔丝一旦烧断,程序就无法读写,程序升级只能换芯片。

三、利用id做软件加密
1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可
2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法把id计算得到一些值存入程序区(stm8为EE区),程序运行时去验证程序区数据是否正确
3,轩微编程器有软件加密的功能,编程器会读芯片id,根据算法直接改写缓冲区,达到软件加密的作用
4,读出的id通过一定算法,例如异或加上一个数,得到的数据存入flash(只运行一次,运行后标志位也存入flash),下次读到这个标志位,就不运行这个程序。

四、做软件加密时注意
1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校验和或是crc对程序区进行校验,防止改程序。

MCU烧写器远程加密、解密及烧写处理方法与制作流程

MCU烧写器远程加密、解密及烧写处理方法与制作流程

本技术公开了一种MCU烧写器远程加密、解密及烧写处理方法。

该加密方法,包括以下步骤:a)先根据MCU烧写器的名称密码通过主机端控制专用软件生成与烧写器名称密码相对应的加密密钥;b)将原始数据代码先经过加密密匙进行加密处理;c)主机端控制专用软件将该加密后的数据或代码经过进一步的加密转换成一个可提供给客户并可以由客户进行处理的二进制文件;d)将该被加密的二进制文件放置于互联网主机上供远程下载。

本技术采用主机端专用控制软件、客户端专用控制软件及互联网的传输来实现MCU烧写器的远程加密控制,避免了MCU烧写器的来回物件快递,大大地提高了数据代码的授权运作效率。

权利要求书1.一种MCU烧写器远程加密方法,其特征在于,包括以下步骤:a), 先根据MCU烧写器的名称密码通过主机端控制专用软件生成与烧写器名称密码相对应的加密密钥;b), 将原始数据代码先经过加密密匙进行加密处理;c), 主机端控制专用软件将该加密后的数据或代码经过进一步的加密转换成一个可提供给客户并可以由客户进行处理的二进制文件;d),将该被加密的二进制文件放置于互联网主机上供远程下载。

2.根据权利要求1所述的MCU烧写器远程加密方法,其特征在于,在步骤a中,主机端控制专用软件生成加密密匙的步骤包括:a1),核对MCU烧写器的名称与数据库中预存的烧写器名称是否一致;若一致则进入下一步骤,若不一致则提示用户重新输入正确的名称;a2),核对MCU烧写器的密码与数据库中预存的烧写器密码是否一致;若一致则进入下一步骤,若不一致则提示用户重新输入正确的名称;a3),按照预存的MCU烧写器名称和密码,生成与该MCU烧写器相对应的加密密匙。

3.一种MCU烧写器远程解密方法,其特征在于,包括以下步骤:a), 客户端电脑安装客户端控制专用软件来读取通过互联网发送来的被加密的二进制文件;b), 客户端控制专用软件按加密密匙对该二进制文件进行解密处理;并还原成加密的目标数据或代码;c), 客户端电脑连接上目标MCU烧写器,并将加密了的数据或代码传输到MCU烧写器中。

TI tms320 DSP解密的意义

TI tms320 DSP解密的意义

TI tms320 DSP解密的意义单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。

为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。

如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就叫单片机加密或芯片加密。

单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫芯片解密。

DSP解密也是芯片解密的范畴,是逆向工程的一种,TMS320F系列DSP具有加密功能,当程序烧写完以后,如果没有原始烧写密码,那么这个芯片就无法进行对FLASH任何操作。

那么TMS320F2812解密为例,如果这个芯片在烧写完以后,需要重新下载别的程序,那如果不知道密码,就无法擦除和下载程序。

对于DSP解密来说,首先是可以进行逆向研究学习别人的设计,另外就是维修产品用到。

其实还有一个就是做芯片翻新的,比如很多工厂在写了程序以后结果没生产的芯片,让收购IC的收购到,但是已经烧写了程序,那么这个芯片其实就是废芯片了,因为无法烧写程序就无法使用,那么致芯科技可以提供芯片解密和程序擦除服务,可以将TMS320系列DSp的程序清除掉,这样做DSP翻新才有意义。

那么DSP解密如果得到了密码,对芯片翻新也有很大意义。

目前市场上部分解密型号如下:TMS32LF24XXX系列TMS320F240解密TMS320F241解密TMS320F243解密TMS320F2401解密TMS320F2402 TMS320F2406 TMS320F2407 解密TMS320LF2406 TMS320LF2407A解密。

TMS320F240解密TMS320F241解密TMS320F243解密TMS320F206解密TMS320C2407 解密TMS320F280X TMS320F281X TMS320F282X系列解密TMS320F2801 TMS320F2802 TMS320F2810 TMS320F2811 TMS320F2812 TMS320F28015 TMS320F2816 TMS320F28044 TMS320F2806 TMS320F2808 TMS320F2808 TMS320F2809 TMS320F2812 TMS320F28232 TMS320F28234 TMS320F28235解密TMS320F2802X TMS320F2803X TMS320F2806X系列解密TMS320F28200 TMS320F28020 TMS320F28021 TMS320F28032 TMS320F28034 TMS320F28035 TMS320F28062 TMS320F28063 TMS320F28064 TMS320F28065 TMS320F28066 TMS320F28064 TMS320F28068TMS320F28069解密TMS320F283X系列解密TMS320F2832 TMS320F28335解密等等一般解密后都是可以提供客户可以烧录用的.OUT文件或HEX文件的。

STM32芯片烧写方法

STM32芯片烧写方法

一、烧写过程
STM32F107VC烧写
1.运行J-Flash ARM V4.10b,界面如图1
图1 J-Flash ARM V4.10bYUNXING
2.使用USB线连接J-Link。

3.在图1界面中点击ALT + F7 打开设置页面
4.如图2,在选择芯片STM32F107VC 。

然后点击应用,确定。

图2 选择芯片
5.在图1界面中点击ALT + F7 打开导入程序页面,选择BCS-SCU.Hex,并将此填入程序烧录记录单。

6.J-Link 排线连接PCB CN3 , 连接监控背板,背板输入电源接入30V直流电源。

7.在图1界面中点击F5,绕录程序,烧录结束后有提示如图3所示。

图2 烧录成功8.在芯片上贴上烧录版本号标签。

9.如果还需烧录,重复步骤6、7、8。

SCU01监控模块软件烧录记录单
工程单号:数量:时间:控制板芯片U12(STM32F107VC)确认信息。

使用STVP对STM8进行加密和解除写保护

使用STVP对STM8进行加密和解除写保护

1. 下载和安装ST-LINK驱动和STVP软件- STVP和STVD都在sttoolset里面:/st-web-ui/static/active/en/st_prod_software_internet/resource/technical /software/sw_development_suite/sttoolset.zip- ST-LINK驱动好像sttoolset里面也有了。

2. 板子上电,连接好ST-LINK。

3. 打开STVP: 运行“开始”->ST Toolset->Development Tools -> ST Visual Programmer4. 连接配置:运行Configure -> Configure ST Visual Programmer 选择ST-LINK, USB, SWIM, STM8S003F35. 选择程序:运行File->Open,选择要下载的.hex或者.srec文件。

6. 下载程序:运行Program -> All tabs ,执行下载。

Hardware: 烧录工具。

Port: USB。

Programming mode: SWIM。

Device: 选择要烧录的型号。

打开要烧录的目标文件“File -> Open…”。

DATA MEMORY: EEPROM 数据区。

配置OPTION BYTE选项的界面如图2-67所示。

图2-67 配置OPTION BYTEValue: 可直接在此框内直接输入配置好的OPTION BYTE值,OPTION BYTE内容根据Value 的值自动配置好。

以STM8S105S4为例说明OPTION BYTE的配置。

如图2-68所示。

图2-68 OPTION BYTE配置举例ROP:读出保护设置。

若设置了ON,那么程序是就无法读出。

UBC [7:0]:用户启动代码区。

一般用户在做IAP时,需要保护的代码部分设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32 芯片烧写和加密、解密
连接
yurenchen 2013/3/4
Target -> Connect
(还可以设置 JLink script)
烧写
打开要烧写的文件,如 keil 编译生成的 hex 文件, 点烧写即可.
加密
加密后将不可通过 JTAG 读写 flash, 需要解密才可以.
解密
解密后 flash 会被全部清空成 0xFF
//0x00A5
OB 地址 0x1FFFF800 OB 结构 typedef struct {
__IO uint16_t RDP; __IO uint16_t USER; __IO uint16_t Data0; __IO uint16_t Data1; __IO uint16_t WRP0; __IO uint16_t WRP1; __IO uint16_t WRP2; __IO uint16_t WRP3; } OB_TypeDef;
(摘自 refrence.pdf)
(摘自 programingManual.pdf)
flash 加密的实质: 标记 Information Block 段的 Option Bytes 某字节, 通过 JTAG 接口访问 Flash 时先 检查此字节的标志. 通常的 flash 读写都不修改 Information Block.
加密解密操作同函数
FLASH_ReadOutProtection(ENABLE) FLASH_ReadOutProtection(DISABLE) 只是通过这个函数 需要代码执行一次后才能完成密. 操作: OB->RDP
ENABLE: OB->RDP = 0x00;
DISABLE: OB->RDP = RDP_Key;
相关文档
最新文档