Comments 44
интересно, китайцы так и делают, проводя реверс-инжиниринг ))
Рад что ссылка пригодилась :)
>было бы очень интересно узнать, как он все это определил по внешнему виду
Разные узлы имеют разные характерные структуры, например логично предположить, что большая однообразная площадь- это flash-память.
Это да, понятно. Но вот например как распознать по внешнему виду кристалла тот же ИОН? Или внутренний осциллятор например? Это ведь достаточно мелкие по площади структуры, и как там можно выделить специфические элементы я пока не понимаю.
осциллятор находится по подключенным к нему пинам (эти ножки не рероутятся даже на топовых контроллерах, иначе они просто не заведутся)
Так же хочется заметить, что во всенародно любимых микроконтроллерах AVR fuse-биты имеют похожую структуру (точно так же перепрограммируются), что позволяет надеяться, что описанная методика пригодна и для них!

А вот тут облом! В AVR установленному Fuse- или Lock-биту соответствует записанный в ячейку ноль. То есть ультрафиолетом можно только установить защиту, но не снять.
Ну вообще-то при стирании биты любой флэш памяти выставляются в 1, а при записи переходят в 0. Чтобы перевести обратно в 1 нужно провести операцию стирания.
Если верить статье, УФ излучение переводит ячейку в состояние «0»:
Я провел эксперимент, в котором запрограммировал PIC-контроллер значениями 0xFF вместо 0x00, и затем проэкспонировал его в моем УФ-ППЗУ стирателе

Когда я извлек контроллер из стирателя, то обнаружил, что flash-память действительно была очищена и вернулась в изначальное состояние
Тысяча чертей! Всегда нужно читать оригинал.
When I took the device out of the eraser, I found that indeed the FLASH memory was blanked to it’s normal all 1’s state

grobik, вы правы, стертая ячейка = 1, записанная = 0, ультрафиолет стирает ячейку в 1.
Переводчику: поправьте это место, пожалуйста, исказили суть до противоположности.
Резюме: с АВР технология тоже должна сработать.
Да, сейчас поправлю все. Но возникает встречный вопрос: а почему бы действительно не сделать так, что активный бит защиты соответствует 0? Тогда не получилось бы таким методом стереть.
> активный бит защиты соответствует 0
Это так и есть, что для PIC, что для AVR.
Имеете в виду наоборот: 1-есть защита, 0-нет? Тогда атака получается еще проще: ткнул иголкой, разрушил ячейку, и всё.
Ну в смысле сделать бы так, что облучаем УФ и получаем защищенную прошивку (как вы сначала написали).
Иголкой — вариант интересный, но как бы не снести то, что стоит в непосредственной близости.
Так нельзя сделать потому что в этом случае вы не сможете ничего сделать с только что вышедшим с завода контроллером. Т.к. одна из групп конфиг-битов запрещает запись.
Lock-биты не запрещают стирание всей памяти. Можно же сделать так, чтобы по команде стирания Lock-биты выставлялись в 0 (записывались).
Это решаемо одним однократно программируемым на фабрике вентилем, который пережигается после дефолтной установки lock-битов.
Не совсем понял из статьи. На чип карты «Золотая корона» можно наличности выше имеющейся добавить?
Конечно. Только у них защита круче, УФ лампочки не хватит. Идите в районную поликлинику, в рентген-кабинет, и облучайте там свою карту не меньше часа.
Садить в лужу умных Петросянов, думающих, что они всё знают, много приятнее, чем простых людишек. Спасибо Вам, что Вы есть.
Написал же для сверходарённых Золотая Корона.
Именно на ней, деньги хранятся на карте (несколько лет назад — хранились). Посредством банкомата можно перекинуть некую сумму денег со счёта на карту и оплатить покупку в кассе с терминалом, который никак в момент оплаты не соединён с банком. Внезапно!
А вы, уважаемый, вместо того, чтобы выпендриваться, лучше бы рассказали об этой уникальной в своем роде платежной системе, или даже провели бы исследование на предмет «что там как хранится».
А смысл? Я лично для вас полчаса назад комментарий со ссылкой написал. Помогло?
Обожаю хабр!
Тут даже тролли интеллигентные. Всего вам доброго :)
Вторая интересная статья за неделю о внутренностях процессоров! И при этом достаточно нестандартная! Отлично.
Перевод, кстате, изобилует косяками.

> ряд металлических «щитов» над транзисторами
Shield — экран.

> Магнитная пленка
Electrical tape — изолента.

> Я провел эксперимент, в котором запрограммировал PIC-контроллер значениями 0xFF вместо 0x00, и затем проэкспонировал его в моем УФ-ППЗУ стирателе, пока принимал душ и проверял почту.
Когда я извлек контроллер из стирателя, то обнаружил, что flash-память действительно была очищена и вернулась в изначальное состояние, и что защитные fuse-биты так же были деактивированы.

I performed a simple experiment where I programmed the PIC device with a ramping pattern (0×00->0xFF over and over again) and then tossed it in my UV-EPROM eraser for the length of oh, about a good long shower and some email checking. When I took the device out of the eraser, I found that indeed the FLASH memory was blanked to it’s normal all 1’s state, and that the security fuses were unaffected.

Тут вообще весь смысл переврал.

А оригинальное статейко неплохое.
PIC 18 стирается по-дефолту в 0xFFFF (PIC16 в 0x3FFFF), поправьте косяк.
P.S.: ramping pattern 0×00->0xFF over and over again — это 00 01 02 03… FD FE FF 01 02 03…
блин. вот есть у меня доступ до эл.микроскопа. а вот как снять корпус с микросхемы… кислота, вроде, тоже водилась… надо будет попробовать! :)
Хочу только добавить, что лампа которую он держит не выглядит на 250нм )
Скорее там унылая 365нм лампа черного света, кварцевые на 254нм светят белым светом (они божественно красивые… Жаль на них нельзя смотреть...).
Only those users with full accounts are able to leave comments. Log in, please.