MCU的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明大家越来越重视嵌入式领域的信息安全和程序安全了。但对于很多特殊行业,比如消费类电子产品,低成本的通讯模块、电源控制模块等等,迫于成本压力以及更新换代速度问题,都无法使用更安全的主控MCU,有很大一部分产品甚至还在使用51单片机,大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析。

大家不要把解密想的很复杂,他不像研发一款产品那样,先确定客户需求或者新产品主要功能,然后立项确定技术指标,分配软硬件开发任务,基于硬件调试程序,然后验证功能,测试bug,还要做环境试验。行业里解密的方法有很多,每个人破解的思路也不一样。但是大致分为几种。

第一种:

利用软件破解目标单片机的方法,利用这种方法,不会对目标MCU元器件造成物理损伤。主要是对WINBONGD,SYNCMOS单片机和GAL门阵列,这种利用软件解密设备,按照一定的步骤操作,执行片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了(GAL采用逻辑猜测),就可以得到加密单片机中的程序。

第二种:硬件破解法,流程如下:
1、测试
    使用高档编程器等设备测试芯片是否正常,并把配置字保存。

2、开盖
    采用手工或专用开盖设备进行开盖处理,这里说的开盖并不是说单片机或者其他MCU真有一个盖。简单解释一下,MCU其实是一个大规模集成电路,它是由N个电路组合而成的,而晶圆就是搭载集成电路的载体。将晶圆进行封装后,就形成了我们日常所用的IC芯片,封装形式可以有多种,比如TSSOP28、QFN28等,大家可以自己去百度搜索,这里不再复述。

开盖之后的效果如图1所示。

图1. 开盖处理

3、做电路修改
    对不同芯片,提供对应的图纸,让厂家做电路修改,目的是让MCU的存储区变得可读。有些MCU默认不允许读出Flash或者E2PROM中的数据,因为有硬件电路做保护,而一旦切断加密连线,程序就暴露可读了。如图2所示

图2. 修改加密电路

(切割掉加密熔丝,这样就可以直接读出芯片内部程序)

4、读程序
    取回修改过的MCU,直接用编程器读出程序,可以是HEX文件,或者BIN文件。

5、烧写样片给客户
    按照读出的程序和配置,烧写到目标MCU中,这样就完成了MCU的破解。 至此,硬件破解法成功完成。

第三种:

采用软件和硬件结合的方法,需要对芯片的内部结构非常的熟悉。

另外还有其他一些破解技术,例如电子探测攻击、过错产生技术等等,但是最终目的只有一个,就是能够模仿出目标MCU的功能就可以了。

看到这里大家应该明白一个道理,破解MCU并不能做到把MCU中的程序原封不动的还原出来。目前的技术也做不到,至少国内应该做不到。针对以上情况,加密芯片应运而生,初期确实能很好的保护MCU的安全,但很快就被找到了漏洞。

我举个实际破解的例子分析一下,大家就能够明白了。

加密原理:

MCU和加密芯片各存储一条认证秘钥,存储同样的加密算法;

MCU产生随机数发给加密芯片,后者用秘钥加密后将密文返回,此时MCU解密后,比对明文是否和生成的随机数相等。如果相等,程序正常运行;如果不相等,出错处理。

因为盗版商没有这条秘钥,加密芯片与MCU交互的数据又是随机变化的,无法找到规律,所以只能把加密芯片的程序破解了,再复制一片加密芯片才能让MCU的程序跑起来。而加密芯片不同于通用MCU,它内部有很多安全机制,破解难度非常大。

这种加密方案看似非常安全,但其实还是有漏洞的。

破解方法:

1、首先按照第二种破解方法,获取到MCU的HEX文件。此处省略N步,不再复述。

2、使用软件进行HEX反编译,反编译软件目前有很多。

3、在反编译的程序中,找到对比点,比如图3所示,CJNE语句可能就是这个对比点。因此只要把箭头2那行语句删除,然后重新把汇编语言下载到MCU

中,破解工作就完成了。此时即使没有加密芯片,MCU也能正常运行了。

图3. 屏蔽对比点

其实原因很简单。MCU是要对加密芯片的返回值进行判断的,那么不让他做判断,这样一来不管加密芯片返回值是什么,程序都能正常运行。

因此这种加密方案很快就被破解了。当然也不是这么绝对,因为有些MCU即使剖片也不能获得里面的HEX或者BIN文件,所以这种破解方案也要看MCU的安全等级够不够高。但是足以说明一个问题,这种通过对比加密结果来实现加密的方案,安全等级还是不够高,还是有破解漏洞的。

因为篇幅有限,本期只做解密技术的简单介绍。所谓知己知彼,百战百胜,唯有了解了破解技术,才能更有效的做加密防护。下一期,我们会针对常见破解技术,重点讲解我曾经用过的国内一家公司的加密芯片产品是如何做到加密防护的。

