Як зламати захист проекту PLC Allen-Bradley,

Коротка передісторія
Протягом деякого часу використання однієї з систем управління тех. процесом виникла необхідність редакції проекту PLC. Так як, система була встановлена американською компанією, то проект був реалізований на контролері Allen Bradley, а саме 1756-L61. Збіг? Не думаю.

Хоча любов американців до Allen Bradley — це швидше просто моє спостереження. І ні в якому разі не реклама цього виробника контролерів.

Ближче до справи. Секції проекту були захищені від редагування, у зв'язку з «мудрої» політики розробника в стилі «Нічого не чіпайте, без нас! Це порушить стандарти безпеки експлуатації керованого агрегату. І т. д.»

Зізнаюся, ніхто не ставив перед собою мету змінювати технологічну логіку об'єкта.

Мова йшла тільки про створення пари-трійки змінних для подальшого виведення на Панель Оператора з можливістю зміни уставки.

Але захист не дозволяла навіть створити нову змінну замість константи. Тому бажання злому захисту захлеснуло повністю.

Приступимо
Для підключення до контролера використовував RSLogix 5000 V19.01.00 (CPR 9 SR 3).



Сірий фон редактора проекту показує заборона на редагування секції.

Заходимо File- > Save as… і зберігаємо файл у форматі XML RSLogix 5000 .L5X:



Відкриваємо збережений проект *.L5X в текстовому редакторі, наприклад, Notepad++.

Копіюємо вміст і переходимо на онлайн дескриптор: skdatmonster.github.io/DecryptSourceProtection/index.html. Вставляємо вміст в ліве вікно.

Увага! Копіювання може зайнятий деякий час. Очікуємо в передчутті. Мій файл розміром 1,9 MB: це зайняло близько 15-20 реальних секунд.



Скопировалось? Натискаємо «Decrypt->».

Отримуємо картинку, схожу з цієї. Де «Unpacked encoded data»- невдала спроба декриптирования. Скролим трохи нижче – Hallelujah! Ось він – декриптированный ключ.



Тепер ми готові перейти до другої частини, а саме, до зняття захисту з кожної секції проекту.

З допомогою Notepad++, створюємо файл розблокування sk.dat і вставляємо в нього вже відомий нам ключ зняття захисту проекту.

Заходимо в Tools -> Security ->Configure Source Protection. Натискаємо «Specify» і вибираємо шлях до нашого файлу sk.dat.



Далі, все ще простіше – вибираємо секцію проекту і натискаємо «Unprotect».



Атрибути Key Source і Viewable буду зникати, підтверджуючи факт розблокування секції. Таким чином, так робимо з кожної, цікавою для нас, в плані редагування секцією.

Підключаємося online до нашого контролера — він запропонує вивантажити проект. Погоджуємося.



І через пару хвилин після вивантаження проекту, заходимо в будь-яку секцію, з якої попередньо зняли захист. Вуаля!



Білий фон редактора коду проекту підтверджує нам, що тепер, ми можемо редагувати секцію. Мета досягнута.

У разі подальшого переміщення або видалення файлу з ключем зняття захисту проекту, редагування буде заборонено. Отже, вам доведеться повторити дії щодо створення нового файлу sk.dat.

Післямова
За іронією долі або, можливо, навіть з причини «буйної» фантазії розробника коду, в моєму випадку, ключ відрізнявся від пароля доступу до Панелі Оператора системи управління, всього лише на один символ. А саме — знак підкреслення.

Всім удачі!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.