Как стать автором
Обновить

Необычный случай восстановления данных или немного реверс-инжиниринга PLC Siemens Simatic S7-300

Время на прочтение9 мин
Количество просмотров12K
Всего голосов 36: ↑36 и ↓0+36
Комментарии37

Комментарии 37

В японских автомагнитолах стоят флешки которые сложно дублировать без спец оборудовпния. При выходе из строя карточки магнитофон становится тыквой

Да существует достаточно много оборудования, где производитель использует различные способы защиты от копирования.

К счастью в случае исправных MMC карт от Siemens Simatic S7-300 не возникает никаких проблем с созданием корректного файла-образа. К примеру WihHex или любое ПО, умеющее поблочно (посекторно) читать накопитель, справится с этой задачей.

Есть свои нюансы от производителя по принуждению конечного потребителя покупать оригинальные MMC карты по очень высокой цене. Но это не мешает клонировать карту памяти.

привязка MMC карты по CID в этом контроллере отсутствует?

Мы не изучали этот вопрос. Такой задачи не стояло. Восстановленное ПО записывалось на другую MMC карту Siemens и стартовало.

Даже если будет backup данных, но не будет сохранен CID оригинальной карты, то при использовании не оригинальной карты с другим CID контроллер не стартует.
обновление прошивки контроллера возможно решает проблему с предупреждением о том что данные с карты начали "сыпаться"

Даже если будет backup данных, но не будет сохранен CID оригинальной карты, то при использовании не оригинальной карты с другим CID контроллер не стартует.

На оригинальных картах Siemens полном клонировании тома, проблем нет. В случае дорогого промышленного оборудования ее стоимость не столь пугающая, как простой.

Можно ли запустить ПО на иных MMC картах, как я сказал выше мы не изучали и вряд ли будет экономическая целесообразность заниматься этим.

Хотя если на оригинальной MMC карте прописать все пространство нулями, то она перестает приниматься контроллером. Полагаю играет роль защитная разметка в таблице разделов и указатель на идентификационный блок

Не скажу конкретно о японских автомагнитолах, не мой профиль, но использование флешки, спрятанной в дебрях оборудования, во имя удешевления оного, является распространённой порочной практикой. Такое встречается в смартфонах, планшетах, телевизорах и прочей технике. Из недавнего, попадавшего ко мне в руки - осциллограф Uni-T UPO2102CS. Флешка начала сбоить, что привело к частым зависаниям осциллографа в процессе холодного старта. К счастью, удалось посекторно скопировать без ухищрений. А в чём заключается сложность дублирования в упомянутом вами случае, если не секрет?

использование флешки, спрятанной в дебрях оборудования, во имя удешевления оного, является распространённой порочной практикой.

не самая плохая практика. в этом случае возможен "отверточный" ремонт оборудования.

 Такое встречается в смартфонах, планшетах, телевизорах и прочей технике.

будь во всех телевизорах и телефонах заменяемый SSD вместо распаянной микросхемы eMMC, то эти устройства легко было бы реанимировать заливкой прошивок в новый носитель и его заменой. Так как очень много устройств, где именно микросхема памяти изнашивается и всякие "перепрошивки" проблемной микросхемы лишь оттягивание конца. Замена микросхем куда сложнее, и дороже.

Например еще можно отдельно отметить мультимедийные системы автомобилей. Например в случае Tesla из-за выхода из строя копеечной микросхемы eMMC в случае официального сервиса придется раскошелиться на новую систему за 1500-3000$, при цене микросхемы заметно меньше 1% от всей мультимедийной системы. Будь там флеш-карта или сменный SSD, то скорее всего был бы отверточный ремонт с прошивкой за куда более скромные деньги.

К сожалению именно модные нынче eMMC и есть главная ахиллесова пята многих бытовых устройств.

eMMC чип в автомобильной электронике по себе не всегда источник проблемы.
в половине случаев происходит "отвал" чипа из за неоптимальных условий эксплуатации (излишняя вибрация из за некачественного дорожного прокрытия) вторая половина случаев не оптимально написанный программный код который навсегда корректно пишет данные в память.

Насколько я изучил вопрос, данный с дублировать посекторно можно. Но еще нужно и прошить валидный серийный номер карты . Что большинство современных sd не дает сделать. Только там особые модели. Из за этой трудность есть как "рынок" таких услуг. Так и воровство карт из мафонов на этапе перевозки.

По итогу часто карту отправляют из японии почтой, отдельно от машины.

у меня в жизни нет лишних 4 часов на просмотр столь интересного и увлекательного процесса.

Термокамеру/изменение питания не пытались использовать?

Когда различные варианты чтения в штатных условиях не дают результата, то после согласования с клиентом разумеется рассматриваются варианты чтения с отличными от штатных условиями (манипуляции с температурой и напряжениями).

В данном случае эти манипуляции не дали успеха. Количество битовых ошибок менялось только в большую сторону.

Люблю nand в промышленном оборудовании. Пока оно там есть, можно неплохо зарабатывать "на ровном месте", применяя свои навыки и свое же оборудование. троллфэйсжпг.

