Как взломать защиту проекта PLC Allen-Bradley
Однажды нам понадобилось откорректировать проект PLC Allen Bradley.
Перейдем к сути. Из-за политики разработчика редактирование секций проекта запрещено. Компания поставщик оборудования считает, что внесение изменений в секции является нарушением норм безопасности и правил эксплуатации, поэтому защищает их от любого вмешательства.
Уточню, цели изменить логику проекта не было. Нужно было лишь создать несколько переменных для дальнейшего вывода на Панель Оператора. Но из-за блокировки редактирования нельзя даже заменить константу переменной. Именно поэтому появилось желание взломать защиту.
Как был выполнен взлом
Чтобы подключиться к контроллеру, мы выбрали RSLogix 5000 V19.01.00 (CPR 9 SR 3).
По серому фону редактора проекта можно понять, что редактирование секции недоступно.
Переходим в File, затем в Save as type, выбираем формат XML RSLogix 5000.L5X и сохраняем его, как на картинке:
Далее заходим в *.L5X через текстовый редактор, например, можно использовать Notepad++.
Копируем все данные и открываем онлайн дескриптор, ссылка на него: skdatmonster.github.io/DecryptSourceProtection/index.html. Копируем данные.
Важно! На копирование данных нужно время. Наш файл на 1.9 Мб скопировался всего буквально за полминуты.
После завершения копирования нужно нажать «Decrypt->».
Должно получиться примерно так, как на картинке. «Unpacked encoded data» указывает на неудачную попытку декриптирования. Прокручиваем немного вниз и видим то, что нам нужно – декриптированный ключ.
После этого можно убрать защиту с определенных элементов и приступить к редактированию.
Используя Notepad++, делаем файл sk.dat и вводим туда полученный нами ключ.
Переходим в Tools, затем в Security, и далее в Configure Source Protection, выбираем «Specify» и указываем нужный путь к файлу.
Дальше просто указываем все необходимые для изменения секции и подтверждаем нажатием на «Unprotect».
По мере разблокировки проекта Source Key и Viewable пропадают, тем самым, подтверждая успех наших действий. Такую операцию нужно проделать со всеми секциями, которые вы хотите отредактировать.
После этого в режиме онлайн подключаемся к контроллеру и выгружаем проект. Агрегат сам предложит выгрузить его, нам нужно только подтвердить действие.
Уже через несколько минут после завершения выгрузки открываем секцию, с которой до этого сняли защиту, и можем вносить необходимые изменения.
Как видите, фон редактора стал белым, а это значит, что элементы проекта доступны для редактирования.
Следует уточнить, что при последующем перемещении, а также удалении файла, в котором сохранен ключ для разблокировки секций проекта, ничего отредактировать не получился. То есть, придется заново повторить операцию и создать новый файл sk.dat по приведенному алгоритму.
Ирония судьбы
В итоге я обнаружил, что ключ и пароль для доступна к Панели Оператора системы управления отличались между собой всего одним символом – знаком подчеркивания. Совпадение это или «гениальная» задумка разработчика, не знаем.