Имеется чип к картриджу на принтер OKI c711. Сам чип на борту имеет МК Attiny45v и работает как RFID метка (если не ошибаюсь на частоте в 13,56 мгц). Т.к. чипы эти дорогие то следовательно у меня цель - перепрошить чип для повторного использования. При попытке подключения МК к MiniProg он определяется, но при чтении выдает пустую память (FF). При попытке записать бит он его пишет и читает. После чтения на программаторе уже 2 чипа вайпнутые (пустые) лежат! Подскажите, что происходит? Алгоритм самозащиты от чтения прошивки? Как возможно подключить МК к программатору обойдя выполнение кода вшитого в него?
[Fuse Low Byte] CKDIV8=0 CKOUT=1 SUT1=0 SUT0=0 CKSEL3=0 CKSEL2=0 CKSEL1=0 CKSEL0=0 [Fuse High Byte] RSTDISBL=1 DWEN=1 SPIEN=0 WDTON=1 EESAVE=1 BODLEVEL2=1 BODLEVEL1=1 BODLEVEL0=0 [Extended Fuse Byte] SELFPRGEN=1 [Lock Bit Byte] LB2=0 LB1=0 В софтине везде указано значение=0, только галки проставляются. Где указал =0 - там галка. Дело в том, что я его как в программатор вставляю - так уже читаются FF.
Разобрался я с "защитой от копирования". При активных лок-битах при попытке чтения он чистится как и положено. Если при первом чтении заранее прошить лок-биты на нули то сегмент данных стащить можно, а вот сегмент кода все равно чистится. Как обойти?
Вы уверены что чип сам себя чистит, не просто отдает нулевые данные при установленных битах? При установленных битах защиты прошивка считывается открыванием микросхемы, а там уже по обстоятельствам - перерезание проводников, подключение к шине данных и пр. Дорого, но вполне реализуемо.
Эксперементировал с лок-битами. Записал определенные значения и попробовал считать при залоченом чипе - чисто. Попробовал заранее прошить локи на нули - данные остаются, код - чисто.
Прочел подробней про лок-биты. Раньше с МК вообще дел не имел, только заказал себе Ардуинку для саморазвития. Приношу свои извинения за ввод в заблуждение. Я действительно перед опытами очистил один чип и после этого игрался с лок-битами. Прочел статью на хабре - лок биты на ПИКах возможно обойти только вскрыв корпус микрухи и засветив под УФ область фьюзов. Интересно, как на аппаратном уровне реализована процедура обнуления лок-битов путем полной чистки памяти? И последний "тупой" вопрос - возможно ли снять лок-биты путем частичной очистки, не прибегая к раскопкам кремния?
Производитель делал защиту не для того, чтобы Вы случайно не считали свои собственные исходники, а для того чтобы "китайцам" и "радиолюбителям" было дешевле написать свой код, чем считывать чужой. У Atmega и PIC защита детская,по деньгам будет около $3-10К. Некоторые микросхемы, кажется 16F84, можно было считать "вогнав в ступор" лок-биты внешними электрическими воздействиями. Но это потом исправили.