Заобикаляне на присъщата защита на микроконтролерите PIC - Технически форум за разработчици на електроника

Заобикаляйки вградената защита на PIC микроконтролери

Хакване MK PIC18F1320

Мислех, че би било добра идея да изпробвам някои от онези техники за хакване на PIC микроконтролер, за които съм чувал. Обикновено PIC микроконтролерите имат определен брой така наречени битове с предпазители, които се използват за защита срещу четене или модифициране на някои части от паметта. Има обаче моменти, когато се налага да се прочете съдържанието на вече програмиран и защитен контролер (законно). Типичен пример е загубата от страна на компания на техническа документация за устройство или уволнението на хората, които първоначално са разработили защитения фърмуер на микроконтролера. Това също се случва често, когато дадена компания иска да актуализира продуктовата си линия. Е, знаете ли, все още има някои ситуации, когато такива умения могат да бъдат полезни.
Купих четири PIC18F1320 и започнах да ги измъчвам. Ето как изглежда PIC18F1320 в оригиналния си, недокоснат вид:

Кратък преглед на повърхността на чиповете разкри някои характерни зони на микроконтролера, показани по-долу:
/>

Видими (по посока на часовниковата стрелка): 8 KB флаш памет, референтен източник на напрежение, зарядна помпа за програмиране на флаш/EEPROM памет, 256 байта EEPROM памет, вградени таймери и тактови схеми, изчислително ядро, ROM с микрокод, масив с битове на предпазители, 256 байта RAM, ADC.
Една конструкция веднага привлече вниманието ми: ред метални щитове над транзисторите, които бяха в правилния ред и броя на битовите предпазители. Пълното припокриване на елементи от метални екрани върху силициеви кристали е много рядко и разбира се такива елементи привличат вниманието, защото съдържат нещо изключително важно.
/>

Нека помислим малко за тези метални екрани. За какво са необходими? Първо, нека си припомним някои интересни факти за флаш технологията (този тип памет се използва и в микроконтролерите PIC за съхраняване на битови предпазители). Технологията Flash включва използването на транзистори с плаваща порта, много подобни на тези, използвани в старите IF чипове за изтриване на ROM (помните ли 2616-те в керамичен корпус и с кварцово стъкло?). И при флаш, и при UV-EPROM данните се съхраняват чрез инжектиране на електрони в плаващата порта, използвайки тунелен ефект, където тези електрони могат да пребивават десетилетия. Допълнителни електрони в плаващата порта създават забележима промяна в работата на транзистора.
Разликата е, че във флаш паметта има достатъчно електрически импулси за изтриване на информацията, докато в UV-PROM са необходими високоенергийни фотони, за да "изгонят" електроните от плаващата порта. Това изисква ултравиолетова светлина с дължина на вълната около 250 nm. За да се предотврати прекалено намаляването на ултравиолетовите лъчи, се използват кварцови очила (същите прозорци на стари ROM чипове).