Skip to content

Tutkis/codesys_password

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

codesys_password

Извлечение паролей пользователей проекта Codesys 2.3

На основании проведенного анализа был сделан выовод,что одинаковые проекты с разными паролями имеют разницу в полях в 3-х зонах:

  1. по адресу 162h 163h разные сигнатуры, зависящие от некоторых параметров файла
  2. в конце файла 4 байта (видимо CRC\контрольная сумма)
  3. в конце файла есть поля группового пароля состоящие из :
  • метки: Variable_Configuration;
  • затем после метки заглушка ff ff ff ff;
  • после этого следуют поля с значением (длина + 1) групповых паролей (в моем примере 0B=11, поэтому длина 10 символов);
  • затем метка 01h, после этого следует зашифрованный пароль;
  • паролей для других групп может быть больше, они разделены символом 01h (проверено для codesys 2.3);
  • конец поля пароля помечается подписью cd cd cd cd cd cd cd cd;

Пример:

56 61 72 69 61 62 6c 65 5f 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 00 00 09 00 00 00 ff ff ff ff 00 00 0b 00 00 00 01 94 97 96 91 90 93 92 9d 9c 95 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 08 00 00 00 00 00 00 cd cd cd cd cd cd cd cd

Где: 0b - длинна пароля 01 - метка начала пароля 94 97 96 91 90 93 92 9d 9c 95 - пароль в закодированом формате

Кодирование пароля заключается в проведении операции XOR A5h на шестнадцатиричном значении символа ASCII. Соответсвенно для декодирования необходимо провести XOR на каждом байте пароля, для получения его кода в таблице ASCII

Данный скрипт позволяет извлечь пароли для всех групп непосредствено из файла проекта .pro

About

Извлечение паролей пользователей проектов Codesys

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%