А если серьезно, такие решения - дичь полная, с точки зрения надежности.

А какие есть более надежные носители информации? Вечных не бывает. Мне видится, что в текущей ситуации - сами виноваты, что бекапов не было.

А какие есть более надежные носители информации? Вечных не бывает.

у всего есть свой ресурс наработки. важно, чтобы этот ресурс понимал обслуживающий персонал и заботился о наличии резервных копий.

Мне видится, что в текущей ситуации - сами виноваты, что бекапов не было.

были и бэкап от производителя, и исходный код, и вся документация. Но не особо заботились о сохранности. В итоге когда случился отказ оборудования, то ничего не нашлось.

на предприятии вообще были специалисты АСУТП? Или, как водится, они признаны ненужными и обслуживанием оборудования занимались обычные электрики, которым, понятно, на какие то там флешки плевать?

Видимо на них пал жребий, как на самых невостребованных, и отправили их в долгую и опасную командировку...

В моем окружении вполне типичный случай: Купили железку 10 лет назад, проверили и положили на склад как зип. Как понадобилось, поставили, а она не работает. нанд "вытек". И, чскх, нет никаких средств ни бэкаба, ни восстановления даже у сц официалов.

А если серьезно, такие решения - дичь полная, с точки зрения надежности.

.Когда это современные решения в виде распаянных eMMC. То в случае отказа производители нередко предлагают замену управляющих плат целиком, а это как правило заказные позиции, что влечет за собой достаточно длительное время простоя оборудования и высокую цену сервиса.

А если это SLC NAND, как в CF, MMC картах для промышленного оборудования, то в случае различных станков, где неуместны жесткие диски, подобные носители неплохой вариант. Достаточно быстры и стойки к вибрациям. Выдерживают большое число циклов записи и в случае отказа достаточно записать образ на новую флеш карту и продолжить работать. При достаточной квалификации обслуживающего персонала на местах можно избежать многих проблем.

NAND разные бывают. Мы вот используем гигабитный чип с заявленным ресурсом 100 000 циклов. При том, что в нём хранится только прошивка и таблица с настройками, которая циклически размазывается по мегабайтному региону.

В вашем случае скорее вина не чипа, а проектировщиков и программистов — одни выбрали неподходящий чип, а вторые неправильно с ним работают.

Непонятно одно - целесообразность подобного ремонта для клиента - ценник простейшего восстановления данных на московских фирмах пугающая, а в данном случае должна просто зашкаливать. Хотя...

в сегодняшних условиях, когда Siemens может отказаться(или уже отказался) от поддержки своих продуктах возможно масштабирование приведённого в статье процесса...

Тогда затраты времени вполне себе могут и окупиться

Смотрите, оборудование должно работать и приносить прибыль(а сейчас оно простаивает), можно, заменить ПЛК, написать для него новую программу, но это долго и дорого. Можно нанять программистов и написать программу под существующий, это дешевле, но все равно достаточно долго, так что попытка восстановить информацию выглядит не такой уж бессмысленной.

в сегодняшних условиях, когда Siemens может отказаться(или уже отказался) от поддержки своих продуктах возможно масштабирование приведённого в статье процесса...

Siemens в этом случае лишь производитель универсальных PLC. Программное обеспечение - это разработка третьей стороны.

А вы не использовали для анализа структуры карты другую, с рабочего контроллера?

В этом случае достаточно было среды разработки, чтобы смотреть что и как будет меняться в заголовке объекта, блоке переменных и таблице сегментов. Далее имея даже одну карту памяти, где проблемы чтения лишь в 5 модулях не так сложно разобраться, где присутствуют метаданные так сказать файловой системы.

Нам предоставляли образ с другого оборудования, но он лишь пригодился в качестве дополнительного контроля наших предположений.

Изначально мы выяснили, что PLC универсальны сами по себе и одинакового ПО ждать не стоит если нет 100% клона конвейера.

исходного кода проекта, который поставлялся вместе с оборудованием

Часто вместе с оборудованием не только не предоставляют исходный код, но и включают встроенные в ПЛК средства защиты от выгрузки скомпилированного проекта штатными средствами и/или запрещают лезть внутрь под угрозой лишения гарантии.
Более того, у пользователя оборудования вполне может не быть в штате специалистов, которые бы понимали, где у ПЛК программа и почему она важна. Если проект изначально написан сколько-нибудь адекватно, само оборудование не модифицируется и с обслуживанием все достаточно хорошо, чтобы не возникало необходимости программно решать аппаратные проблемы, то можно годами вполне успешно работать и без программиста.

Часто вместе с оборудованием не только не предоставляют исходный код, но и включают встроенные в ПЛК средства защиты от выгрузки скомпилированного проекта штатными средствами и/или запрещают лезть внутрь под угрозой лишения гарантии.

да мы заметили, что есть модули содержимое которых не отображается в среде разработки, но в шестнадцатеричном редакторе можно прочесть код.

Более того, у пользователя оборудования вполне может не быть в штате специалистов, которые бы понимали, где у ПЛК программа и почему она важна. 

