Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Valorant: Разбор LocalVanguardSDK и имитация VGC через Named Pipes

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
537
Реакции
14
Сразу на берегу: пост технический, если вы не понимаете разницу между пайпами и сокетами — проходите мимо. Это НЕ обход античита для игры в ранкеде. Если попытаетесь зайти в Premier или обычный матч, получите VAN 5 быстрее, чем загрузится карта.

Копался в реверсе и декомпиле и наткнулся на интересную логику взаимодействия игр Riot с их античитом. В бинарнике живет так называемый LocalVanguardSDK. Он общается с процессом vgc, чтобы чекать статус, создавать сессии и стопать их. Выяснилось, что игру можно запустить вообще без установленного Вангарда. Достаточно создать «зомби-сервис» vgc, прописать его в службах и поднять Named Pipe с тем же именем, которое использует оригинал.

Вот основной кусок магии, который кочует из одного проекта Риотов в другой:

Код:
Expand Collapse Copy
void *v93;
_SERVICE_STATUS ServiceStatus;
v5 = a1;
sub_1415420A0();
if ( !*(_BYTE *)(v5 + 8) ) goto LABEL_31;
*a3 = 0;
v6 = OpenSCManagerW(0LL, 0LL, 1u);
// ... проверка состояния vgc ...
v11 = OpenServiceW(v6, L"vgc", 0x14u);
// ... коннект к пайпе ...
FileW = CreateFileW(L"\\\\.\\pipe\\933823D3-C77B-4BAE-89D7-A92B567236BC", 0xC0000000, 0, 0LL, 3u, 0, 0LL);

Техническая база:

  1. Игра через стандартные API винды (Service Control Manager) проверяет, жива ли служба vgc.
  2. Если службы нет, она пытается ее стартануть. Ошибки типа -81 или -83 — это как раз провал на этом этапе.
  3. После старта игра ломится в Named Pipe: 933823D3-C77B-4BAE-89D7-A92B567236BC. Пайпы юзаются для IPC — это быстрее и скрытнее, чем локалхост.
  4. В этот канал летят логин, ID и домен (vanguard.accessurl в конфигах). В ответ vgc присылает статус (бан по железу HWID 152, статус PCbang и прочее).
  5. Главное — это heartbeat. Постоянный обмен пакетами, подтверждающий, что линк не упал.

Зачем это нужно?

Если поднять фейковый vgc.exe, который будет хостить пайпу и просто зеркалить (echo) третье входящее сообщение, игра подумает, что всё ок. Никаких ошибок VAN при запуске. Это маст-хэв для:

  1. Дебага API через Fiddler или Charles (можно спокойно вешать прокси и смотреть трафик).
  2. Оффлайн-режимов (актуально для той же 2XKO, где Vanguard не должен мешать локальному файтингу).
  3. Реверса игровых механик без риска получить бан за аттач дебаггера к защищенному процессу.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.


Логика простая: пишем на C# или C++ загрузчик, который регистрирует бинарник «пустышку» как службу vgc, эмулирует протокол пайпы и запускает саму игру. Исходники такого добра часто светятся на гитхабе под именами FakeVgc и Launcher. Компилить строго в Visual Studio, никаких готовых экзешников не дам — берегите свои вирты и не ловите ратники.

Дисклеймер: в League of Legends при такой схеме вас просто кикнет из выбора чемпионов с ошибкой 2266 (сервер не видит сессию античита). В Валоранте — инстант бан аккаунта при попытке поиска игры. Используйте голову.

Скоро допилю DLL для отключения SSL pinning в Valorant, чтобы митмить эндпоинты было еще проще.
 
Назад
Сверху Снизу