http://www.plc4good.org.ua/view_post.php?id=107
Предисловие.
Написать эту статью меня подтолкнула ситуация с купленным на нашем опытном производстве станком для гидроабразивной резки листовых материалов ”ALBA” производства наших китайских коллег- машиностроителей из фирмы Sunrise. Станок прекрасно работал пару-тройку лет, и вдруг на дисплее системы ЧПУ появилось сообщение ”Emergency Stop” и станок всяческие действия производить отказался.
При этом на пульте управления в режиме двоичного счетчика красиво мигали две красные светодиодные лампы. Поскольку нормальной техдокументации не было, позвонили в сервисный центр продавца. Там ответили — присылайте заявку, платите денежку, опосля чего приедем, поглядим. Предложение, наверное, и было-бы принято, если-бы предприятие не сидело на картотеке, денег, естественно, не было.
Тогда начальство попросило меня посмотреть, хотя в служебные обязанности зама главного конструктора по АСУТП проектного института и не входит обслуживание станочного парка опытного производства.
Процесс.
Фаза первая — подготовительная.
Осмотр показал, что всей лабудой (кроме ЧПУ) управляет маленький S7-200 с одним дополнительным модулем ввода/вывода. Хотя мы в своем оборудовании 200-ю серию не применяли (все больше 300-ю), но адаптер PPI был в наличии (остался от комплектации какой-то панели оператора). Все просто — надо скачать софт из контроллера и посмотреть, что выставляет ошибку на ЧПУшную систему, благо выход контроллера горел только один, и при его отрывании от контроллера, ошибка с экрана ЧПУ пропадала, что впрочем, не разрешало работать станку.
Далее, казалось все очень тривиальным. Установил на ноутбук Step-7 Micro/Win, подключил контроллер, настроил интерфейс, Upload, а потом.... Окошко ввода пароля. Попытки ALBA, SUNRISE, SUNSHINE и CHINA ничего не дали
![Smile :)](./images/smilies/icon_smile.gif)
.
Звонок в техподдержку продавца несколько обескуражил - «У нас нет пароля, китайцы не дают. Если что-то с контроллером, мы им в поднебесную отправляем!» - …??? Верилось с трудом, и вопрос кряка этого всего хозяйства становился делом профессиональной чести.
Посмотрел сниффером порта что передается/принимается в процессе авторизации. Пароль контроллер передает в зашифрованном виде, поэтому информация малополезная, так как алгоритм шифрования неизвестен и может быть неограниченное количество вариантов.
Фаза вторая — сбор информации.
Пошел в офис курить Интернет. Контроллер из шкафа станка демонтировал и прихватил с собой. Нашлось много чего интересного, в основном на
http://plcforum.uz.ua. Сайт очень полезный, всем настоятельно рекомендую!
Программа распароливания проекта S7 -
Ссылка №1:
viewtopic.php?f=1&t=9426&hilit=unpassword
Хорошая вещь, реально работает (проверил позднее), но у нас нет проекта!
Дальнейшие поиски привели к методике считывания дампа из микросхемы 24С64 - памяти с последовательным доступом. Имея дамп тоже можно извлечь пароль.
Ссылка №2:
viewtopic.php?f=1&t=4648&hilit=%D0%BE%D ... %B7+S7+200
Огромное спасибо CoMod-у за подробную информацию.
Есть там еще одна ссылка, которая призвана прочитать пароль прямо с контроллера по штатному интерфейсу PPI.
Ссылка №3:
Link_is_Dead :(/S7-200.exe.html
Программа реально обращается к контроллеру, даже читает тип ЦПУ и версию прошивки, но, увы, пароль не показывает — поле пустое. Подозреваю, что это когда-то работало, но на ранних версиях прошивок ЦПУ.
Программа реально устарела и уже неактуальна для новых процессоров.
Фаза третья — аппаратное обеспечение (hardware).
Следующий шаг — конструирование программатора. Недолго думая, сварил навесным монтажом то, что рекомендовал CoMod в ссылке №2 на базе порта LPT. Два КТ315, четыре резистора. Приварил проводки к микросхеме ПЗУ, установил PonyProg
http://www.lancos.com/prog.html и … не работает!
Танцы с бубном и прощупывание сигналов при помощи мультиметра результатов не дали. Как оказалось позднее, плохо прощупывал мультиметром ( потом уже с другой схемой обнаружил замыкание, не совсем короткое, но все же, сигнальных проводов между собой в кабеле).
Пошел курить Интернет дальше в поисках решения.
В результате остановился на схеме программатора EXTRAPIC
http://www.5v.ru/extrapic.htm в упрощенном варианте — выкинул все, что не нужно для чтения 24С64, а это немало.
![Image](http://www.plc4good.org.ua/files/02_materials/S7_200/S7200_3.jpg)
Осталось две микросхемы MAX232 и 555ЛА3 (я поставил 155ТЛ3), четыре конденсатора, резистор и диод. Когда ездил за MAX232 в магазин (остальной хлам присутствовал) решил купить и 24С64 для экспериментов с программатором. Питание 5 Вольт взял с USB. Приварил проводки к микросхеме ПЗУ (уже новой в корпусе DIP), запустил PonyProg и … не работает!
Б...дь!
![Link Dead [dead]](./images/smilies/Link_dead.gif)
S7_200/S7200_6.jpg
Фаза четвертая — танцы с бубном
Скачал
http://www.winpic800.com/
Программа очень полезна для настройки и тестирования программатора — можно выбирать сигналы портов, которые подключены к микросхеме ПЗУ и переключать их программно в статике, проверяя, таким образом прохождение и нормализацию сигналов. Попутно пристально разглядел маркировку купленной 24С64 и ничего похожего на корпусе не нашел. ??? Не то подсунули в магазине (может быть случайно, может аналог)…? Поехал в другой магазин, и купил там 24С08 (на ней именно то и написано), подключил...
Нет ответа от чипа ПЗУ! Стал прощупывать сигналы мультиметром и … обнаружил замыкание, не совсем короткое, но все же, сигнальных проводов между собой в кабеле, соединяющем программатор с микросхемой ПЗУ. Кабель этот был накануне отстрижен от дохлой мышки (вот почему мышка-то не работала!)! Отрезал половину — коротыш пропал. Подключил и … о чудо — ЗАРАБОТАЛО! Подключил проводки к микросхеме 24С64 контроллера S7-200, запустил WinPic800 – чтение и … прочиталось 256 байт нулей...!!!???
Б...дь!
Фаза пятая — Победа!
Скачал программу
http://www.ic-prog.com/
Запустил и …, о чудо, прочитал таки дамп. Выглядит начало довольно прикольно!
![Link Dead [dead]](./images/smilies/Link_dead.gif)
S7_200/S7200_7.jpg
Дальше дело техники, как написано в ссылке №1. Используем Unlocks7_200and300.exe для извлечения пароля из дампа. Выкачиваем проект Step-7 Micro/Win и пристально его изучаем. Победа!
Фаза шестая — изучение кода из поднебесной.
Программа управления, собственно ничего хитрого собой не представляет. Обычное «релейное» управление всякой всячиной, типа гидравлики, насосами, клапанами и прочей дрянью, но... Присутствует код таймера на 360 рабочих смен по 8 часов. Таймер считает только тогда, когда включен какой-то выход, типа включения гидронасоса усилителя давления, то есть когда станок работает. Когда таймер досчитывает до конца, устанавливается флаг с адресом M13.0
![Smile :)](./images/smilies/icon_smile.gif)
, типа, все ребята, платите денежки! Что это, как не вымогательство! Сбросить флаг невозможно никаким образом, кроме подключения отладчика, для чего нужен пароль!
Насколько это некрасиво и кто запрограммировал это, либо китайцы, либо наши посредники из Москвы мне, естественно, неведомо...
Но хочется сказать: Ну и козлы же вы, ребята!
PS: Что интересно, на корпусе ПЛК маркером написано 360D. Сначала я принял это за пароль, потом конечно, стал понятен реальный смысл этой надписи
![Smile :)](./images/smilies/icon_smile.gif)
.
Кстати, первый вариант программатора, скорей всего, был рабочий. Виной всему был этот гнилой огрызок кабеля от мышки!