如果程序比较重要建议用加密芯片和UID加密验证
脱机验证始终没有绝对安全的,只能相对增加破解的时间和成本。

烧录器加密

JLink

  • 第一步:下载安装JLINK Flash,如果没有安装到官网下载,网址:[https://www.segger.com/products/debug-probes/j-link/technology/flash-download/]()
  • 第二步:单击打开,选择“Create new project”,点击“Start J-Flash”;之后在弹出对话框中选择MCU型号,我们这里选择STM32F103C8T6(根据您STM32型号)
  • 第三步:点击“Target”,“connect”连接MCU,下面的Log区域会显示连接状态,要显示连接成功,否则检查下硬件。之后点击“File”,“Open data file...”打开要下载的文件。
  • 第四步:点击“Target”,“Production programming”下载程序,程序下载完成后会出现完成的对话框。
  • 第五步:点击“Target”,“Manual programming”,“Secure chip”对MCU内的代码进行保护。写保护完成会出现成功提示。


至此,MCU中的代码已经被保护起来了,如果试图读取代码、下载程序,将无法读取数据或者MCU会清空代码。
这里每次烧录都要手动加密一下.
### ST-Link Utility

基本上一样套路

库函数

FLASH_Unlock();//解锁FLASH(该句可省略)
FLASH_ReadOutProtection(ENABLE);//读保护开
FLASH_Lock();//锁定FLASH
//----------------------------------------
FLASH_Unlock();//解锁FLASH
FLASH_ReadOutProtection(DISABLE);//读保护关
FLASH_Lock();//锁定FLASH

记得引入 stm32f10x_flash 文件

解除读保护

擦除Flash即可,比如:



打钩的扇区会添加写保护,点击Unselect all不选择写保护。

最后点击Apply,写入选项字节后Flash会被擦除。

有的无法擦除的可以调整bootload的跳线帽

或者尝试 J-Link STM32 Unlock V7.80a

Last modification:December 30, 2022
如果觉得我的文章对你有用,请帮忙点一下上面的广告