Реверс-инжиниринг поневоле
Как мы восстановили доступ к оборудованию после ухода вендора
Последние несколько лет научили российскую промышленность одной важной вещи. Никто не придёт и не решит ваши проблемы за вас. После ухода многих зарубежных производителей оборудования компании столкнулись с совершенно новыми вызовами. Где-то исчезла техническая поддержка. Где-то стало невозможно купить запасные части. Где-то перестали обновляться программные продукты. Но самое интересное, что иногда проблемы возникают совсем не там, где их ожидаешь увидеть.
Хочу рассказать историю о том, как нам пришлось заняться небольшим реверс-инжинирингом производственного оборудования.
Сразу оговорюсь: в этой статье мы сознательно не будем называть производителя станка. Не потому что хотим что-то скрыть, а потому что речь идёт не о конкретном бренде, а о подходе к решению технических задач.
Что такое реверс-инжиниринг

Если совсем упростить определение, то обычный инжиниринг — это путь от чертежей к готовому изделию. Есть документация, проект, оборудование и результат.
Реверс-инжиниринг работает в обратную сторону.
Есть готовое изделие.
И необходимо понять:
как оно устроено;
как работает;
какие механизмы используются внутри;
каким образом реализованы те или иные функции.
Иногда это требуется для ремонта. Иногда для модернизации. А иногда для восстановления работоспособности оборудования. Именно такой случай произошёл у нас.
С чего всё началось
После увольнения одного из сотрудников мы столкнулись с неожиданной проблемой. На одном из производственных станков оказался изменён пароль администратора. Ситуация выглядела странно. Заводской пароль был хорошо известен и использовался годами. Однако кто-то изменил настройки доступа.
При этом:
изменение не было согласовано;
информация не была передана руководителю участка;
пароль нигде не был задокументирован.
Была ли это ошибка, забывчивость или чья-то инициатива — сегодня уже невозможно установить. Но факт оставался фактом: Администраторский доступ был утрачен.
Первая попытка — обратиться к специалистам
Разумеется, первым делом мы пошли самым правильным путём. Связались со специалистами, которые хорошо знали данное оборудование.
Были проверены:
варианты сброса настроек;
процедуры восстановления;
обновление программного обеспечения;
известные заводские пароли;
сервисные режимы.
К сожалению, результата это не принесло. Но зато мы получили важную информацию о внутреннем устройстве программной части станка. Именно это впоследствии помогло решить проблему.
Если нельзя решить задачу сверху — изучаем её изнутри
После нескольких безуспешных попыток наш технический директор произнёс фразу:
Значит будем разбираться, как это работает.
Именно с этого момента началась самая интересная часть истории. Мы получили доступ к служебным файлам системы и начали их изучать. Без сложных инструментов. Без дизассемблеров. Без отладки кода. Просто открывали файлы и смотрели содержимое. К нашему удивлению, внутри оказалось довольно много информации в человекочитаемом виде.
XML спасает инженеров
Оказалось, что часть конфигурации хранится в обычных XML-файлах. Любой инженер, который когда-либо работал с настройками промышленного оборудования, знает это чувство. Когда открываешь файл и видишь не набор непонятных байтов, а вполне понятные параметры. Постепенно стало ясно, что многие настройки системы лежат буквально на поверхности. В том числе информация о пользователях.
Самая интересная находка
Среди конфигурационных файлов обнаружился один, название которого очень настойчиво намекало на связь с учётными записями пользователей. После изучения содержимого стало понятно: внутри действительно находились данные пользователей и хэшированные пароли.
Казалось бы, проблема решена. Но появилась новая задача.
Хэш есть. Пароля нет.
Мы увидели:
логины;
группы пользователей;
хэши паролей.
Но совершенно не понимали:
какой алгоритм используется;
можно ли восстановить пароль;
как формируется база пользователей.
Именно здесь нам снова помогла кооперация.
Почему важно общаться с коллегами
Одна из главных вещей, которую я понял за последние годы: инженерное сообщество часто оказывается сильнее любых ограничений. По нашей просьбе коллеги предоставили нам аналогичный файл с такого же оборудования, где были известны:
имена пользователей;
уровни доступа;
установленные пароли.
Это позволило сравнить структуры данных и понять принцип хранения информации.
Самое простое решение оказалось правильным
После анализа стало понятно, что нет необходимости подбирать пароли или искать сложные методы восстановления. Мы сделали резервную копию исходных данных. Подготовили проверенный конфигурационный файл. Аккуратно заменили данные пользователей. После чего получили доступ под известной учётной записью.
Далее всё было уже совсем просто:
вход в систему;
проверка настроек;
изменение пароля администратора;
документирование доступа.
Станок продолжил работать в штатном режиме.
Чему нас научила эта история
На первый взгляд история выглядит как забавный технический случай. Но на самом деле она показывает гораздо более важную тенденцию. Современное производственное оборудование всё больше становится программным продуктом.
Сегодня инженеру приходится разбираться не только в:
механике;
электронике;
приводах;
датчиках.
Но и в:
файловых системах;
конфигурационных файлах;
базах данных;
сетевых протоколах;
операционных системах.
Граница между инженером и IT-специалистом становится всё менее заметной.
Почему кооперация важнее импортозамещения
Последние годы часто говорят об импортозамещении. Но на практике не менее важна кооперация. Ни одна компания не может знать всё. Зато компании могут помогать друг другу опытом. В нашем случае именно обмен знаниями позволил решить задачу быстро и без риска для оборудования.
Вместо вывода
Иногда решение технической проблемы находится не в сервисной инструкции и не в официальной документации. Иногда достаточно внимательно посмотреть, как устроена система.
Инженерное любопытство, аккуратность и немного настойчивости по-прежнему остаются одними из самых ценных инструментов специалиста.
А ещё эта история лишний раз напоминает простое правило: важные пароли должны храниться в документации, а не только в памяти сотрудников.