STM 32如何实现程序自加密

2023-11-11

在嵌入式应用开发中,应用开发完成后往往需要对芯片中的程序进行加密处理,用以保护程序安全(不至被竞争对手从芯片把程序固件考走),本节将给大学介绍一个如何实现程序自动给芯片加密功能。下面给大家介绍一个STM32 用程序给MCU加密码的方法:

 

标准库方式:

// 芯片自加密
void FLashProtectCheck(void)
{
    FLASH_Unlock();    // 解锁
    FLASH_UnlockBank1();
    
    
    if( RESET ==  FLASH_GetReadOutProtectionStatus() )
    {
        while( FLASH_COMPLETE != FLASH_ReadOutProtection(ENABLE) );
        // NVIC_SystemReset(); 
    }
    
    FLASH_LockBank1();
    FLASH_Lock();  // 上锁
}

 

HAL 库方式:

// 芯片自加密
void FLashProtectCheck(void)
{
    FLASH_OBProgramInitTypeDef OBInit;
    
    HAL_FLASH_Unlock();     // 解锁
    HAL_FLASH_OB_Unlock();
    
  HAL_FLASHEx_OBGetConfig( &OBInit );
    if( OBInit.RDPLevel !=  OB_RDP_LEVEL_1 )
    {
        OBInit.OptionType = OPTIONBYTE_RDP;
        OBInit.RDPLevel = OB_RDP_LEVEL_1;
        HAL_FLASHEx_OBProgram( &OBInit );
    }
    
    HAL_FLASH_OB_Lock();
    HAL_FLASH_Lock(); // 上锁
}

上面的程序只开启了FLASH的读保护,这样操作后,用外部的工具,如JLINK,STLINK等工具就无法读取芯片的固件了!!

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM 32如何实现程序自加密 的相关文章

  • WSL2和本地windows端口互通

    众所周知 WSL 默认安装后 只允许windows访问 Windows Subsystem for Linux 而WSL是不能反之访问本地windows 我之前用vmware的思路认为是nat的网络模式 于是改成了桥接 结果wsl的桥接模式
  • springboot日志配输出路径配置_SpringBoot输出日志到文件

    1 基本信息 SpringBoot版本2 2 5 日志框架SLF4J 日志框架的实现LockBack 2 输出文件的配置 2 1 logging file name 指定日志文件的位置 2 1 1 例1 使用相对路径 就会在项目根目录下生成
  • R 语言散点图矩阵

    多个变量之间的关系经常用散点图矩阵表示 ggplot2 包没有提供专门的散点图矩阵 基础 R 图形中提供了 pairs 函数作散点图矩阵 GGally 包提供了一个 ggscatmat 函数作散点图矩阵 例如 对 iris 数据的四个测量值
  • UE4 C++ FString乱码显示问号

    如果以 xxx 这种形式并且xxx为中文时 直接赋值给FString的变量会丢失数据导致系统无法识别 因此需要做特殊处理 第一种解决办法 引号前加L表示将字符串转为unicode的字符串 也就是每个字符占用两个字节 FString str
  • 【无标题】DEFI+NFT新玩法

    DeFi NFT 去中心金融 非同质化货币 NFT Defi就是将流动性挖矿的方法移植到到NFT领域 目前典型的代表有MEME SAND RARI等 区块链行业一直困于 圈内自嗨 无法真正走入大众市场 市场和用户规模的增量相比互联网行业是杯
  • 学习笔记-二叉排序树

    二叉排序树 对于二叉排序树的任何一个非叶子节点 要求左子节点的值比当前节点的值小 右子节点的值比当前节点的值大 如果有相同的值 可以将该节点放在左子节点或右子节点 二叉排序树的创建和遍历 思路 比较节点的值 小于就放在左子节点 大于就放在右
  • 使用 AJAX+JSON 实现用户查询/添加功能

    实现用户查询 添加功能 1 查询功能 准备 selectAllServlet brand html 2 添加功能 addBrand html 表单
  • 基于51单片机的课程设计(毕业设计)——电子贺卡

    本篇文章将介绍一个基于51单片机的电子贺卡 本作品可用于课程设计 毕业设计的参考 其所用到的外设硬件以及程序的代码量都是相对较少的 对于51单片机的初学者 通过本设计熟悉51单片机的使用是非常好的选择 目录 一 实现功能 二 硬件准备 三
  • 短信猫(GSM MODEM)安装指南

    短信猫 GSM MODEM 安装指南 短信猫 又名GSM MODEM 专门针对短信应用设计 内含工业级短信发送模块 简化了通信接口 性能稳定可靠 符合各种商业和工业级短信应用要求 支持向移动 联通以及小灵通用户收发短信 适用于各行各业各个领
  • vue element UI图片上传到fastDFS 前/后台实现图片显示

    第一次开发element图片上传 到网上找了很多例子 感觉不全面 所以才写了这篇文章 希望帮助新手快速开发 vue 使用element实现本地预览 最主要的是将图片路径转换为base64 VUE HTML
  • STM32 江协教程 EXTI外部中断(对射式红外传感器计次、旋转编码器计次)笔记补充 旋转编码器判断方向的两种实现方法记录

    这里是看了江协STM32 EXTI中断视频并配合笔记STM32学习笔记 三 丨中断系统丨EXTI外部中断 对射式红外传感器计次 旋转编码器计次 后的一点小补充 方法一 一方下降沿同时查看另一方电平 以A为例 A下降时若B为高电平则为正向 A
  • Pandas 分类数据

    category的创建及其性质 分类变量的创建 a 用Series创建 pd Series a b c a dtype category 得出 0 a 1 b 2 c 3 a dtype category Categories 3 obje
  • 记录一下QM检验批接口,回头补细节

    method ZQM II SI SPCD REC SI SPCD PROCSS INSERT IMPLEMENTATION HERE gt 数据定义部分 TYPES BEGIN OF ty qamv prueflos TYPE qamv
  • 子类继承父类的所有属性和方法_Python 继承

    目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用 相同的代码不需要重复的编写 多态 不同的对象调用相同的方法 产生不同的执行结果 增加代码的灵活度 01 单继承
  • C语言 进程通信-消息队列(MSG)

    创建消息队列的的步骤 1 获取key值ftok key t key ftok home 123 if key gt 0 perror 获取成功 else perror 获取失败 注意 2 获取消息队列ID 此时消息队列已经在内核中创建完成了
  • 第二十四篇 DenseNet——模型讲解

    文章目录 摘要 Dense Block 网络架构详解 输入层 第一个Block和Transition Layer 第二个Block和Transition Layer 第三个Block和Transition Layer 第四个Block 输出
  • JVM && 软件测试的目的和原则 && Spring基本概念 && 项目创建 && 软件测试的生命周期 && SpringBoot创建和运行 && Bean作用域

    第 1 题 多选题 题目名称 以下哪些属于 JVM 题目内容 A JRockit B HotSpot C V8Worker D Clang 第 2 题 单选题 题目名称 在代码中创建一个 java lang String 这样的类 这个类最
  • 关键元器件器件选型设计指引--LED

    前言 LED 发光二极管 是一种将电能转换为光能的固体电致发光器件 由于具有体积小 重量轻 工作电压低 耗能低 响应时间短 寿命长 抗震性能好等优点 LED得到广泛的应用 在网通 数通领域 LED应用于指示功能 功能主要包括 Power L

