MCU的安全等级正在逐渐提高,一些公司乃至推出了安全主控,这是很好的现象,阐明咱们越来越注重嵌入式范畴的信息安全和程序安全了。但关于许多特别职业,比方消费类电子产品,低本钱的通讯模块、电源操控模块等等,迫于本钱压力以及更新换代速度问题,都无法运用更安全的主控MCU,有很大一部分产品乃至还在运用51单片机,咱们或许都知道破解51单片机是很简略的,但为什么简略,又是怎么来破解的,或许许多人就不大清楚了,我在这儿结合网上一些长辈收拾的材料,和自己的经历,对MCU破解技能做个简略剖析。
咱们不要把解密想的很杂乱,他不像研制一款产品那样,先确认客户需求或许新产品主要功用,然后立项确认技能指标,分配软硬件开发使命,根据硬件调试程序,然后验证功用,测验bug,还要做环境实验。职业里解密的办法有许多,每个人破解的思路也不一样。可是大致分为几种。
第一种:
运用软件破解方针单片机的办法,运用这种办法,不会对方针MCU元器件形成物理损害。主要是对WINBONGD,SYNCMOS单片机和GAL门阵列,这种运用软件解密设备,依照必定的过程操作,履行片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完结了(GAL选用逻辑猜想),就可以得到加密单片机中的程序。
第二种:硬件破解法,流程如下:
1、测验
运用高级编程器等设备测验芯片是否正常,并把装备字保存。
2、开盖
选用手艺或专用开盖设备进行开盖处理,这儿说的开盖并不是说单片机或许其他MCU真有一个盖。简略解释一下,MCU其实是一个大规模集成电路,它是由N个电路组合而成的,而晶圆便是搭载集成电路的载体。将晶圆进行封装后,就形成了咱们日常所用的IC芯片,封装方式可以有多种,比方TSSOP28、QFN28等,咱们可以自己去百度查找,这儿不再复述。
开盖之后的作用如图1所示。
3、做电路修正
对不同芯片,供给对应的图纸,让厂家做电路修正,意图是让MCU的存储区变得可读。有些MCU默许不允许读出Flash或许E2PROM中的数据,由于有硬件电路做维护,而一旦堵截加密连线,程序就露出可读了。如图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也能正常运转了。
其实原因很简略。MCU是要对加密芯片的回来值进行判别的,那么不让他做判别,这样一来不论加密芯片回来值是什么,程序都能正常运转。
因而这种加密计划很快就被破解了。当然也不是这么肯定,由于有些MCU即便剖片也不能取得里边的HEX或许BIN文件,所以这种破解计划也要看MCU的安全等级够不够高。可是足以阐明一个问题,这种经过比照加密成果来完成加密的计划,安全等级仍是不够高,仍是有破解缝隙的。
由于篇幅有限,本期只做解密技能的简略介绍。所谓知己知彼,攻无不克,唯有了解了破解技能,才干更有用的做加密防护。下一期,咱们会针对常见破解技能,要点解说我从前用过的国内一家公司的加密芯片产品是怎么做到加密防护的。