Генерация пароля 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

Алгоритм

  1. Открывает STATION.CTX, ищет PWD, извлекает соль и хеш (Base64 → байты)
  2. Для каждого кандидата: SHA-256(salt + candidate.encode('utf-16-le'))
  3. Сравнивает с эталонным хешем
  4. Выводит [+] НАЙДЕН: ... или [-] 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 — проверка по списку кандидатов