Однажды нам понадобилось откорректировать  проект PLC Allen Bradley. 

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

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

Как был выполнен взлом

Чтобы подключиться к контроллеру, мы выбрали RSLogix 5000 V19.01.00 (CPR 9 SR 3).

 RSLogix 5000 V19.01.00 (CPR 9 SR 3)

По серому фону редактора проекта можно понять, что редактирование секции недоступно.

Переходим в File, затем в Save as type, выбираем формат XML RSLogix 5000.L5X и сохраняем его, как на картинке:

 XML RSLogix 5000.L5X

Далее заходим в *.L5X через текстовый редактор, например, можно использовать Notepad++.

Копируем все данные и открываем онлайн дескриптор, ссылка на него: skdatmonster.github.io/DecryptSourceProtection/index.html. Копируем данные.

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

 Мой файл на 1.9 Мб

После завершения копирования нужно нажать «Decrypt->».

Должно получиться примерно так, как на картинке. «Unpacked encoded data» указывает на неудачную попытку декриптирования. Прокручиваем немного вниз и видим то, что нам нужно – декриптированный ключ.

декриптированный ключ 

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

Используя Notepad++, делаем файл sk.dat и вводим туда полученный нами ключ.

Переходим в Tools, затем в Security, и далее в Configure Source Protection, выбираем «Specify» и указываем нужный путь к файлу.

 Configure Source Protection

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

*.L5X через текстовый редактор

По мере разблокировки проекта Source Key и Viewable пропадают, тем самым, подтверждая успех наших действий. Такую операцию нужно проделать со всеми секциями, которые вы хотите отредактировать.

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

 открываем секцию, с которой до этого сняли защиту

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

фон редактора стал белым

Как видите, фон редактора стал белым, а это значит, что элементы проекта доступны для редактирования.

Следует уточнить, что при последующем перемещении, а также удалении файла, в котором сохранен ключ для разблокировки секций проекта, ничего отредактировать не получился. То есть, придется заново повторить операцию и создать новый файл sk.dat по приведенному алгоритму.

Ирония судьбы

В итоге я обнаружил, что ключ и пароль для доступна к Панели Оператора системы управления отличались между собой всего одним символом – знаком подчеркивания. Совпадение это или «гениальная» задумка разработчика, не знаем.