01 / Это не «чуть-чуть телеметрии»
UniCore — один из самых раскрученных читов для Genshin, HSR, ZZZ, WuWa, Marvel Rivals, Snowbreak и других игр. За 300 рублей в день лаунчер, ещё до клика по продукту, выгружает на свой сервер:
- почту и имя из git-конфига;
- Steam: ID, ники, настройки автологина;
- Discord: ID, ник, аватар;
- токен стороннего аккаунта;
- AnyDesk: контакты, права доступа и лицензионные данные;
- Wi-Fi-сети вокруг с BSSID;
- историю файлов в IDA и проекты Visual Studio;
- список файлов на диске и возможность выкачать содержимое по команде сервера;
- список установленного софта и других читов;
- около 2 МБ дампов памяти системных модулей;
- HWID, включая TPM Endorsement Key.
Переключателя телеметрии в интерфейсе нет. Ни BSSID соседских роутеров, ни AnyDesk-права не нужны читу для запуска.
| Что слито | Зачем им | Что это значит |
|---|---|---|
| AnyDesk-конфиг | ? | Путь к удалённому управлению ПК |
| Wi-Fi BSSID | Геопривязка | Местоположение вплоть до дома |
ida_history | Анти-реверс | Список файлов, открытых в IDA |
vs_history | Профилирование | Проекты и папки с датами |
| Дампы DLL | Анти-хук | Образ системы в их базе |
02 / Что видно в расшифрованной сессии
Файл декрипта содержит 61 логическую запись. В каждой записи проверен флаг XOR_VERIFIED=True: тело снято с XOR-слоя, распаковано zlib и разобрано как FlatBuffers. Ниже — конкретные записи и номера строк исходного декрипта.
"users" "[REDACTED_STEAM_ID]" "AccountName" "[REDACTED]" "PersonaName" "[REDACTED]" "RememberPassword" "AllowAutoLogin" steam_vdf steam_account
Важен сам состав выгруженного loginusers.vdf: идентификатор, имя, ник и флаги автологина.
[user] name = [REDACTED] email = [REDACTED] [http] postBuffer = 524288000 version = HTTP/1.1 gitconfig
Лаунчер отправляет саму конфигурацию Git, а отдельной записью — сессионный токен стороннего аккаунта.
ad.invite.created_list_encrypted=[REDACTED] ad.invite.received_list_encrypted=[REDACTED] ad.license.cache=[REDACTED] ad.roster.items=[REDACTED] ad.security.permission_profiles.address_to_profile=[REDACTED]
В конфигурации присутствуют ключи лицензии, приглашений, контактов и профилей прав доступа.
| Запись | Тип и размер | Что видно в декрипте |
|---|---|---|
| OUT seq 298 строки 4039–4090 | 0x1AD9AE2B336 байт после inflate | Поле nvd_account и base64-строка с JSON стороннего аккаунта. Это сессионный токен, отправленный в расшифрованной записи. |
| OUT seq 298 строки 4039–4090 | 0x1AD9AE2B336 байт после inflate | Поле steam_vdf / steam_account; внутри — объект users с идентификатором, AccountName, PersonaName, RememberPassword и AllowAutoLogin. |
| OUT seq 315 строки 4118–4157 | 0x1AD9AE2B188 байт после inflate | Расшифрованный gitconfig: поля [user] name и email. В той же сессии отдельной записью отправлен сессионный токен стороннего аккаунта через поле nvd_account. |
| OUT seq 332 строки 4185–4740 | 0x1AD9AE2B10 080 байт после inflate | Полный набор ключей AnyDesk: ad.license.cache, списки приглашений, ad.roster.items, ad.security.permission_profiles.address_to_profile, настройки сессий и ad.telemetry.consent=0. |
| OUT seq 123 строки 257–262 | 0xFCEB329D43 616 байт после inflate | В распакованном теле присутствуют поля wifi_info, bssid, freq и signal. |
| OUT seq 418 / 597 | 0x423433E2 | Два бинарных аплоада: 993 232 и 1 014 792 байта — суммарно 2 008 024 байта. |
Важны не случайные строки из hex-дампа, а связка: номер записи → тип сообщения в заголовке →
XOR_VERIFIED=True → размер распакованного тела → распознанное поле или структура FlatBuffers.03 / «По запросу» — буквально
Это не односторонний слив. В расшифрованном обмене сервер сначала отправляет список модулей — ntdll.dll, kernel32.dll, advapi32.dll, user32.dll. Затем клиент молча снимает их дампы из памяти и отправляет около 2 МБ обратно.
- лаунчер шлёт «опрос»;
- сервер отвечает списком модулей;
- клиент снимает 108 и 119 регионов памяти;
- сервер получает 993 232 и 1 014 792 байта, подтверждает приём и присылает два PE-файла.
Архитектурно это управляемый сервером канал: сервер называет объект — клиент отдаёт содержимое. Клиент, который по команде сервера отдаёт куски чужого ПК, называется бэкдором, как его ни назови в маркетинге.
04 / Кто они
unicore.cloud и dash.unicore.cloud — Cloudflare-фронт. Клиентский протокол работает на голом IP 51.222.31.217:3333, VPS OVH в Канаде, без DNS и SNI. В свежем каталоге — HSR, Genshin, ZZZ, WuWa, Snowbreak, Marvel Rivals и ещё около двадцати продуктов.
05 / Протект, который не протект
WinLicense, VM-обфускация, RC4-оверлей и «собственная криптография» не пережили один вечер анализа.
| Их «секрет» | Реальность |
|---|---|
| WinLicense VM | NRv2E-стаб эмулируется Unicorn, арена дампится |
ecin + RC4 | 4-байтовый ключ брутфорсится за минуты по сигнатуре MZ |
| XOR-шифрование | Salsa20 + LCG: x*0x41C64E6D+0xCEAD |
| Сессионные ключи | Seed на сетке base + k*0x100, полный перебор около минуты |
| Закрытый протокол | 24-байтовый header, FlatBuffers → zlib → XOR → TLS |
После снятия протектора обмен с C2 читается и воспроизводится офлайн, побайтово, скриптом на Python.
06 / Хронология одного запуска
| Время | Что улетело |
|---|---|
| ~5 сек | Wi-Fi + BSSID, 43 КБ |
| ~15 сек | ida_history |
| ~18 сек | Токен nvd_account |
| ~21 сек | Steam loginusers |
| ~24 сек | gitconfig: имя и почта |
| ~27 сек | AnyDesk-конфиг, 10 КБ |
| ~30 сек | История Visual Studio |
| ~33 сек | Инвентарь ПО, 34 КБ |
| ~36 сек | Discord-аккаунт |
| ~40–75 сек | Два дампа памяти, около 2 МБ |
07 / Если вы запускали клиент
Считайте скомпрометированными почту из git-конфига, Steam, Discord, AnyDesk-профиль, сторонний аккаунт с утёкшим токеном и саму машину.
- смените пароли и завершите все активные сессии;
- в AnyDesk пересоздайте профиль и проверьте контакты и права;
- не запускайте лаунчер на машине с личными аккаунтами и рабочими файлами;
- для анализа используйте чистую ВМ или отдельную систему.
HWID и дампы уже могли попасть к оператору. После запуска нельзя считать систему прежней.
08 / Пруфы
Всё воспроизводится офлайн, без доступа к их серверу: XOR-слой seed → LCG → Salsa20; словарь типов сообщений из полного decode; SHA256 слитых пакетов; инструменты decode и брутфорса.
Вывод. Запуск лаунчера раскрывает оператору данные об аккаунтах, окружении и машине пользователя. Для работы чита этот объём сбора не требуется.
