Генерация пароля stu файла Unity Pro
Jul 18, 26
Содержимое STU файла
Файлы и форматы
Базы данных (.db, .ODB, .DB)
Все 18 файлов БД — формат eXcelon ObjectStore (ODB). Сигнатура: eXc\r\nelon\rdb\n. Проприетарная объектно-ориентированная БД платформы CODESYS/Schneider.
Открыть можно только через: EcoStruxure Control Expert / Unity Pro.
Нельзя открыть в DBeaver, Access, SQLite или любом SQL-клиенте.
| Файл |
Размер |
Назначение |
SLM.db |
25 MB |
Библиотека проекта (содержит FBD/LD/ST/SFC логику) |
XRefManager.db |
12 MB |
Перекрёстные ссылки переменных |
VariableManager.db |
7 MB |
Переменные/тэги |
ConfProject.db |
3 MB |
Конфигурация проекта |
FDTDTMMgr.db |
3 MB |
Менеджер DTM-устройств |
TypeManager.ODB |
2.3 MB |
Пользовательские типы (DDT) |
CfgX80.db |
1.3 MB |
Конфигурация M580/X80 |
PathBase.db |
960 KB |
Пути выполнения |
ASPROG.db |
340 KB |
Программа приложения |
ASROOT.db |
132 KB |
Корень приложения |
ATM.DB |
136 KB |
Таблица адресов |
DCM.DB |
120 KB |
Конфигурация устройств |
MotionManager.ODB |
80 KB |
Motion-конфигурация |
CFEthNetworkMgrBase.db |
116 KB |
Ethernet Network Manager |
CfgCanOpen.db |
104 KB |
CANopen конфигурация |
CfgQuantERIO.db |
188 KB |
Quantum ERIO конфигурация |
IOScreen.db |
112 KB |
IO Screen |
MGRCOMBase.db |
100 KB |
Communication Manager |
Файлы проекта (.stu, .BAK, .auto.sta)
| Расширение |
Формат |
Описание |
Чем открыть |
.stu |
ZIP-архив (содержит ASPROG.db) |
Файл проекта |
Control Expert / 7-Zip |
.BAK |
ZIP-архив (содержит ASPROG.db) |
Резервная копия |
Control Expert / 7-Zip |
.auto.sta |
ZIP-архив (содержит BinAppli/) |
Автосохранение |
Control Expert / 7-Zip |
UUID-подобные имена (например, 699ecf04-75ab-43d0-88ec-ab9111bbd81d.stu) — идентификаторы экземпляров проекта. Каждый проект имеет три состояния: текущее (.stu), бэкап (.BAK), автосохранение (.auto.sta).
Контекстные файлы (.CTX)
Бинарные файлы с UTF-16LE строками. Просмотр возможен в HEX-редакторе или как текст.
| Файл |
Содержимое |
STATION.CTX |
Параметры подключения к PLC (IP, таймауты, хэш пароля) |
OMCS.CTX |
Список компонентов проекта (GLOBAL, FCTMODULE, PROG, TYPE, CONF, и т.д.) |
FLAGS.CTX |
Флаги: сборка, online-изменения, safety, подключение |
XML-файлы
| Файл |
Описание |
props.xml |
Метаданные (название, версия ПО, тип PLC, автор) |
FDTDTMTopology.xml |
Полная топология устройств (45 KB, UTF-16LE) |
Project_Settings.xso |
184 настройки проекта |
Project_Definition.xpdf |
Зашифрован (Level 255) — основное содержимое |
DtmAuditRecord.xml / ThirdParty\DtmAuditRecord.xml |
Аудит DTM-устройств |
BinAppli — скомпилированные бинарники
| Файл |
Формат |
Сигнатура |
Размер |
Station.apx |
Application eXchange |
APX\0 |
1.3 MB |
Station.apb |
Application Binary |
APB\0 |
108 KB |
Station.apd |
Application Data |
APD\0 |
32 B |
CSAMOL.bin |
Индексная таблица |
*, |
122 B |
PreviousStation.apx |
Предыдущая версия APX |
APX\0 |
1.3 MB |
PreviousStation.apd |
Предыдущая версия APD |
APD\0 |
32 B |
Пароль проекта: хеширование
Схема
SHA-256(salt (8 байт) || пароль в UTF-16LE)
Значения из STATION.CTX
APPLICATION PWD: /xhgGghXFgI=
JZrTLPXGVYZZdKUcaeQDS+UmJC8Cne99rrZlY4uj9Y4=
| Компонент |
Base64 |
Hex |
| Соль (8 байт) |
/xhCJI... |
FF 18 42 24 .. |
| Хеш (32 байта) |
JZrTLP... |
25 9A D3 8E .. |
Проверка (Python)
import hashlib, base64
salt = base64.b64decode("/xhCJIKXFgI=")
target = base64.b64decode("JZrTLPXGVYHHdKUcaeQDS+UmJC8Cne99rrZlY4uj9Y4=")
password = "Password12345"
# SHA-256(salt || пароль в UTF-16LE)
h = hashlib.sha256(salt + password.encode("utf-16-le")).digest()
assert h == target # True
Особенности
- SHA-256 — односторонняя функция. Восстановить пароль из хеша математически невозможно.
- Единственный способ — перебор (брутфорс).
- Для коротких/простых паролей перебор быстр. Для сложных (
Password12345! = 14 символов) — практически нереален.
- Схема одинакова для всех версий Unity Pro / Control Expert.
Инструмент: chk_pass.py
Скрипт для проверки паролей проекта по списку кандидатов.
Ссылка на скрипт - chk_pass.py
Использование
# Проверка конкретных паролей
python chk_pass.py <папка_проекта> --try Password12345 Admin123
# Проверка из файла (по одному на строку)
python chk_pass.py <папка_проекта> --file passwords.txt
Алгоритм
- Открывает
STATION.CTX, ищет PWD, извлекает соль и хеш (Base64 → байты)
- Для каждого кандидата:
SHA-256(salt + candidate.encode('utf-16-le'))
- Сравнивает с эталонным хешем
- Выводит
[+] НАЙДЕН: ... или [-] N проверено — совпадений нет
Чем открывать: краткая сводка
| Что нужно увидеть |
Чем открыть |
| Настройки станции, топологию |
Блокнот / VS Code (XML читаемый, CTX — через HEX) |
| Содержимое .stu / .BAK |
7-Zip (внутри ASPROG.db в формате eXcelon ODB) |
| Базы данных (.db / .ODB) |
Только Control Expert — формат eXcelon ODB |
| Код программы (LD/FBD/ST/SFC) |
Только Control Expert — внутри SLM.db |
| Переменные / тэги |
Только Control Expert — внутри VariableManager.db |
| Пароль проекта |
chk_pass.py — проверка по списку кандидатов |