随机推荐

  • 百度后台开发类笔试题2014校园招聘 武汉站

    软件开发试题 1 简答题 1 说明动态链接库和静态链接库的区别 2 轮询任务调度和抢占式任务调度的特点 3 简要说明数据库锁机制以及描述 2 算法题 1 给出任意一个正整数 算出大于它的最小不重复数 即不存在相邻两个数相同的情况 2 给出一
  • 超详细!Jmeter性能测试

    前言 性能测试是一个全栈工程师 架构师必会的技能之一 只有学会性能测试 才能根据得到的测试报告进行分析 找到系统性能的瓶颈所在 而这也是优化架构设计中重要的依据 测试流程 需求分析 环境搭建 测试计划 脚本开发 执行与监控 缺陷管理 结果与
  • 电磁屏蔽知多少?

    原文来自公众号 工程师看海 不管什么电子产品 EMC始终是其需要面对的问题 EMC全拼是Electromagnetic Compatibility即电磁兼容性 EMC分为EMS electromagnetic susceptibility
  • 【docker】dcoker-compose介绍

    文章目录 前言 一 Docker compose简介 1 docker compose基础概念 2 为什么要使用docker compose 二 YAML文件格式及编写注意事项 1 YAML文件格式 2 YAML格式的注意事项 3 YAML
  • 15.Xaml StackPanel控件 -->堆栈面板

    1 运行效果 2 运行源码 a Xaml源码
  • AIX7.1安装中文字符集

    为了安装中文字符集找了n多文章 下载n多安装包 就是没有一个好用的 所以跑官网上查询一翻 官网地址 https www ibm com support knowledgecenter zh ssw aix 71 install insgdr
  • 密码学的一些基本概念

    密码学是研究如何隐密地传递信息的学科 密码学的作用 机密性 是网络信息不泄露给非授权用户的特性 防止被动攻击 常用的保密技术包括 防侦听 防辐射 信息加密 物理保密等 完整性 完整性是网络信息未经授权不能进行改变的特性 完整性是一种面向信息
  • win7右键没有新建文本文档怎么办

    第一种方法 打开 开始 在搜索框内输入CMD 或者按快捷键WIN图标 R 复制reg add HKEY CLASSES ROOT txt ve d txtfile f 回车运行 再复制粘贴reg add HKEY CLASSES ROOT
  • numpy中设置始终使用定点表示法显示小数

    默认numpy会在某些情况触发科学计数法显示 scientific notation is used when absolute value of the smallest number is lt 1e 4 or the ratio of
  • 前置++和后置++的区别

    今天在阅读 google c 编程风格 的文档的时候 5 10 前置自增和自减 有一句话引起了我的注意 对于迭代器和其他模板对象使用前缀形式 i 的自增 自减运算符 理由是 前置自增 i 通常要比后置自增 i 效率更高 于是我查了查前置 和
  • 【C++学习第五讲】第一章总结 + 复习题(十一道)

    目录 第一章总结 一 总结 二 复习题 1 C 程序的模块叫什么 2 下面的预处理器编译指令的功能是什么 3 下面的语句的功能是什么 4 什么语句可以用来输出 hello world 然后开始新的一行 5 什么语句可以用来创建名为chees
  • TBDR下msaa 在metal vulkan和ogles的解决方案

    https developer arm com solutions graphics developer guides understanding render passes multi sample anti aliasing msaa在
  • 第十四届蓝桥杯大赛软件赛省赛(Java 大学B组)

    目录 试题 A 阶乘求和 1 题目描述 2 解题思路 3 模板代码 试题 B 幸运数字 1 题目描述 2 解题思路 3 模板代码 试题 C 数组分割 1 题目描述 2 解题思路 3 模板代码 试题 D 矩形总面积 1 问题描述 2 解题思路
  • (译)cocos2d-x跨android&ios平台开发入门教程

    免责申明 必读 本博客提供的所有教程的翻译原稿均来自于互联网 仅供学习交流之用 切勿进行商业传播 同时 转载时不要移除本申明 如产生任何纠纷 均与本博客所有人 发表该翻译稿之人无任何关系 谢谢合作 原文链接地址 http www raywe
  • Windows下小白安装Qt详细教程

    一 软件下载 官网下载地址 http download qt io 1 点击进入 2 archive 和 official releases 两个目录都有最新的 Qt 开发环境安装包 我们以 archive 目录里的内容为例来说明 点击进入
  • 太强大!发现一个数据分析老司机专用神器!

    去年秋招 字节跳动整体报录比降到了2 创造了150000人争3000岗位的盛况 今年909万毕业生再创新高 激烈程度可想而知 除了技术岗 大部分毕业生也瞄准了高薪高前景的数据分析师岗位 教育部关于高校毕业生就业工作通知 人才缺口 巨大 未来
  • 用python进行数据分析(一:数据理解)

    python作为当前主流的语言之一 他的功能是非常强大的 不论是在游戏行业还是数据分析行业还是软件开发啥的好像都可以用python 但作为一个数据分析师 并不需要用到他的全部功能 只是想要达到 能够用python完成数据分析工作 的效果来帮
  • 同步FIFO的verilog实现(2)——高位扩展法

    一 前言 在之前的文章中 我们介绍了同步FIFO的verilog的一种实现方法 计数法 其核心在于 在同步FIFO中 我们可以很容易的使用计数来判断FIFO中还剩下多少可读的数据 从而可以判断空 满 关于计数法实现同步FIFO的详细内容 请
  • logback 配置文件 XML 案例

    logback配置文件案例 1 实现功能 1 控制台输出日志 2 info warn error 三个级别的日志分文件输出 3 日志文件 按天 按文件大小 滚动保存 4 日志文件保存于 项目根目录下的 logs 目录下 2 具体配置
  • STM 32如何实现程序自加密

    在嵌入式应用开发中 应用开发完成后往往需要对芯片中的程序进行加密处理 用以保护程序安全 不至被竞争对手从芯片把程序固件考走 本节将给大学介绍一个如何实现程序自动给芯片加密功能 下面给大家介绍一个STM32 用程序给MCU加密码的方法 标准库