芯片IC单片机解密百科

十年专注单片机解密

欣荣与您探讨AVR单片机破解技术

      一般说来,AVR与传统类型的单片机相比,在IC芯片解密技术中除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。能破解的AVR单片机都是小芯片/小程序(直接说就是模仿其功能而新开发新程序),因此解密难度都是不是很大。因而本文探讨的就是AVR单片机破解技术。

      AVR单片机破解者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序,这就是AVR单片机破解。

单片机破解

     AVR单片机破解后的熔丝配置

AVR单片机内部有多组与器件配置和运行环境相关的的熔丝位,这些熔丝位非常重要,用户可以通过设定和配置熔丝位使AVR单片机局部不同的特性,以更加适合实际应用。但是由于需要对熔丝位进行配置,对于单片机解密以后,在烧录程序的时候,也要对熔丝位配置,如果配置不对了,可能不工作或功能发生变化。所有在烧录解密后的文件的时候一定要对熔丝位进行配置,由于支持AVR的工具非常多,而不同的工具的软件的界面不同,所以在做AVR单片机解密前最好告诉解密公司自己使用的是什么工具,让芯片解密公司按照自己的工具的界面做配置图,这样就方便了解密以后去烧写程序,不过自己也可以用单片机解密公司提供的样片去读熔丝位配置,有的工具直接读芯片就可以,有的是读配置等等,然后将读出的配置保存。

 

如果是刚出厂的单片机,默认的是使用内部1MHZ的RC振荡作为系统时钟,而且JTAG口处于允许方式。对于AVR熔丝位要起码要明确以下几点。

 

AVR熔丝可以多次编程,不是一次性的OTP熔丝。

 

熔丝位的配置可以通过并行方式、ISP方式和JTAG串行方式实现。

 

AVR芯片加密锁定后(LB2/LB1=1/0,0/0)不能通过任何方式读取芯片内部FLASH和EEPROM中的数据,但熔丝位的状态任然可以读取,只是不能修改配置。

 

芯片擦除命令是将FLASH和EEPROM中的数据清除,并同时将两位锁定位状态配置成无锁定状态(LB2/LB1=1/1),但芯片擦除命令并不改变其他熔丝位的状态。

 

下载编程的正确步骤是:在芯片无锁定状态下对芯片下载运行代码和数据,配置相关熔丝位,最后配置芯片的加密位置。

 

芯片被加密锁定后,如果发现熔丝位及配置不对,则必须使用芯片擦除命令,清除芯片中的数据,解密加密锁定,然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的加密锁定位。

 

需要非常明确的指出一点的是SPIEN位,很多客户曾经电话咨询过,说是我们提供的单片机用ISP连接不上,而自己买来的可以,熔丝为的SPIEN就是配置ISP的,如果SPIEN为1,ISP是允许状态,如果是0则为禁止状态,如果是禁止状态当然是无法ISP连接口芯片的。

 

另外比较重要的是BOOTRST位,这一位的设置关系到芯片上电后程序从0X0000开始执行还是从 BOOT区开始执行。而系统时钟源的选择也非常重要,解密后的程序客户烧写的时候经常不好用,打部分是由于时钟源没有设置对的原因,所以系统时钟一定按照原来的设置。


cache
Processed in 0.011316 Second.