Подробный гайд по rdpwrap.ini: структура, обновление, ручная настройка и диагностика

rdpwrap.ini — конфигурационный файл RDP Wrapper, позволяющий решать вопросы с ограничениями Windows на параллельные RDP-сессии и патчить termsrv.dll в памяти.

2026.05.10                  


Подробный гайд по rdpwrap.ini: структура, обновление, ручная настройка и диагностикаПодробный гайд по rdpwrap.ini: структура, обновление, ручная настройка и диагностика

Важно:

RDP Wrapper обходит ограничения Microsoft на хостинг RDP в домашних редакциях Windows и разрешает несколько одновременных сеансов. Использование может нарушать лицензионное соглашение (EULA) Windows и локальное законодательство. Используйте инструмент исключительно в образовательных, тестовых или личных целях на собственных устройствах. Разработчики оригинального проекта прекратили поддержку в 2019–2020 гг., но сообщество продолжает обновлять файлы конфигурации.


1. Что такое rdpwrap.ini и как он работает

rdpwrap.ini — это текстовый файл конфигурации, который говорит RDP Wrapper:

  • Для каких версий Windows и сборок termsrv.dll существуют патчи
  • По каким смещениям в памяти находятся байты, которые нужно изменить
  • Какие параметры сессий (макс. количество, idle-таймаут и т.д.) применять
  • Как обойти проверки лицензионной политики (SLPolicy)

Файл не патчит диск, а содержит карту смещений и байт-патчей, которые RDP Wrapper применяет в памяти при загрузке службы TermService.


2. Структура файла

[Main]
Updated=2024-11-15
LogFile=rdpwrap.log
HookMode=1

[SLPolicy]
TerminalServices-RemoteConnectionManager-AllowRemoteConnections=1
TerminalServices-RemoteConnectionManager-AllowMultipleSessions=1
TerminalServices-RemoteConnectionManager-MaxUserSessions=0
TerminalServices-RemoteConnectionManager-0000-0000-0000-0000=1
TerminalServices-DeviceRedirection-Licenses-TSEasyPrintAllowed=1
TerminalServices-DeviceRedirection-Licenses-PnpRedirectionAllowed=1

[SLPolicy.Windows.10]
...

[SLPolicy.Windows.11]
...

[Termsrv.10.0.19041.1]
LocalOnlyPatch.1=1
LocalOnlyOffset.1=123ABC
LocalOnlyCode.1=...
LocalOnlyData.1=...
SingleUserPatch.1=1
SingleUserOffset.1=...
SingleUserCode.1=...
SingleUserData.1=...
DefPolicyPatch.1=1
DefPolicyOffset.1=...
DefPolicyCode.1=...
DefPolicyData.1=...
SLPolicyHook.1=1
SLPolicyOffset.1=...
SLPolicyCode.1=...
SLPolicyData.1=...
DefPolicyMaxSessions=2
DefPolicyMinSessions=0
SingleSessionPatch=1
UserCount=2

Основные параметры секции [Termsrv.x.x]

Параметр Назначение
LocalOnlyPatch Разрешает подключения не только с localhost
SingleUserPatch Снимает ограничение на 1 сеанс
DefPolicyPatch Переопределяет политику лицензирования
SLPolicyHook Перехватывает проверки slc.dll/slcapi.dll
DefPolicyMaxSessions Максимальное количество одновременных сеансов
UserCount Сколько пользователей разрешено одновременно
Offset / Code / Data Смещение в termsrv.dll, оригинальный байт-код, патч

Точные смещения уникальны для каждой сборки Windows. Их нельзя угадать или перенести между версиями.


3. Где брать актуальный rdpwrap.ini

Официальный репозиторий stascorp/rdpwrap архивирован.

Актуальные файлы поддерживаются сообществом:

1. GitHub-форки (ищите по rdpwrap ini updated 2025/2026)
  • Пример: afeddersen/rdpwrap, rdpwrap-community, RDPWrap-Updated
2. Автоматические скрипты обновления
  • rdpwrap-check.bat или update-rdpwrap.ini (часто идут в архивах с RDP Wrapper)
3. Проверка подлинности
  • Сравнивайте хеш файла с указанием в репозитории
  • Никогда не запускайте .exe из непроверенных источников
  • Предпочитайте открытые репозитории с историей коммитов и issue-трекером

4. Пошаговая установка / обновление

Требования

  • Windows 10/11 (Home, Pro, Enterprise)
  • Отключённый Fast Startup (может мешать перезагрузке службы)
  • Административные права

Шаги

1. Определите точную версию Windows
   winver

Запишите номер сборки, например: 10.0.22631.3880

2. Скачайте актуальный rdpwrap.ini
  • Поместите в C:\Program Files\RDP Wrapper\
  • Сохраните кодировку UTF-8 without BOM
3. Перезапустите службу RDP
   net stop TermService /y
   net start TermService

Или используйте утилиту:

   RDPWInst.exe -r
4. Проверьте статус
  • Запустите RDPConf.exe (от имени администратора)
- Все индикаторы должны быть зелёными:
 - `[listener state]` → `listening`
 - `[termsrv.dll]` → `supported`
 - `[slpolicy]` → `not blocked`
5. Проверьте подключение
  • Запустите RDPCheck.exe или подключитесь с другого устройства
  • Для теста нескольких сеансов используйте разные учётные записи

5. Ручное добавление поддержки новой сборки

Если ваша версия Windows отсутствует в INI:

Вариант А: Автоматическое добавление

  1. Запустите RDPWInst.exe -w (режим "wait for update")
  2. Дождитесь, пока сообщество выпустит патч для вашей сборки
  3. Обновите INI через скрипт или вручную

Вариант Б: Ручное извлечение смещений (для продвинутых)

  1. Скачайте termsrv.dll из C:\Windows\System32\
  2. Используйте x64dbg или Ghidra для анализа
3. Найдите строки:
  • LocalOnly → патч на mov eax, 1
  • SingleUser → отключение проверки 1 сеанса
  • DefPolicy → обход лицензионных проверок
  • SLPolicy → перехват SslPolicyCheck
    1. Запишите смещения и байты в INI по формату выше
    2. Протестируйте через RDPConf.exe

Ошибка в смещении приведёт к краху svchost.exe или синему экрану. Начинайте с готовых INI.


6. Диагностика проблем

Симптомы Причина Решение
[listener state] not listening Служба не запущена или порт 3389 занят netstat -ano | findstr :3389, очистите порт, перезапустите службу
[termsrv.dll] mismatch Сборка не прописана в INI или Windows обновилась Скачайте свежий INI, проверьте winver
[slpolicy] blocked Антивирус/EDR блокирует перехват, или INI устарел Добавьте RDP Wrapper в исключения, обновите INI
Сессия закрывается сразу Конфликт с RDP Shadow, NLA или групповыми политиками Отключите NLA в sysdm.cpl → Удалённый доступ, проверьте GPO
Не работает несколько сеансов SingleSessionPatch=0 или DefPolicyMaxSessions не задан Проверьте секцию вашей сборки в INI

Логи

  • Включите логирование в [Main]: LogFile=rdpwrap.log
  • Логи пишутся в C:\Program Files\RDP Wrapper\ или %SystemRoot%\Temp\
  • Ищите строки Patch applied, Hook installed, Error at offset

7. Безопасность и легальность

  • Лицензия: Microsoft разрешает RDP-хост только в Pro/Enterprise. Обход ограничений в Home-редакции может считаться нарушением EULA.
  • Безопасность: Непроверенные INI-файлы могут содержать вредоносные смещения или бэкдоры. Всегда проверяйте репозиторий, хеши и комментарии.
  • Сеть: Открывайте порт 3389 только через strong password + NLA. RDP без защиты часто атакуется ботами.
  • Обновления Windows: Кумулятивные обновления часто ломают RDP Wrapper. Делайте точку восстановления перед установлением обновлений.

8. Полезные команды

# Проверка состояния службы
sc query TermService

# Перезапуск службы RDP Wrapper
RDPWInst.exe -r

# Автоматическое обновление INI (если есть скрипт)
update-rdpwrap.bat

# Проверка открытых портов
netstat -ano | findstr :3389

# Просмотр логов RDP Wrapper
type "C:\Program Files\RDP Wrapper\rdpwrap.log"

Заключение

rdpwrap.ini — это карта совместимости, а не патч. Его задача: сообщить RDP Wrapper, где и что менять в памяти для конкретной сборки termsrv.dll.

Для 95% пользователей достаточно:

  1. Узнать версию Windows
  2. Скачать проверенный актуальный INI
  3. Заменить файл
  4. Перезапустить службу
  5. Проверить статус в RDPConf.exe

Ручная правка смещений требуется редко и требует навыков реверс-инжиниринга. При проблемах всегда начинайте с логов и проверки версии сборки.