MCU破解技术分析(一)相关推荐

  1. MCU加密技术分析(二)

    上期提到了嵌入式MCU破解技术,虽不全面,但足够起到警示作用. 本期主要讲述嵌入式产品如何进行安全防护. 因为MCU端的程序很容易被获取到,所以MCU端的程序和数据都是不安全的.最直接的加密防护,就是 ...

  2. 如何防止破解?MCU加密技术揭秘

    点击上方"小麦大叔",选择"置顶/星标公众号" 福利干货,第一时间送达 自从上世纪70年代MCU诞生以来,芯片的破解技术与防止芯片被破解方案就在不断地上演着&q ...

  3. 【引用】内网安全数据保密技术分析与比较

    内网安全数据保密技术分析与比较 邹翔① 王志海②,李志涛② (①公安部第三研究所上海 200031: ②北京明朝万达科技有限公司,北京 100000) [摘要]本文通过对目前主要的内网安全数据保密关键 ...

  4. 利用NTLDR进入RING0的方法及MGF病毒技术分析

    利用NTLDR进入RING0的方法及MGF病毒技术分析 2010年08月02日 [b]以前看了莫国防病毒的源代码.摸到了一个进入RING0的方法.今天又在EST论坛看到了代码,随手写一个笔记吧.其实w ...

  5. 文华财经指标公式大全,通达信指标加密破解DLL加密防破解技术方法

    STICKLINE(做多 AND C<O,C,O,0.3,0),COLORFF00FF;  STICKLINE(做多 AND C>=O,C,O,3,1),COLOR0000FF;  {ST ...

  6. 用“闪电计算”弯道超车 费马图数据破解关联分析瓶颈

    随着中美贸易战愈演愈烈,在科技领域也不由得拉响了警报."去IOE"多年,有很多成果也有很多无奈,在数据库领域,我们至今依然无法摆脱受制于人的局面.Oracle前段时间大规模裁员的事 ...

  7. 染成茜色的坂道破解技术内幕之实战篇

    染成茜色的坂道破解技术内幕之内功提高篇,成为真正的程序员 使用OllyICE打开染红 我的版本是染红1.00 版 先认识我们这个武器 OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器. ...

  8. 深入了解MD4,MD5,SHA哈希密码算法与破解技术

    简介 密码(password)是最广泛使用的认证系统之一,防止未经授权的用户访问系统,无论是离线还是在线.在大多数系统中,密码是通过加密存储的,以便为每个用户提供安全性.然而,在这些密码的加密之内,仍 ...

  9. 手游直装破解手段分析

    导语 近期朋友公司的多款手游出现直装破解挂的困扰,朋友公司对接的是某鹅的反外挂系统,理论来说大厂不应该出现这类问题,于是我找了下市场流行的一些直装挂分析了一下,发现大多数的直装挂是利用某管理器的过签名 ...

最新文章

  1. 用户控件制作时设计模式加载报错的解决办法
  2. linux vscode设置在集成终端中打开
  3. 洛谷P4315 月下“毛景树”
  4. iOS之AVPlayerViewController的使用oc
  5. http缓存协议详解
  6. Python中if判断语句在只有一个break子句时可以写在一行
  7. 总结: 1.函数 2.函数调用 3.函数的参数
  8. 转: 参数修饰符ref,out ,params的区别
  9. 工业机器人远程监控系统方案
  10. 今天,正式开始行走边境线!
  11. 六种复杂控制系统简述:串级、分程、比值、前馈、选择性和三冲量控制
  12. python换零钱有多少种方案_python练习题4.15换硬币(修正)
  13. 计算机辅助设计基础试题,CAD基础试题「附答案」
  14. icon、png网页开发中所需要的小图标
  15. 日消息量突破 50 亿,谈小米的高可用推送系统设计
  16. traceping是什么意思_trace命令是什么意思,trace怎么读是什么意思?
  17. 你不了解的 @reduxjs/toolkit 中的createApi
  18. 双语电子书epub格式
  19. nag在逆向中是什么意思_OD调试4----去除nag窗口的几种方法
  20. 广东移动至2020年数据中心机柜规模将近10万架

热门文章

  1. 今年的 618,你清空的不仅仅是购物车,还有焦虑和迷茫
  2. 在 Python 中使用函数式编程的最佳实践!
  3. Facebook开源多款AI工具,支持游戏、翻译
  4. Java中高级核心知识全面解析——常用框架(SpringMVC-工作原理详解)
  5. ClickHouse在字节跳动推荐和广告业务部门的最佳实践
  6. 支付宝扫码支付完成后如何跳转跳转页面_支付宝支付页面广告(按效果付费,杜绝隐形消费),企业拓客好帮手...
  7. oracle仲裁机制,仲裁逻辑设计要点
  8. html中url路径是什么意思,url是什么意思?
  9. oracle语法_PG数据库sql语法总结,与Oracle有什么不同?
  10. 武林c语言,c语言printf函数的使用