1、背景
单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。为了防止访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通的编程器直接读取单片机内的程序,这就是所谓单片机加密或者说锁定功能。事实上,这样的保护措施很脆弱,很容易破解。
单片机攻击者借助专用设备或自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片提取关键信息,获取单片机内程序。
2、解密方法
1)软件方法:
主要针对SyncMos. Winbond等在生产工艺上的漏洞,利用某些编程器空位插字节,通过一定的方法查找芯片中是否有连续的空位,也就是查找芯片中连续的FF FF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用破解的设备进行截获,这样芯片内部的程序就被破解完成了。
2)硬件电路修改方法:其流程为a:测试使用高档编程器等设备测试芯片是否正常,并把配置字保存。
注:配置字指的是在PIC等系列的单片机里,其芯片内部大都有设置一个特殊的存储单元,地址是2007,由用户自由配置,用来定义一些单片机功能电路单元的性能选项。
b:开盖可以手工或开盖机器开盖。
c:做电路修改对不同芯片,提供对应的图纸,让厂家切割和连线,对每一个割线连线一般需要提供芯片位置概貌图、具体位置图、FIB示意图三张图纸(部分小的芯片只提供概貌图和FIB图)。
d:读程序取回电路修改后的单片机,直接用编程器读出程序。
e:烧写样片, 按照读出的程序和配置,烧写样片提供给客户。
这样就结束了IC解密。
3)软件和硬件结合的方法,比如对HOTEK,MDT等单片机破解。
3、芯片解密服务流程当客户有芯片解密的需求后,可以通过联系解密客户服务厂家进行沟通、咨询,提供详细的需解密的芯片信号及后缀、封装等相关特征。
厂家根据客户提供的具体型号由技术部门进行评估,确认是否能破解,若能破解,厂家确认好所需的费用和解密的周期,客户提供完好的母片并支付部分定金(对于某些芯片,可能还需要必要的测试环境),解密服务正式启动。解密完成后,厂家提供给用户1-2片样片进行测试,若样片测试通过,客户结清项目余款,同时厂家通过邮件或邮寄光盘等方式提供客户完整的解密程序文件。