单片机解密
单片机解密又叫单片机破解,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但已经成了习惯叫法,我们把CPLD解密,DSP解密都习惯称为单片机解密。单片机只是能装载程序芯片的其中一个类。能烧录程序并能加密的芯片还有DSP,CPLD,PLD,AVR,ARM等。当然具存储功能的存储器芯片也能加密,比如DS2401 DS2501 AT88S0104 DM2602 AT88SC0104D等,当中也有专门设计有加密算法用于专业加密的芯片或设计验证厂家代码工作等功能芯片,该类芯片业能实现防止电子产品复制的目的。
单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫单片机解密。
解密过程
揭去芯片封装
侵入型攻击的第一步是揭去芯片封装(简称“开盖”有时候称“开封”,英文为“DECAP”,decapsulation)。
有两种方法可以达到这一目的:
第一种是完全溶解掉芯片封装,暴露金属连线。
第二种是只移掉硅核上面的塑料封装。
第一种方法需要将芯片绑定到测试夹具上,借助绑定台来 *** 作;第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但 *** 作起来相对比较方便,完全家庭中 *** 作。
芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接 (这就可能造成解密失败)。
清洗芯片
接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,并浸泡。
寻找保护熔丝的位置并破坏
最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。 *** 作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。
对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。
借助显微镜和激光切割机破坏保护熔丝
还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线(或切割掉整个加密电路)或连接1~3根金线(通常称FIB:focused ion beam),就能禁止整个保护功能,这样,使用简单的编程器就能直接读出程序存储器的内容。
虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。
stc8f1k08s2是一款51系列的单片机,它的程序存储在内部闪存中。要读取单片机内部程序,需要使用专门的编程器或者下载器。下面介绍两种常见的读取单片机程序的方法1.使用专门的编程器读取程序STC公司提供了一款名为STC-ISP的编程软件,可以通过USB转串口线将编程器与单片机连接,实现对单片机程序的编程、擦除和读取等 *** 作。使用STC-ISP可以读取单片机内部程序,具体步骤如下:1连接编程器和单片机,打开STC-ISP软件
2选择单片机型号和串口号。
3点击“读出”按钮,可以将单片机内部程序读
取出来。
注意,使用STC-ISP软件读取单片机程序需要先将单片机上电,否则读取不到程序
2.使用仿真器或者调试器读取程序STC8F1K08S2单片机支持仿真器或者调试器功能,可以将单片机与PC机连接,通过仿真或者调试的方式读取程序。比如STC公司提供了一款名为STC-Debugger的软件,可以通过USB线将单片机和PC机连接,实现单步调试、观察变量和读取程序等功能。使用STC-Debugger可以读取单片机内部程序,具体步骤如下:
(1) 连接单片机和PC机,打开STC-Debugger软件。
(2)选择单片机型号和仿真器类型
3)点击“读程序”按钮,可以将单片机内部程序读取出来。
注意:使用仿真器或者调试器读取单片机程序需要先连接好硬件设备,并设置好仿真器或者调试器的参数,如波特率、数据位、停止位等总之,要读取STC8F1K08S2单片机内部程序,可以使用专门的编程器或者仿真器/调试器等工具具体 *** 作步骤需要根据不同的工具和环境来确定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)