搜索
bottom↓
回复: 14

个人对固件加密的理解以及疑问,不知是否正确,欢迎拍砖

[复制链接]

出0入0汤圆

发表于 2017-4-21 17:53:10 | 显示全部楼层 |阅读模式
看到本论坛的一个帖子,将固件加密的算法,我工作过程中,基本上没有对产品的固件进行加密,所以很好奇固件加密的流程,以下是我个人的理解:

分以下2种方式可以实现:
方式一:系统采用MCU+外部存储(简称ExtFlash)的架构
              步骤:需要自己开发一套boot,下载固件时,将加密的固件保存到ExtFlash中。正常运行时,上电后boot从ExtFlash将加密的固件读取,并解密,并将固件写入到内部Flash中,写完后,跳转到应用程序运行。
              疑问:如果应用程序正常运行了,那么内部Flash中就有解密后的固件,此时通过一定手法,替换你的boot,实际上是可以将应用程序全部读出的。

方式二:系统采用只有MCU的架构
             步骤:需要自己开发一套boot,下载固件时,将加密的固件保存到内部Flash中。正常运行时,上电后boot从内部Flash将加密的固件读取,并解密,并将固件写入到RAM中,写完后,跳转到RAM运行。
              疑问:这种方式比价好,但是一般mcu的内部RAM相比较内部Flash小很多,如果固件比较大,除去本身内存的消耗,会限制应用固件大小。当然另一种方式就是使用外扩RAM,但是需要money。

不知我所理解的固件加密的概念是不是正确,欢迎拍砖。

出0入0汤圆

发表于 2017-4-21 18:02:53 | 显示全部楼层
自己做BOOT放在MCU内部FLASH, 如何替换?

出0入76汤圆

发表于 2017-4-21 19:25:17 | 显示全部楼层
楼主的理解全都不对

出0入0汤圆

发表于 2017-4-21 19:49:43 来自手机 | 显示全部楼层
LPC43S70就是用的第二个方法,因为这单片机只能用spiflash。但是这单片机用aes加密,128bit的key编程在单片机内而且不能通过任何手段读取到,在运行时bootloader读取spiflash的内容解密候放在ram再执行。

出0入0汤圆

 楼主| 发表于 2017-4-21 19:51:31 | 显示全部楼层
foxpro2005 发表于 2017-4-21 19:25
楼主的理解全都不对

那你给介绍介绍

出0入22汤圆

发表于 2017-4-22 09:11:48 来自手机 | 显示全部楼层
zynq 也是第二种方式

出0入0汤圆

 楼主| 发表于 2017-4-22 13:16:39 | 显示全部楼层
snoopyzz 发表于 2017-4-21 18:02
自己做BOOT放在MCU内部FLASH, 如何替换?

所谓boot也就是一段代码,看mcu启动后默认从什么地方执行/跳转到哪里执行,就把代码烧写到那个位置即可!

出0入0汤圆

发表于 2017-4-23 13:27:26 来自手机 | 显示全部楼层
楼主还是naive,这种水平的,hex一出来都得玩完,现在解hex又这么便宜…

出30入54汤圆

发表于 2017-4-23 16:07:35 | 显示全部楼层
既然固件加密,调试口一定是关闭的,否则分分钟读走程序。另外第一种显然不可行,系统经常复位的话Flash写挂了怎么办。一般有加密要求的,RAM都会稍微大一点

出0入0汤圆

 楼主| 发表于 2017-4-24 08:31:05 | 显示全部楼层
cloudboy 发表于 2017-4-23 16:07
既然固件加密,调试口一定是关闭的,否则分分钟读走程序。另外第一种显然不可行,系统经常复位的话Flash写 ...

so,绝大部分都是按照第二种方式了

出0入0汤圆

发表于 2017-4-24 08:37:06 | 显示全部楼层
wzd5230 发表于 2017-4-22 13:16
所谓boot也就是一段代码,看mcu启动后默认从什么地方执行/跳转到哪里执行,就把代码烧写到那个位置即可! ...

你脑子没问题吧....MCU厂家会想出这么LOW的可能?

凡加密过的芯片, 不光是不能读, 写入也会失败, 或者写入时造成全片擦除,

最后STM32的前4KB在加密后由APP擦除都不允许, 只能解密引起全片擦除清空,

最后, STM32的BOOT方式如果是从RAM启动,则无法由程序读取FLASH区任何内容...


所以说自己做一个BOOT烧进去读APP就是笑话, 事实上如今的破解都是全片开开片读出来的,
软件水平高的又或者是破解了BL下载的加密方式(通常加密比较简单才有可能), 伪造一个APP先来读取BL, 然后再修改BL增加读APP的功能, 再利用升级工具完整升级后读出APP
最后合并原始BL和APP

出0入0汤圆

发表于 2017-4-24 09:03:37 | 显示全部楼层
我比较好奇现在STM32是如何破解的?个人认为首先应该了解破解原理,再来做针对性的防扩措施。

出0入0汤圆

 楼主| 发表于 2017-4-24 09:35:50 | 显示全部楼层
snoopyzz 发表于 2017-4-24 08:37
你脑子没问题吧....MCU厂家会想出这么LOW的可能?

凡加密过的芯片, 不光是不能读, 写入也会失败, 或者写 ...

说技术问题就说技术问题,你脑子才有病,一生出来就有病,到现在还没好!

出0入0汤圆

发表于 2017-4-24 11:03:05 | 显示全部楼层
wzd5230 发表于 2017-4-24 09:35
说技术问题就说技术问题,你脑子才有病,一生出来就有病,到现在还没好! ...

我只是疑问句式, 你是肯定句式, 而且重复2次进入人身攻击, 再来一次就举报你

出0入0汤圆

 楼主| 发表于 2017-4-24 12:31:31 | 显示全部楼层
快点举报,快去
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 11:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表