Со слов заказчика (обслуживающей организации) известно лишь, что изначально был передан и исходный код вместе с документацией. Но владелец конвейера его не сохранил. Потому как все работало много лет и о рисках потери ПО даже перестали задумываться.

Потому как все работало много лет

В общем-то, хорошо их понимаю, потому что эти PLC лет по 20 живут.

hddmasters, приходилось ли вам работать напрямую с контроллером SD карт? Существуют ли вообще какие-то тулзы для форматирования и т.д.? Для многих контроллеров USB флешек можно найти такие тулзы, а вот с SD что-то вообще глухо :(

Для восстановления данных никогда не было такой необходимости. Наши методы работы с неисправными картами подразумевают разрезание корпуса, выпаивание NAND микросхем, чтение дампов и анализ алгоритмов контроллера, для того, чтобы потом собрать образ с пользовательскими данными. Если внутри карты монолит, тогда комплекс исследований с логическим анализатором и после получения дампов работа как и в случае обычный карт.

Экономической целесообразности в реанимации карт памяти не видится, поэтому вряд ли нами будет исследоваться этот вопрос.

А почему в данном случае использовался только картридер, заказчик был против потрошения карты?
По моему небольшому опыту — подавляющее большинство проблем что с SD что с USB флешками носит чисто софтовый характер — видимо слетает прошивка или какие-то таблицы контроллера.
Также довелось поэкспериментировать с factory командами одной USB флешки — там помимо прочего была возможность читать/писать данные в сыром виде — для мелочи типа SD карт такой спосом имхо гораздо безопаснее потрошения.
Да и как вообще добраться до памяти micro SD без риска угробить ее окончательно — не очень понятно.

А почему в данном случае использовался только картридер, заказчик был против потрошения карты?

Карта в монолитном исполнении (контроллер+память в одном керамическом корпусе). Карта выходит в готовность и трансляции работает. Особого смысла читать NAND в котором слишком много битовых ошибок не имеет большого смысла. Кроме дополнительных осложнений при анализе монолита здесь скорее всего ничего бы не получили.

По моему небольшому опыту — подавляющее большинство проблем что с SD что с USB флешками носит чисто софтовый характер — видимо слетает прошивка или какие-то таблицы контроллера.

Основная масса проблем:
1. износ NAND памяти и неустойчивое чтение или нечитаемость структур FTL
2. повреждение структур FTL

Также довелось поэкспериментировать с factory командами одной USB флешки — там помимо прочего была возможность читать/писать данные в сыром виде — для мелочи типа SD карт такой спосом имхо гораздо безопаснее потрошения

Исследование технологических режимов слишком затратное по времени мероприятие, если учитывать обилие контроллеров. Также во многих микропрограммах недостаточно возможностей, чтобы заниматься восстановлением данных.

Способ прочитать NAND микросхему средствами комплексов PC3000Flash или Flash Extractor выглядит более надежным, чем чтение микросхем средствами микропрограммы носителя, которая не гарантирует выдачи корректного содержимого из страниц памяти.

Да и как вообще добраться до памяти micro SD без риска угробить ее окончательно — не очень понятно.

Снимается слой лака со стороны контактов. Далее работа с логическим анализатором, чтобы найти нужные точки. После исследований устанавливаем иглы адаптера только на нужные . И получаем дампы NAND памяти.

Исходя из того, что стоимость карт памяти относительно невысока, основные проблемы возникают из-за износа отдельных участков памяти, то не видится особого смысла бороться за то, чтобы сохранить карту и привести её в вид пригодный к эксплуатации. Куда важнее получить максимально точный дамп из нее с минимальным количеством битовых ошибок.

Ня!

Исследование технологических режимов слишком затратное по времени мероприятие, если учитывать обилие контроллеров. Также во многих микропрограммах недостаточно возможностей, чтобы заниматься восстановлением данных.

Учитывая полное отсутствие в открытом доступе даташитов и тулзов по SD картам — даже непонятно как к этой задаче подступиться. Для USB то хоть тулзы можно найти для многих контроллеров.
А вы тоже все реверсите с нуля, или какая-то информация по контроллерам все же доставаемая? Даже если снять дамп с флешки — там же хитрые алгоритмы выравнивания износа и коррекции ошибок, и тоже разные для разных контроллеров — данные так просто не восстановить.

Даже если снять дамп с флешки — там же хитрые алгоритмы выравнивания износа и коррекции ошибок, и тоже разные для разных контроллеров — данные так просто не восстановить.

Говоря о FTL то эти структуры в большинстве своем куда проще изучить, чем разобрать технологический режимы работы микропрограмм флешек.

Многие флешки и вовсе не требуют изучения структур FTL (flast translator layer), а достаточно служебных данных в блоке или странице, чтобы можно было определить положение в логическом пространстве реализуемом накопителем.

Ранее публиковал результаты простого анализа флешки, где показывал как можно определить положение блока в логическом образе и расписывал алгоритм распараллеливания данных и простой принцип работы алгоритма выравнивания износа.

А вы тоже все реверсите с нуля, или какая-то информация по контроллерам все же доставаемая?

с нуля.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории