Подробный гайд по 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:
Вариант А: Автоматическое добавление
- Запустите
RDPWInst.exe -w(режим "wait for update") - Дождитесь, пока сообщество выпустит патч для вашей сборки
- Обновите INI через скрипт или вручную
Вариант Б: Ручное извлечение смещений (для продвинутых)
- Скачайте
termsrv.dllизC:\Windows\System32\ - Используйте
x64dbgилиGhidraдля анализа
3. Найдите строки:
LocalOnly→ патч наmov eax, 1SingleUser→ отключение проверки 1 сеансаDefPolicy→ обход лицензионных проверокSLPolicy→ перехватSslPolicyCheck- Запишите смещения и байты в INI по формату выше
- Протестируйте через
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% пользователей достаточно:
- Узнать версию Windows
- Скачать проверенный актуальный INI
- Заменить файл
- Перезапустить службу
- Проверить статус в
RDPConf.exe
Ручная правка смещений требуется редко и требует навыков реверс-инжиниринга. При проблемах всегда начинайте с логов и проверки версии сборки.