From a3cd8ca630190c890109940151290daafe4daf38 Mon Sep 17 00:00:00 2001 From: Stanislav Motylkov Date: Thu, 28 Dec 2017 00:04:36 +0300 Subject: [PATCH 01/13] README: Update changelog for v1.6.2 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index ee2b5d5..9f3d379 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,17 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh ### Change log: +#### 2017.12.27 +- Version 1.6.2 +- Installer updated +- Include updated INI file for latest Windows builds +- Added check for supported Windows versions ([#155](https://github.com/stascorp/rdpwrap/issues/155)) +- Added feature to take INI file from current directory ([#300](https://github.com/stascorp/rdpwrap/issues/300)) +- Added feature to restore rfxvmt.dll (missing in Windows 10 Home [#194](https://github.com/stascorp/rdpwrap/issues/194)) +- RDP Config updated +- Added feature to allow custom start programs ([#13 (comment)](https://github.com/stascorp/rdpwrap/issues/13#issuecomment-77651843)) +- MSI installation package added ([#14](https://github.com/stascorp/rdpwrap/issues/14)) + #### 2016.08.01 - Version 1.6.1 - Include updated INI file for latest Windows builds From 56915ccf5b5145e56f224da9e9e3dc9b0c7e09a6 Mon Sep 17 00:00:00 2001 From: Jim Yang Date: Sun, 15 Apr 2018 17:51:57 +0800 Subject: [PATCH 02/13] Allow UDP 3389 at firewall configuration --- res/legacy.install.bat | 3 ++- src-installer/RDPWInst.dpr | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/res/legacy.install.bat b/res/legacy.install.bat index a7d8de2..303cc32 100644 --- a/res/legacy.install.bat +++ b/res/legacy.install.bat @@ -50,6 +50,7 @@ if not !errorlevel!==0 ( echo [*] Setting firewall configuration... reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=tcp localport=3389 profile=any action=allow +netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=udp localport=3389 profile=any action=allow echo [*] Looking for TermService PID... tasklist /SVC /FI "SERVICES eq TermService" | find "PID" /V echo. @@ -88,4 +89,4 @@ echo net start Service2 echo etc. goto END -:END \ No newline at end of file +:END diff --git a/src-installer/RDPWInst.dpr b/src-installer/RDPWInst.dpr index 7894f3b..b6c2462 100644 --- a/src-installer/RDPWInst.dpr +++ b/src-installer/RDPWInst.dpr @@ -978,8 +978,10 @@ end; procedure TSConfigFirewall(Enable: Boolean); begin if Enable then - ExecWait('netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=tcp localport=3389 profile=any action=allow') - else + begin + ExecWait('netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=tcp localport=3389 profile=any action=allow'); + ExecWait('netsh advfirewall firewall add rule name="Remote Desktop" dir=in protocol=udp localport=3389 profile=any action=allow'); + end else ExecWait('netsh advfirewall firewall delete rule name="Remote Desktop"'); end; From 7dc8817de9f3363450f5cc04d1b0a8ce3020ee11 Mon Sep 17 00:00:00 2001 From: 1nd1g0 <2098540+1nd1g0@users.noreply.github.com> Date: Mon, 26 Mar 2018 16:35:06 +0300 Subject: [PATCH 03/13] INI: Add support for new builds 6.3.9600.18928 (fix #418) --- README.md | 1 + res/rdpwrap-ini-kb.txt | 51 +++++++++++++++++++++++++++++++++++++++++- res/rdpwrap.ini | 47 +++++++++++++++++++++++++++++++++++++- technical.txt | 4 ++++ 4 files changed, 101 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f3d379..6c18f1f 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 6.3.9600.17415 (Windows 8.1 with KB3000850) - 6.3.9600.18692 (Windows 8.1 with KB4022720) - 6.3.9600.18708 (Windows 8.1 with KB4025335) +- 6.3.9600.18928 (Windows 8.1 with KB4088876) - 6.4.9841.0 (Windows 10 Technical Preview) - 6.4.9860.0 (Windows 10 Technical Preview Update 1) - 6.4.9879.0 (Windows 10 Technical Preview Update 2) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index 0a03e8d..d1a4707 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2017-12-27 +Updated=2018-03-26 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -1185,6 +1185,36 @@ SLInitHook.x64=1 SLInitOffset.x64=5DB70 SLInitFunc.x64=New_CSLQuery_Initialize +[6.3.9600.18928] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=B39D8 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8B25D +LocalOnlyCode.x64=nopjmp +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=37D25 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=36C09 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=3D6F9 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=45495 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=18328 +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=5D830 +SLInitFunc.x64=New_CSLQuery_Initialize + [6.4.9841.0] ; Patch CEnforcementCore::GetInstanceOfTSLicense ; .text:1009569B call sub_100B7EE5 @@ -4078,6 +4108,25 @@ bServerSku.x64 =FA068 ulMaxDebugSessions.x64=FA06C bRemoteConnAllowed.x64=FA070 +[6.3.9600.18928-SLInit] +bFUSEnabled.x86 =D3068 +lMaxUserSessions.x86 =D306C +bAppServerAllowed.x86 =D3070 +bInitialized.x86 =D3074 +bMultimonAllowed.x86 =D3078 +bServerSku.x86 =D307C +ulMaxDebugSessions.x86=D3080 +bRemoteConnAllowed.x86=D3084 + +bFUSEnabled.x64 =FA054 +lMaxUserSessions.x64 =FA058 +bAppServerAllowed.x64 =FA05C +bInitialized.x64 =FA060 +bMultimonAllowed.x64 =FA064 +bServerSku.x64 =FA068 +ulMaxDebugSessions.x64=FA06C +bRemoteConnAllowed.x64=FA070 + [6.4.9841.0-SLInit] bFUSEnabled.x86 =BF9F0 lMaxUserSessions.x86 =BF9F4 diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index 44d7074..67cca07 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2017-12-27 +Updated=2018-03-26 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -480,6 +480,32 @@ SLInitHook.x64=1 SLInitOffset.x64=5DB70 SLInitFunc.x64=New_CSLQuery_Initialize +[6.3.9600.18928] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=B39D8 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8B25D +LocalOnlyCode.x64=nopjmp +SingleUserPatch.x86=1 +SingleUserOffset.x86=37D25 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=36C09 +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=3D6F9 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=45495 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=18328 +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=5D830 +SLInitFunc.x64=New_CSLQuery_Initialize + [6.4.9841.0] LocalOnlyPatch.x86=1 LocalOnlyOffset.x86=956A8 @@ -2844,6 +2870,25 @@ bServerSku.x64 =FA068 ulMaxDebugSessions.x64=FA06C bRemoteConnAllowed.x64=FA070 +[6.3.9600.18928-SLInit] +bFUSEnabled.x86 =D3068 +lMaxUserSessions.x86 =D306C +bAppServerAllowed.x86 =D3070 +bInitialized.x86 =D3074 +bMultimonAllowed.x86 =D3078 +bServerSku.x86 =D307C +ulMaxDebugSessions.x86=D3080 +bRemoteConnAllowed.x86=D3084 + +bFUSEnabled.x64 =FA054 +lMaxUserSessions.x64 =FA058 +bAppServerAllowed.x64 =FA05C +bInitialized.x64 =FA060 +bMultimonAllowed.x64 =FA064 +bServerSku.x64 =FA068 +ulMaxDebugSessions.x64=FA06C +bRemoteConnAllowed.x64=FA070 + [6.4.9841.0-SLInit] bFUSEnabled.x86 =BF9F0 lMaxUserSessions.x86 =BF9F4 diff --git a/technical.txt b/technical.txt index 187251c..90aa08d 100644 --- a/technical.txt +++ b/technical.txt @@ -55,6 +55,7 @@ Terminal Services supported versions 6.3.9600.17415 (Windows 8.1 with KB3000850) [init hook + extended patch] 6.3.9600.18692 (Windows 8.1 with KB4022720) [init hook + extended patch] 6.3.9600.18708 (Windows 8.1 with KB4025335) [init hook + extended patch] +6.3.9600.18928 (Windows 8.1 with KB4088876) [init hook + extended patch] 6.4.9841.0 (Windows 10 Technical Preview) [init hook + extended patch] 6.4.9860.0 (Windows 10 Technical Preview UP1) [init hook + extended patch] 6.4.9879.0 (Windows 10 Technical Preview UP2) [init hook + extended patch] @@ -152,6 +153,9 @@ Terminal Services supported versions Source code changelog (rdpwrap library): +2018.03.26 : +- added support for termsrv.dll 6.3.9600.18928 by 1nd1g0 + 2017.12.27 : - added support for termsrv.dll 10.0.17017.1000 - added support for termsrv.dll 10.0.17025.1000 From 560c5a7b45b0db7047cc948125b7fe5e7123661d Mon Sep 17 00:00:00 2001 From: Stas'M Date: Wed, 16 May 2018 12:40:21 +0300 Subject: [PATCH 04/13] INI: Add support for new builds 10.0.17128.1 10.0.17133.1 (fix #442) 10.0.17134.1 (fix #456) --- README.md | 3 + res/rdpwrap-ini-kb.txt | 149 ++++++++++++++++++++++++++++++++++++++++- res/rdpwrap.ini | 137 ++++++++++++++++++++++++++++++++++++- technical.txt | 12 ++++ 4 files changed, 299 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6c18f1f..1f8aa34 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,9 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.17035.1000 (Windows 10 Build 160101.0800) - 10.0.17046.1000 (Windows 10 Build 160101.0800) - 10.0.17063.1000 (Windows 10 Build 160101.0800) +- 10.0.17128.1 (Windows 10 Build 160101.0800) +- 10.0.17133.1 (Windows 10 Build 160101.0800) +- 10.0.17134.1 (Windows 10 Build 160101.0800) #### Confirmed working on: - Windows Vista Starter (x86 - Service Pack 1 and higher) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index d1a4707..e7f5bf4 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2018-03-26 +Updated=2018-05-16 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -3961,6 +3961,96 @@ SLInitHook.x64=1 SLInitOffset.x64=2318C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17128.1] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17133.1] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17134.1] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + [SLInit] ; Is server bServerSku=1 @@ -5763,3 +5853,60 @@ bRemoteConnAllowed.x64=F2434 bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 + +[10.0.17128.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + +[10.0.17133.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + +[10.0.17134.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index 67cca07..4728fe2 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2018-03-26 +Updated=2018-05-16 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -2746,6 +2746,84 @@ SLInitHook.x64=1 SLInitOffset.x64=2318C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17128.1] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17133.1] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17134.1] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E7E +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + [SLInit] bServerSku=1 bRemoteConnAllowed=1 @@ -4524,3 +4602,60 @@ bRemoteConnAllowed.x64=F2434 bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 + +[10.0.17128.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + +[10.0.17133.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + +[10.0.17134.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 diff --git a/technical.txt b/technical.txt index 90aa08d..5cd8262 100644 --- a/technical.txt +++ b/technical.txt @@ -120,6 +120,7 @@ Terminal Services supported versions 10.0.15061.0 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.0 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.296 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.15063.994 (Windows 10 WinBuild.160101.0800) [todo] 10.0.16179.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16184.1001 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16199.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] @@ -150,9 +151,20 @@ Terminal Services supported versions 10.0.17040.1000 (Windows 10 WinBuild.160101.0800) [todo] 10.0.17046.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17063.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.17074.1002 (Windows 10 WinBuild.160101.0800) [todo] +10.0.17083.1000 (Windows 10 WinBuild.160101.0800) [todo] +10.0.17115.1 (Windows 10 WinBuild.160101.0800) [todo] +10.0.17128.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.17133.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.17134.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] Source code changelog (rdpwrap library): +2018.05.16 : +- added support for termsrv.dll 10.0.17128.1 +- added support for termsrv.dll 10.0.17133.1 +- added support for termsrv.dll 10.0.17134.1 + 2018.03.26 : - added support for termsrv.dll 6.3.9600.18928 by 1nd1g0 From 2df3a7495877f0a6a3ad1892aaf7391a6e1ec008 Mon Sep 17 00:00:00 2001 From: Stas'M Date: Wed, 16 May 2018 17:14:17 +0300 Subject: [PATCH 05/13] Installer: Grant access to system and services (fix #391) --- src-installer/RDPWInst.dpr | 62 +++++++++++++++++++++++++++++++++---- src-installer/resource.res | Bin 1141176 -> 1141176 bytes 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/src-installer/RDPWInst.dpr b/src-installer/RDPWInst.dpr index b6c2462..6c95f3f 100644 --- a/src-installer/RDPWInst.dpr +++ b/src-installer/RDPWInst.dpr @@ -1,5 +1,5 @@ { - Copyright 2017 Stas'M Corp. + Copyright 2018 Stas'M Corp. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,9 @@ uses Classes, WinSvc, Registry, - WinInet; + WinInet, + AccCtrl, + AclAPI; function EnumServicesStatusEx( hSCManager: SC_HANDLE; @@ -41,6 +43,11 @@ function EnumServicesStatusEx( pszGroupName: PWideChar): BOOL; stdcall; external advapi32 name 'EnumServicesStatusExW'; +function ConvertStringSidToSid( + StringSid: PWideChar; + var Sid: PSID): BOOL; stdcall; + external advapi32 name 'ConvertStringSidToSidW'; + type FILE_VERSION = record Version: record case Boolean of @@ -639,14 +646,57 @@ begin Result := True; end; +procedure GrantSidFullAccess(Path, SID: String); +var + p_SID: PSID; + pDACL: PACL; + EA: EXPLICIT_ACCESS; + Code, Result: DWORD; +begin + p_SID := nil; + if not ConvertStringSidToSid(PChar(SID), p_SID) then + begin + Code := GetLastError; + Writeln('[-] ConvertStringSidToSid error (code ', Code, ').'); + Exit; + end; + EA.grfAccessPermissions := GENERIC_ALL; + EA.grfAccessMode := GRANT_ACCESS; + EA.grfInheritance := SUB_CONTAINERS_AND_OBJECTS_INHERIT; + EA.Trustee.pMultipleTrustee := nil; + EA.Trustee.MultipleTrusteeOperation := NO_MULTIPLE_TRUSTEE; + EA.Trustee.TrusteeForm := TRUSTEE_IS_SID; + EA.Trustee.TrusteeType := TRUSTEE_IS_WELL_KNOWN_GROUP; + EA.Trustee.ptstrName := p_SID; + + Result := SetEntriesInAcl(1, @EA, nil, pDACL); + if Result = ERROR_SUCCESS then + begin + if SetNamedSecurityInfo(pchar(Path), SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, pDACL, nil) <> ERROR_SUCCESS then + begin + Code := GetLastError; + Writeln('[-] SetNamedSecurityInfo error (code ', Code, ').'); + end; + LocalFree(Cardinal(pDACL)); + end + else begin + Code := GetLastError; + Writeln('[-] SetEntriesInAcl error (code ', Code, ').'); + end; +end; + procedure ExtractFiles; var RDPClipRes, RfxvmtRes, S: String; OnlineINI: TStringList; begin if not DirectoryExists(ExtractFilePath(ExpandPath(WrapPath))) then - if ForceDirectories(ExtractFilePath(ExpandPath(WrapPath))) then - Writeln('[+] Folder created: ', ExtractFilePath(ExpandPath(WrapPath))) + if ForceDirectories(ExtractFilePath(ExpandPath(WrapPath))) then begin + S := ExtractFilePath(ExpandPath(WrapPath)); + Writeln('[+] Folder created: ', S); + GrantSidFullAccess(S, 'S-1-5-18'); // Local System account + GrantSidFullAccess(S, 'S-1-5-6'); // Service group + end else begin Writeln('[-] ForceDirectories error.'); Writeln('[*] Path: ', ExtractFilePath(ExpandPath(WrapPath))); @@ -1080,8 +1130,8 @@ var I: Integer; begin Writeln('RDP Wrapper Library v1.6.2'); - Writeln('Installer v2.5'); - Writeln('Copyright (C) Stas''M Corp. 2017'); + Writeln('Installer v2.6'); + Writeln('Copyright (C) Stas''M Corp. 2018'); Writeln(''); if (ParamCount < 1) diff --git a/src-installer/resource.res b/src-installer/resource.res index 920430a6fb08f9d1ccb7d975d05e2d3f7906edbc..0e896e17aa6e2955b771c842c29ed61cd1507eb7 100644 GIT binary patch delta 71 zcmV-N0J#6S(?z(`MSz3>gaU*Egam{Iga(8Mgb0KQgbIWUgbaiYgbsucgb=h5;A8;? dx8YgaU*Egam{Iga(8Mgb0KQgbIWUgbaiYgbsucgb=h5;A8;> dx8Y Date: Wed, 16 May 2018 18:43:14 +0300 Subject: [PATCH 06/13] INI: Fix bug in DefPolicy patch (fix #486) --- res/rdpwrap-ini-kb.txt | 13 +++++++------ res/rdpwrap.ini | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index e7f5bf4..9c7270a 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -53,6 +53,7 @@ CDefPolicy_Query_eax_rdi=B80001000089873806000090 CDefPolicy_Query_eax_ecx=B80001000089812003000090 CDefPolicy_Query_eax_ecx_jmp=B800010000898120030000EB0E CDefPolicy_Query_eax_rcx=B80001000089813806000090 +CDefPolicy_Query_edi_rcx=BF0001000089B938060000909090 [6.0.6000.16386] ; HOW TO search CSessionArbitrationHelper::IsSingleSessionPerUserEnabled function in IDA Pro: @@ -3981,8 +3982,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx ; Hook CSLQuery::Initialize SLInitHook.x86=1 SLInitOffset.x86=474AD @@ -4011,8 +4012,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx ; Hook CSLQuery::Initialize SLInitHook.x86=1 SLInitOffset.x86=474AD @@ -4041,8 +4042,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx ; Hook CSLQuery::Initialize SLInitHook.x86=1 SLInitOffset.x86=474AD diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index 4728fe2..cc5ded5 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -35,6 +35,7 @@ CDefPolicy_Query_eax_rdi=B80001000089873806000090 CDefPolicy_Query_eax_ecx=B80001000089812003000090 CDefPolicy_Query_eax_ecx_jmp=B800010000898120030000EB0E CDefPolicy_Query_eax_rcx=B80001000089813806000090 +CDefPolicy_Query_edi_rcx=BF0001000089B938060000909090 [6.0.6000.16386] SingleUserPatch.x86=1 @@ -2763,8 +2764,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx SLInitHook.x86=1 SLInitOffset.x86=474AD SLInitFunc.x86=New_CSLQuery_Initialize @@ -2789,8 +2790,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx SLInitHook.x86=1 SLInitOffset.x86=474AD SLInitFunc.x86=New_CSLQuery_Initialize @@ -2815,8 +2816,8 @@ DefPolicyPatch.x86=1 DefPolicyOffset.x86=33569 DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 -DefPolicyOffset.x64=10E7E -DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx SLInitHook.x86=1 SLInitOffset.x86=474AD SLInitFunc.x86=New_CSLQuery_Initialize From 65b19543f4d6f94cc444cf07e0f497fddd23dda2 Mon Sep 17 00:00:00 2001 From: Stas'M Date: Wed, 16 May 2018 19:26:57 +0300 Subject: [PATCH 07/13] INI: Add support for new builds 10.0.17115.1 (fix #424) --- README.md | 1 + res/rdpwrap-ini-kb.txt | 49 ++++++++++++++++++++++++++++++++++++++++++ res/rdpwrap.ini | 45 ++++++++++++++++++++++++++++++++++++++ technical.txt | 3 ++- 4 files changed, 97 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f8aa34..999d27e 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.17035.1000 (Windows 10 Build 160101.0800) - 10.0.17046.1000 (Windows 10 Build 160101.0800) - 10.0.17063.1000 (Windows 10 Build 160101.0800) +- 10.0.17115.1 (Windows 10 Build 160101.0800) - 10.0.17128.1 (Windows 10 Build 160101.0800) - 10.0.17133.1 (Windows 10 Build 160101.0800) - 10.0.17134.1 (Windows 10 Build 160101.0800) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index 9c7270a..4f9c24f 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -3962,6 +3962,36 @@ SLInitHook.x64=1 SLInitOffset.x64=2318C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17115.1] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.17128.1] ; Patch CEnforcementCore::GetInstanceOfTSLicense LocalOnlyPatch.x86=1 @@ -5855,6 +5885,25 @@ bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 +[10.0.17115.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + [10.0.17128.1-SLInit] bInitialized.x86 =CBF38 bServerSku.x86 =CBF3C diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index cc5ded5..56c822e 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2747,6 +2747,32 @@ SLInitHook.x64=1 SLInitOffset.x64=2318C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17115.1] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AD738 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=925D1 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=36B0C +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1511C +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=33569 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=10E78 +DefPolicyCode.x64=CDefPolicy_Query_edi_rcx +SLInitHook.x86=1 +SLInitOffset.x86=474AD +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=22E6C +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.17128.1] LocalOnlyPatch.x86=1 LocalOnlyOffset.x86=AD738 @@ -4604,6 +4630,25 @@ bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 +[10.0.17115.1-SLInit] +bInitialized.x86 =CBF38 +bServerSku.x86 =CBF3C +lMaxUserSessions.x86 =CBF40 +bAppServerAllowed.x86 =CBF44 +bRemoteConnAllowed.x86=CBF48 +bMultimonAllowed.x86 =CBF4C +ulMaxDebugSessions.x86=CBF50 +bFUSEnabled.x86 =CBF54 + +bServerSku.x64 =F1378 +lMaxUserSessions.x64 =F137C +bAppServerAllowed.x64 =F1380 +bInitialized.x64 =F2430 +bRemoteConnAllowed.x64=F2434 +bMultimonAllowed.x64 =F2438 +ulMaxDebugSessions.x64=F243C +bFUSEnabled.x64 =F2440 + [10.0.17128.1-SLInit] bInitialized.x86 =CBF38 bServerSku.x86 =CBF3C diff --git a/technical.txt b/technical.txt index 5cd8262..d1735ba 100644 --- a/technical.txt +++ b/technical.txt @@ -153,7 +153,7 @@ Terminal Services supported versions 10.0.17063.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17074.1002 (Windows 10 WinBuild.160101.0800) [todo] 10.0.17083.1000 (Windows 10 WinBuild.160101.0800) [todo] -10.0.17115.1 (Windows 10 WinBuild.160101.0800) [todo] +10.0.17115.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17128.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17133.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17134.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] @@ -161,6 +161,7 @@ Terminal Services supported versions Source code changelog (rdpwrap library): 2018.05.16 : +- added support for termsrv.dll 10.0.17115.1 - added support for termsrv.dll 10.0.17128.1 - added support for termsrv.dll 10.0.17133.1 - added support for termsrv.dll 10.0.17134.1 From b3e1c77321cd5a8c2102943f162a004010cd913e Mon Sep 17 00:00:00 2001 From: NULL Date: Wed, 3 Oct 2018 20:47:48 +0200 Subject: [PATCH 08/13] INI: Add support for new builds (#568) - 6.1.7600.20890 (fix #563) - 6.1.7600.21316 (fix #564) - 6.1.7601.21650 (fix #565) - 6.1.7601.21866 (fix #566) - 6.1.7601.22104 (fix #567) - 6.3.9600.19093 (fix #549) - 10.0.14393.2457 (fix #542) - 10.0.15063.1155 (fix #506) --- README.md | 8 ++ res/rdpwrap-ini-kb.txt | 187 ++++++++++++++++++++++++++++++++++++++- res/rdpwrap.ini | 193 +++++++++++++++++++++++++++++++++++++---- technical.txt | 23 +++-- 4 files changed, 390 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 999d27e..77d9f52 100644 --- a/README.md +++ b/README.md @@ -282,7 +282,12 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 6.0.6002.23521 (Windows Vista SP2 with KB3003743 LDR) - 6.1.X.X (Windows 7 / Server 2008 R2) - 6.1.7600.16385 (Windows 7) +- 6.1.7600.20890 (Windows 7 with KB2479710) +- 6.1.7600.21316 (Windows 7 with KB2750090) - 6.1.7601.17514 (Windows 7 SP1) +- 6.1.7601.21650 (Windows 7 SP1 with KB2479710) +- 6.1.7601.21866 (Windows 7 SP1 with KB2647409) +- 6.1.7601.22104 (Windows 7 SP1 with KB2750090) - 6.1.7601.18540 (Windows 7 SP1 with KB2984972 GDR) - 6.1.7601.22750 (Windows 7 SP1 with KB2984972 LDR) - 6.1.7601.18637 (Windows 7 SP1 with KB3003743 GDR) @@ -301,6 +306,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 6.3.9600.18692 (Windows 8.1 with KB4022720) - 6.3.9600.18708 (Windows 8.1 with KB4025335) - 6.3.9600.18928 (Windows 8.1 with KB4088876) +- 6.3.9600.19093 (Windows 8.1 with KB4343891) - 6.4.9841.0 (Windows 10 Technical Preview) - 6.4.9860.0 (Windows 10 Technical Preview Update 1) - 6.4.9879.0 (Windows 10 Technical Preview Update 2) @@ -331,6 +337,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.14393.0 (Windows 10 RS1 Release 160715-1616) - 10.0.14393.1198 (Windows 10 RS1 Release Sec 170427-1353 with KB4019472) - 10.0.14393.1737 (Windows 10 RS1 Release Inmarket 170914-1249 with KB4041691) +- 10.0.14393.2457 (Windows 10 RS1 Release Inmarket 180822-1743 with KB4457131) - 10.0.14901.1000 (Windows 10 RS Pre-Release 160805-1700) - 10.0.14905.1000 (Windows 10 RS Pre-Release 160811-1739) - 10.0.14915.1000 (Windows 10 RS Pre-Release 160826-1902) @@ -360,6 +367,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.15061.0 (Windows 10 Build 160101.0800) - 10.0.15063.0 (Windows 10 Build 160101.0800) - 10.0.15063.296 (Windows 10 Build 160101.0800) +- 10.0.15063.1155 (Windows 10 Build 160101.0800) - 10.0.16179.1000 (Windows 10 Build 160101.0800) - 10.0.16184.1001 (Windows 10 Build 160101.0800) - 10.0.16199.1000 (Windows 10 Build 160101.0800) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index 4f9c24f..34d3d0b 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2018-05-16 +Updated=2018-09-10 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -343,6 +343,38 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17AD2 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7600.20890] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=19E2D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=17DF2 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=196FB +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17B0E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7600.21316] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=19E2D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=17E3E +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=196FB +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17B5E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.1.7601.17514] ; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled ; Imagebase: 6F2E0000 @@ -515,6 +547,54 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17DC6 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7601.21650] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180BE +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5A +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7601.21866] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180BE +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5A +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7601.22104] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180C6 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.1.7601.22843] ; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled ; Imagebase: 6F2E0000 @@ -1216,6 +1296,36 @@ SLInitHook.x64=1 SLInitOffset.x64=5D830 SLInitFunc.x64=New_CSLQuery_Initialize +[6.3.9600.19093] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=B3958 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8AE4E +LocalOnlyCode.x64=nopjmp +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=3F045 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=36BC9 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=3D899 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=45305 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=18288 +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=5D660 +SLInitFunc.x64=New_CSLQuery_Initialize + [6.4.9841.0] ; Patch CEnforcementCore::GetInstanceOfTSLicense ; .text:1009569B call sub_100B7EE5 @@ -2246,6 +2356,24 @@ SLInitHook.x64=1 SLInitOffset.x64=C930 SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.14393.2457] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8D811 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x64=1 +SingleUserOffset.x64=29CF4 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=1B545 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x64=1 +SLInitOffset.x64=C920 +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.14901.1000] ; Patch CEnforcementCore::GetInstanceOfTSLicense LocalOnlyPatch.x86=1 @@ -3092,6 +3220,24 @@ SLInitHook.x64=1 SLInitOffset.x64=D1EC SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.15063.1155] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8CB01 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x64=1 +SingleUserOffset.x64=15EA4 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=FAE5 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x64=1 +SLInitOffset.x64=234DC +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.16179.1000] ; Patch CEnforcementCore::GetInstanceOfTSLicense LocalOnlyPatch.x86=1 @@ -4248,6 +4394,25 @@ bServerSku.x64 =FA068 ulMaxDebugSessions.x64=FA06C bRemoteConnAllowed.x64=FA070 +[6.3.9600.19093-SLInit] +bFUSEnabled.x86 =D3068 +lMaxUserSessions.x86 =D306C +bAppServerAllowed.x86 =D3070 +bInitialized.x86 =D3074 +bMultimonAllowed.x86 =D3078 +bServerSku.x86 =D307C +ulMaxDebugSessions.x86=D3080 +bRemoteConnAllowed.x86=D3084 + +bFUSEnabled.x64 =FA054 +lMaxUserSessions.x64 =FA058 +bAppServerAllowed.x64 =FA05C +bInitialized.x64 =FA060 +bMultimonAllowed.x64 =FA064 +bServerSku.x64 =FA068 +ulMaxDebugSessions.x64=FA06C +bRemoteConnAllowed.x64=FA070 + [6.4.9841.0-SLInit] bFUSEnabled.x86 =BF9F0 lMaxUserSessions.x86 =BF9F4 @@ -4801,6 +4966,16 @@ bMultimonAllowed.x64 =E8478 ulMaxDebugSessions.x64=E847C bFUSEnabled.x64 =E8480 +[10.0.14393.2457-SLInit] +bServerSku.x64 =E73D0 +lMaxUserSessions.x64 =E73D4 +bAppServerAllowed.x64 =E73D8 +bInitialized.x64 =E8470 +bRemoteConnAllowed.x64=E8474 +bMultimonAllowed.x64 =E8478 +ulMaxDebugSessions.x64=E847C +bFUSEnabled.x64 =E8480 + [10.0.14901.1000-SLInit] bInitialized.x86 =C1F6C bServerSku.x86 =C1F70 @@ -5334,6 +5509,16 @@ bServerSku.x64 =E9484 lMaxUserSessions.x64 =E9488 bAppServerAllowed.x64 =E948C +[10.0.15063.1155-SLInit] +bInitialized.x64 =E9468 +bRemoteConnAllowed.x64=E946C +bMultimonAllowed.x64 =E9470 +ulMaxDebugSessions.x64=E9474 +bFUSEnabled.x64 =E9478 +bServerSku.x64 =E9484 +lMaxUserSessions.x64 =E9488 +bAppServerAllowed.x64 =E948C + [10.0.16179.1000-SLInit] bInitialized.x86 =C7F6C bServerSku.x86 =C7F70 diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index 56c822e..f68c671 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2018-05-16 +Updated=2018-09-10 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -121,6 +121,34 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17AD2 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7600.20890] +SingleUserPatch.x86=1 +SingleUserOffset.x86=19E2D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=17DF2 +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=196FB +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17B0E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7600.21316] +SingleUserPatch.x86=1 +SingleUserOffset.x86=19E2D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=17E3E +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=196FB +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17B5E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.1.7601.17514] SingleUserPatch.x86=1 SingleUserOffset.x86=1A49D @@ -149,20 +177,6 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17C82 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi -[6.1.7601.22750] -SingleUserPatch.x86=1 -SingleUserOffset.x86=1A655 -SingleUserCode.x86=nop -SingleUserPatch.x64=1 -SingleUserOffset.x64=17E8E -SingleUserCode.x64=Zero -DefPolicyPatch.x86=1 -DefPolicyOffset.x86=19E21 -DefPolicyCode.x86=CDefPolicy_Query_eax_esi -DefPolicyPatch.x64=1 -DefPolicyOffset.x64=17C92 -DefPolicyCode.x64=CDefPolicy_Query_eax_rdi - [6.1.7601.18637] SingleUserPatch.x86=1 SingleUserOffset.x86=1A4DD @@ -177,6 +191,62 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17DC6 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7601.21650] +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180BE +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5A +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7601.21866] +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180BE +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5A +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7601.22104] +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A49D +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=180C6 +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19D53 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D5E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + +[6.1.7601.22750] +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A655 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=17E8E +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19E21 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17C92 +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.1.7601.22843] SingleUserPatch.x86=1 SingleUserOffset.x86=1A655 @@ -507,6 +577,32 @@ SLInitHook.x64=1 SLInitOffset.x64=5D830 SLInitFunc.x64=New_CSLQuery_Initialize +[6.3.9600.19093] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=B3958 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8AE4E +LocalOnlyCode.x64=nopjmp +SingleUserPatch.x86=1 +SingleUserOffset.x86=3F045 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=36BC9 +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=3D899 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=45305 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=18288 +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=5D660 +SLInitFunc.x64=New_CSLQuery_Initialize + [6.4.9841.0] LocalOnlyPatch.x86=1 LocalOnlyOffset.x86=956A8 @@ -1263,6 +1359,20 @@ SLInitHook.x64=1 SLInitOffset.x64=C930 SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.14393.2457] +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8D811 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x64=1 +SingleUserOffset.x64=29CF4 +SingleUserCode.x64=Zero +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=1B545 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x64=1 +SLInitOffset.x64=C920 +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.14901.1000] LocalOnlyPatch.x86=1 LocalOnlyOffset.x86=A6038 @@ -1993,6 +2103,20 @@ SLInitHook.x64=1 SLInitOffset.x64=D1EC SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.15063.1155] +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8CB01 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x64=1 +SingleUserOffset.x64=15EA4 +SingleUserCode.x64=Zero +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=FAE5 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x64=1 +SLInitOffset.x64=234DC +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.16179.1000] LocalOnlyPatch.x86=1 LocalOnlyOffset.x86=AA568 @@ -2994,6 +3118,25 @@ bServerSku.x64 =FA068 ulMaxDebugSessions.x64=FA06C bRemoteConnAllowed.x64=FA070 +[6.3.9600.19093-SLInit] +bFUSEnabled.x86 =D3068 +lMaxUserSessions.x86 =D306C +bAppServerAllowed.x86 =D3070 +bInitialized.x86 =D3074 +bMultimonAllowed.x86 =D3078 +bServerSku.x86 =D307C +ulMaxDebugSessions.x86=D3080 +bRemoteConnAllowed.x86=D3084 + +bFUSEnabled.x64 =FA054 +lMaxUserSessions.x64 =FA058 +bAppServerAllowed.x64 =FA05C +bInitialized.x64 =FA060 +bMultimonAllowed.x64 =FA064 +bServerSku.x64 =FA068 +ulMaxDebugSessions.x64=FA06C +bRemoteConnAllowed.x64=FA070 + [6.4.9841.0-SLInit] bFUSEnabled.x86 =BF9F0 lMaxUserSessions.x86 =BF9F4 @@ -3546,6 +3689,16 @@ bMultimonAllowed.x64 =E8478 ulMaxDebugSessions.x64=E847C bFUSEnabled.x64 =E8480 +[10.0.14393.2457-SLInit] +bServerSku.x64 =E73D0 +lMaxUserSessions.x64 =E73D4 +bAppServerAllowed.x64 =E73D8 +bInitialized.x64 =E8470 +bRemoteConnAllowed.x64=E8474 +bMultimonAllowed.x64 =E8478 +ulMaxDebugSessions.x64=E847C +bFUSEnabled.x64 =E8480 + [10.0.14901.1000-SLInit] bInitialized.x86 =C1F6C bServerSku.x86 =C1F70 @@ -4079,6 +4232,16 @@ bServerSku.x64 =E9484 lMaxUserSessions.x64 =E9488 bAppServerAllowed.x64 =E948C +[10.0.15063.1155-SLInit] +bInitialized.x64 =E9468 +bRemoteConnAllowed.x64=E946C +bMultimonAllowed.x64 =E9470 +ulMaxDebugSessions.x64=E9474 +bFUSEnabled.x64 =E9478 +bServerSku.x64 =E9484 +lMaxUserSessions.x64 =E9488 +bAppServerAllowed.x64 =E948C + [10.0.16179.1000-SLInit] bInitialized.x86 =C7F6C bServerSku.x86 =C7F70 diff --git a/technical.txt b/technical.txt index d1735ba..a7f7405 100644 --- a/technical.txt +++ b/technical.txt @@ -26,14 +26,14 @@ Terminal Services supported versions 6.1.7600.20661 (Windows 7 with KB951422) [todo] 6.1.7600.21085 (Windows 7 with KB951422 v2) [todo] 6.1.7600.20621 (Windows 7 with KB979470) [todo] -6.1.7600.20890 (Windows 7 with KB2479710) [todo] -6.1.7600.21316 (Windows 7 with KB2750090) [todo] +6.1.7600.20890 (Windows 7 with KB2479710) [policy hook + extended patch] +6.1.7600.21316 (Windows 7 with KB2750090) [policy hook + extended patch] 6.1.7600.21420 (Windows 7 with KB2800789) [todo] 6.1.7601.17514 (Windows 7 SP1) [policy hook + extended patch] 6.1.7601.21855 (Windows 7 SP1 with KB951422 v2) [todo] -6.1.7601.21650 (Windows 7 SP1 with KB2479710) [todo] -6.1.7601.21866 (Windows 7 SP1 with KB2647409) [todo] -6.1.7601.22104 (Windows 7 SP1 with KB2750090) [todo] +6.1.7601.21650 (Windows 7 SP1 with KB2479710) [policy hook + extended patch] +6.1.7601.21866 (Windows 7 SP1 with KB2647409) [policy hook + extended patch] +6.1.7601.22104 (Windows 7 SP1 with KB2750090) [policy hook + extended patch] 6.1.7601.22213 (Windows 7 SP1 with KB2800789) [todo] 6.1.7601.22476 (Windows 7 SP1 with KB2870165) [todo] 6.1.7601.22435 (Windows 7 SP1 with KB2878424) [todo] @@ -56,6 +56,7 @@ Terminal Services supported versions 6.3.9600.18692 (Windows 8.1 with KB4022720) [init hook + extended patch] 6.3.9600.18708 (Windows 8.1 with KB4025335) [init hook + extended patch] 6.3.9600.18928 (Windows 8.1 with KB4088876) [init hook + extended patch] +6.3.9600.19093 (Windows 8.1 with KB4343891) [init hook + extended patch] 6.4.9841.0 (Windows 10 Technical Preview) [init hook + extended patch] 6.4.9860.0 (Windows 10 Technical Preview UP1) [init hook + extended patch] 6.4.9879.0 (Windows 10 Technical Preview UP2) [init hook + extended patch] @@ -91,6 +92,7 @@ Terminal Services supported versions 10.0.14393.0 (Windows 10 rs1_release.160715-1616) [init hook + extended patch] 10.0.14393.1198 (Windows 10 rs1_release_sec.170427-1353) [init hook + extended patch] 10.0.14393.1737 (Windows 10 rs1_release_inmarket.170914-1249) [init hook + extended patch] +10.0.14393.2457 (Windows 10 rs1_release_inmarket.180822-1743) [init hook + extended patch] 10.0.14901.1000 (Windows 10 rs_prerelease.160805-1700) [init hook + extended patch] 10.0.14905.1000 (Windows 10 rs_prerelease.160811-1739) [init hook + extended patch] 10.0.14915.1000 (Windows 10 rs_prerelease.160826-1902) [init hook + extended patch] @@ -121,6 +123,7 @@ Terminal Services supported versions 10.0.15063.0 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.296 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.994 (Windows 10 WinBuild.160101.0800) [todo] +10.0.15063.1155 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16179.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16184.1001 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16199.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] @@ -160,6 +163,16 @@ Terminal Services supported versions Source code changelog (rdpwrap library): +2018.09.10 : +- added support for termsrv.dll 6.1.7600.20890 +- added support for termsrv.dll 6.1.7600.21316 +- added support for termsrv.dll 6.1.7601.21650 +- added support for termsrv.dll 6.1.7601.21866 +- added support for termsrv.dll 6.1.7601.22104 +- added support for termsrv.dll 6.3.9600.19093 +- added support for termsrv.dll 10.0.14393.2457 x64 +- added support for termsrv.dll 10.0.15063.1155 x64 + 2018.05.16 : - added support for termsrv.dll 10.0.17115.1 - added support for termsrv.dll 10.0.17128.1 From 0c76513a279977f59d76d0aafe8147daccf7259c Mon Sep 17 00:00:00 2001 From: Stas'M Date: Wed, 3 Oct 2018 23:59:34 +0300 Subject: [PATCH 09/13] INI: Add support for new builds - 6.1.7601.24234 (fix #572) - 10.0.15063.994 (fix #455) - 10.0.17723.1000 (fix #537) - 10.0.17763.1 (fix #578) --- README.md | 4 ++ res/rdpwrap-ini-kb.txt | 117 ++++++++++++++++++++++++++++++++++++++++- res/rdpwrap.ini | 103 +++++++++++++++++++++++++++++++++++- technical.txt | 11 +++- 4 files changed, 232 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 77d9f52..8b53236 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 6.1.7601.18637 (Windows 7 SP1 with KB3003743 GDR) - 6.1.7601.22843 (Windows 7 SP1 with KB3003743 LDR) - 6.1.7601.23403 (Windows 7 SP1 with KB3125574) +- 6.1.7601.24234 (Windows 7 SP1 with unknown KB) - 6.2.8102.0 (Windows 8 Developer Preview) - 6.2.8250.0 (Windows 8 Consumer Preview) - 6.2.8400.0 (Windows 8 Release Preview) @@ -367,6 +368,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.15061.0 (Windows 10 Build 160101.0800) - 10.0.15063.0 (Windows 10 Build 160101.0800) - 10.0.15063.296 (Windows 10 Build 160101.0800) +- 10.0.15063.994 (Windows 10 Build 160101.0800) - 10.0.15063.1155 (Windows 10 Build 160101.0800) - 10.0.16179.1000 (Windows 10 Build 160101.0800) - 10.0.16184.1001 (Windows 10 Build 160101.0800) @@ -401,6 +403,8 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.17128.1 (Windows 10 Build 160101.0800) - 10.0.17133.1 (Windows 10 Build 160101.0800) - 10.0.17134.1 (Windows 10 Build 160101.0800) +- 10.0.17723.1000 (Windows 10 Build 160101.0800) +- 10.0.17763.1 (Windows 10 Build 160101.0800) #### Confirmed working on: - Windows Vista Starter (x86 - Service Pack 1 and higher) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index 34d3d0b..bb6ced3 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2018-09-10 +Updated=2018-10-03 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -654,6 +654,16 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17CE2 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7601.24234] +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x64=1 +SingleUserOffset.x64=17F56 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D2E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.2.8102.0] ; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled ; .text:1000F7E5 lea eax, [esp+150h+VersionInformation] @@ -3220,6 +3230,24 @@ SLInitHook.x64=1 SLInitOffset.x64=D1EC SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.15063.994] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8CB01 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x64=1 +SingleUserOffset.x64=15EA4 +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=FAE5 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x64=1 +SLInitOffset.x64=234DC +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.15063.1155] ; Patch CEnforcementCore::GetInstanceOfTSLicense LocalOnlyPatch.x64=1 @@ -4228,6 +4256,54 @@ SLInitHook.x64=1 SLInitOffset.x64=22E6C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17723.1000] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=75D91 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelperMgr::IsSingleSessionPerUserEnabled +SingleUserPatch.x64=1 +SingleUserOffset.x64=1296C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17A45 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x64=1 +SLInitOffset.x64=1B10C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17763.1] +; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AF8E4 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=77941 +LocalOnlyCode.x64=jmpshort +; Patch CSessionArbitrationHelperMgr::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=4D505 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1322C +SingleUserCode.x64=Zero +; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=4BD09 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17F45 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=5B02A +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=1ABFC +SLInitFunc.x64=New_CSLQuery_Initialize + [SLInit] ; Is server bServerSku=1 @@ -5509,6 +5585,16 @@ bServerSku.x64 =E9484 lMaxUserSessions.x64 =E9488 bAppServerAllowed.x64 =E948C +[10.0.15063.994-SLInit] +bInitialized.x64 =E9468 +bRemoteConnAllowed.x64=E946C +bMultimonAllowed.x64 =E9470 +ulMaxDebugSessions.x64=E9474 +bFUSEnabled.x64 =E9478 +bServerSku.x64 =E9484 +lMaxUserSessions.x64 =E9488 +bAppServerAllowed.x64 =E948C + [10.0.15063.1155-SLInit] bInitialized.x64 =E9468 bRemoteConnAllowed.x64=E946C @@ -6145,3 +6231,32 @@ bRemoteConnAllowed.x64=F2434 bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 + +[10.0.17723.1000-SLInit] +bInitialized.x64 =E9AB0 +bServerSku.x64 =E9AB4 +lMaxUserSessions.x64 =E9AB8 +bAppServerAllowed.x64 =E9AC0 +bRemoteConnAllowed.x64=E9AC4 +bMultimonAllowed.x64 =E9AC8 +ulMaxDebugSessions.x64=E9ACC +bFUSEnabled.x64 =E9AD0 + +[10.0.17763.1-SLInit] +bInitialized.x86 =CD798 +bServerSku.x86 =CD79C +lMaxUserSessions.x86 =CD7A0 +bAppServerAllowed.x86 =CD7A8 +bRemoteConnAllowed.x86=CD7AC +bMultimonAllowed.x86 =CD7B0 +ulMaxDebugSessions.x86=CD7B4 +bFUSEnabled.x86 =CD7B8 + +bInitialized.x64 =ECAB0 +bServerSku.x64 =ECAB4 +lMaxUserSessions.x64 =ECAB8 +bAppServerAllowed.x64 =ECAC0 +bRemoteConnAllowed.x64=ECAC4 +bMultimonAllowed.x64 =ECAC8 +ulMaxDebugSessions.x64=ECACC +bFUSEnabled.x64 =ECAD0 diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index f68c671..b33455c 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2018-09-10 +Updated=2018-10-03 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -275,6 +275,14 @@ DefPolicyPatch.x64=1 DefPolicyOffset.x64=17CE2 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi +[6.1.7601.24234] +SingleUserPatch.x64=1 +SingleUserOffset.x64=17F56 +SingleUserCode.x64=Zero +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17D2E +DefPolicyCode.x64=CDefPolicy_Query_eax_rdi + [6.2.8102.0] SingleUserPatch.x86=1 SingleUserOffset.x86=F7E9 @@ -2103,6 +2111,20 @@ SLInitHook.x64=1 SLInitOffset.x64=D1EC SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.15063.994] +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=8CB01 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x64=1 +SingleUserOffset.x64=15EA4 +SingleUserCode.x64=Zero +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=FAE5 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x64=1 +SLInitOffset.x64=234DC +SLInitFunc.x64=New_CSLQuery_Initialize + [10.0.15063.1155] LocalOnlyPatch.x64=1 LocalOnlyOffset.x64=8CB01 @@ -2975,6 +2997,46 @@ SLInitHook.x64=1 SLInitOffset.x64=22E6C SLInitFunc.x64=New_CSLQuery_Initialize +[10.0.17723.1000] +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=75D91 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x64=1 +SingleUserOffset.x64=1296C +SingleUserCode.x64=Zero +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17A45 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x64=1 +SLInitOffset.x64=1B10C +SLInitFunc.x64=New_CSLQuery_Initialize + +[10.0.17763.1] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=AF8E4 +LocalOnlyCode.x86=jmpshort +LocalOnlyPatch.x64=1 +LocalOnlyOffset.x64=77941 +LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=4D505 +SingleUserCode.x86=nop +SingleUserPatch.x64=1 +SingleUserOffset.x64=1322C +SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=4BD09 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx +DefPolicyPatch.x64=1 +DefPolicyOffset.x64=17F45 +DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=5B02A +SLInitFunc.x86=New_CSLQuery_Initialize +SLInitHook.x64=1 +SLInitOffset.x64=1ABFC +SLInitFunc.x64=New_CSLQuery_Initialize + [SLInit] bServerSku=1 bRemoteConnAllowed=1 @@ -4232,6 +4294,16 @@ bServerSku.x64 =E9484 lMaxUserSessions.x64 =E9488 bAppServerAllowed.x64 =E948C +[10.0.15063.994-SLInit] +bInitialized.x64 =E9468 +bRemoteConnAllowed.x64=E946C +bMultimonAllowed.x64 =E9470 +ulMaxDebugSessions.x64=E9474 +bFUSEnabled.x64 =E9478 +bServerSku.x64 =E9484 +lMaxUserSessions.x64 =E9488 +bAppServerAllowed.x64 =E948C + [10.0.15063.1155-SLInit] bInitialized.x64 =E9468 bRemoteConnAllowed.x64=E946C @@ -4868,3 +4940,32 @@ bRemoteConnAllowed.x64=F2434 bMultimonAllowed.x64 =F2438 ulMaxDebugSessions.x64=F243C bFUSEnabled.x64 =F2440 + +[10.0.17723.1000-SLInit] +bInitialized.x64 =E9AB0 +bServerSku.x64 =E9AB4 +lMaxUserSessions.x64 =E9AB8 +bAppServerAllowed.x64 =E9AC0 +bRemoteConnAllowed.x64=E9AC4 +bMultimonAllowed.x64 =E9AC8 +ulMaxDebugSessions.x64=E9ACC +bFUSEnabled.x64 =E9AD0 + +[10.0.17763.1-SLInit] +bInitialized.x86 =CD798 +bServerSku.x86 =CD79C +lMaxUserSessions.x86 =CD7A0 +bAppServerAllowed.x86 =CD7A8 +bRemoteConnAllowed.x86=CD7AC +bMultimonAllowed.x86 =CD7B0 +ulMaxDebugSessions.x86=CD7B4 +bFUSEnabled.x86 =CD7B8 + +bInitialized.x64 =ECAB0 +bServerSku.x64 =ECAB4 +lMaxUserSessions.x64 =ECAB8 +bAppServerAllowed.x64 =ECAC0 +bRemoteConnAllowed.x64=ECAC4 +bMultimonAllowed.x64 =ECAC8 +ulMaxDebugSessions.x64=ECACC +bFUSEnabled.x64 =ECAD0 diff --git a/technical.txt b/technical.txt index a7f7405..57ac9aa 100644 --- a/technical.txt +++ b/technical.txt @@ -43,6 +43,7 @@ Terminal Services supported versions 6.1.7601.18637 (Windows 7 SP1 with KB3003743 GDR) [policy hook + extended patch] 6.1.7601.22843 (Windows 7 SP1 with KB3003743 LDR) [policy hook + extended patch] 6.1.7601.23403 (Windows 7 SP1 with KB3125574) [policy hook + extended patch] +6.1.7601.24234 (Windows 7 SP1 with unknown KB) [policy hook + extended patch] 6.2.8102.0 (Windows 8 Developer Preview) [policy hook + extended patch] 6.2.8250.0 (Windows 8 Consumer Preview) [policy hook + extended patch] 6.2.8400.0 (Windows 8 Release Preview) [policy hook + extended patch] @@ -122,7 +123,7 @@ Terminal Services supported versions 10.0.15061.0 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.0 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.296 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] -10.0.15063.994 (Windows 10 WinBuild.160101.0800) [todo] +10.0.15063.994 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.15063.1155 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16179.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.16184.1001 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] @@ -160,9 +161,17 @@ Terminal Services supported versions 10.0.17128.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17133.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] 10.0.17134.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.17723.1000 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] +10.0.17763.1 (Windows 10 WinBuild.160101.0800) [init hook + extended patch] Source code changelog (rdpwrap library): +2018.10.03 : +- added support for termsrv.dll 6.1.7601.24234 x64 +- added support for termsrv.dll 10.0.15063.994 x64 +- added support for termsrv.dll 10.0.17723.1000 x64 +- added support for termsrv.dll 10.0.17763.1 + 2018.09.10 : - added support for termsrv.dll 6.1.7600.20890 - added support for termsrv.dll 6.1.7600.21316 From dc3b07f1fe07557e9e64b8347621d884a6e8be19 Mon Sep 17 00:00:00 2001 From: Stas'M Date: Thu, 4 Oct 2018 15:31:04 +0300 Subject: [PATCH 10/13] README: Add Telegram chat link --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 8b53236..add9a71 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # RDP Wrapper Library by Stas'M +[![Telegram](https://img.shields.io/badge/chat-Telegram-blue.svg)](https://t.me/rdpwrap) ![Environment](https://img.shields.io/badge/Windows-Vista,%207,%208,%2010-brightgreen.svg) [![Release](https://img.shields.io/github/release/stascorp/rdpwrap.svg)](https://github.com/stascorp/rdpwrap/releases) ![License](https://img.shields.io/github/license/stascorp/rdpwrap.svg) @@ -88,6 +89,8 @@ It's recommended to have original termsrv.dll file with the RDP Wrapper installa ### Links: - Official GitHub repository:
https://github.com/stascorp/rdpwrap/ +- Official Telegram chat: +
https://t.me/rdpwrap - Active discussion in the comments here:
[Enable remote desktop on Windows 8 core / basic - Andrew Block .net][andrewblock] - MDL Projects and Applications thread here: From 2eef50f254f423fcd95518fcbaa97b1169b6a543 Mon Sep 17 00:00:00 2001 From: Stas'M Date: Fri, 5 Oct 2018 01:45:44 +0300 Subject: [PATCH 11/13] INI: Add support for new builds (#542) 10.0.14393.2457 x86 --- README.md | 2 +- res/rdpwrap-ini-kb.txt | 23 ++++++++++++++++++++++- res/rdpwrap.ini | 23 ++++++++++++++++++++++- technical.txt | 3 +++ 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index add9a71..47f8095 100644 --- a/README.md +++ b/README.md @@ -341,7 +341,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 10.0.14393.0 (Windows 10 RS1 Release 160715-1616) - 10.0.14393.1198 (Windows 10 RS1 Release Sec 170427-1353 with KB4019472) - 10.0.14393.1737 (Windows 10 RS1 Release Inmarket 170914-1249 with KB4041691) -- 10.0.14393.2457 (Windows 10 RS1 Release Inmarket 180822-1743 with KB4457131) +- 10.0.14393.2457 (Windows 10 RS1 Release Inmarket 180822-1743 with KB4343884) - 10.0.14901.1000 (Windows 10 RS Pre-Release 160805-1700) - 10.0.14905.1000 (Windows 10 RS Pre-Release 160811-1739) - 10.0.14915.1000 (Windows 10 RS Pre-Release 160826-1902) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index bb6ced3..597bd12 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2018-10-03 +Updated=2018-10-04 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -2368,18 +2368,30 @@ SLInitFunc.x64=New_CSLQuery_Initialize [10.0.14393.2457] ; Patch CEnforcementCore::GetInstanceOfTSLicense +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=A6248 +LocalOnlyCode.x86=jmpshort LocalOnlyPatch.x64=1 LocalOnlyOffset.x64=8D811 LocalOnlyCode.x64=jmpshort ; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=36CE5 +SingleUserCode.x86=nop SingleUserPatch.x64=1 SingleUserOffset.x64=29CF4 SingleUserCode.x64=Zero ; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=31209 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 DefPolicyOffset.x64=1B545 DefPolicyCode.x64=CDefPolicy_Query_eax_rcx ; Hook CSLQuery::Initialize +SLInitHook.x86=1 +SLInitOffset.x86=45824 +SLInitFunc.x86=New_CSLQuery_Initialize SLInitHook.x64=1 SLInitOffset.x64=C920 SLInitFunc.x64=New_CSLQuery_Initialize @@ -5043,6 +5055,15 @@ ulMaxDebugSessions.x64=E847C bFUSEnabled.x64 =E8480 [10.0.14393.2457-SLInit] +bInitialized.x86 =C1F94 +bServerSku.x86 =C1F98 +lMaxUserSessions.x86 =C1F9C +bAppServerAllowed.x86 =C1FA0 +bRemoteConnAllowed.x86=C1FA4 +bMultimonAllowed.x86 =C1FA8 +ulMaxDebugSessions.x86=C1FAC +bFUSEnabled.x86 =C1FB0 + bServerSku.x64 =E73D0 lMaxUserSessions.x64 =E73D4 bAppServerAllowed.x64 =E73D8 diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index b33455c..a40d24d 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2018-10-03 +Updated=2018-10-04 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -1368,15 +1368,27 @@ SLInitOffset.x64=C930 SLInitFunc.x64=New_CSLQuery_Initialize [10.0.14393.2457] +LocalOnlyPatch.x86=1 +LocalOnlyOffset.x86=A6248 +LocalOnlyCode.x86=jmpshort LocalOnlyPatch.x64=1 LocalOnlyOffset.x64=8D811 LocalOnlyCode.x64=jmpshort +SingleUserPatch.x86=1 +SingleUserOffset.x86=36CE5 +SingleUserCode.x86=nop SingleUserPatch.x64=1 SingleUserOffset.x64=29CF4 SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=31209 +DefPolicyCode.x86=CDefPolicy_Query_eax_ecx DefPolicyPatch.x64=1 DefPolicyOffset.x64=1B545 DefPolicyCode.x64=CDefPolicy_Query_eax_rcx +SLInitHook.x86=1 +SLInitOffset.x86=45824 +SLInitFunc.x86=New_CSLQuery_Initialize SLInitHook.x64=1 SLInitOffset.x64=C920 SLInitFunc.x64=New_CSLQuery_Initialize @@ -3752,6 +3764,15 @@ ulMaxDebugSessions.x64=E847C bFUSEnabled.x64 =E8480 [10.0.14393.2457-SLInit] +bInitialized.x86 =C1F94 +bServerSku.x86 =C1F98 +lMaxUserSessions.x86 =C1F9C +bAppServerAllowed.x86 =C1FA0 +bRemoteConnAllowed.x86=C1FA4 +bMultimonAllowed.x86 =C1FA8 +ulMaxDebugSessions.x86=C1FAC +bFUSEnabled.x86 =C1FB0 + bServerSku.x64 =E73D0 lMaxUserSessions.x64 =E73D4 bAppServerAllowed.x64 =E73D8 diff --git a/technical.txt b/technical.txt index 57ac9aa..5ef476f 100644 --- a/technical.txt +++ b/technical.txt @@ -166,6 +166,9 @@ Terminal Services supported versions Source code changelog (rdpwrap library): +2018.10.04 : +- added support for termsrv.dll 10.0.14393.2457 x86 + 2018.10.03 : - added support for termsrv.dll 6.1.7601.24234 x64 - added support for termsrv.dll 10.0.15063.994 x64 From 326551985f1ecf8cc1e43bd4b4505a7871534b0f Mon Sep 17 00:00:00 2001 From: Stas'M Date: Wed, 10 Oct 2018 15:57:37 +0300 Subject: [PATCH 12/13] INI: Add support for new builds (fix #586) - 6.1.7601.24234 x86 --- README.md | 2 +- res/rdpwrap-ini-kb.txt | 8 +++++++- res/rdpwrap.ini | 8 +++++++- technical.txt | 5 ++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 47f8095..837e679 100644 --- a/README.md +++ b/README.md @@ -296,7 +296,7 @@ Visit [issues](https://github.com/stascorp/rdpwrap/issues) section, and check wh - 6.1.7601.18637 (Windows 7 SP1 with KB3003743 GDR) - 6.1.7601.22843 (Windows 7 SP1 with KB3003743 LDR) - 6.1.7601.23403 (Windows 7 SP1 with KB3125574) -- 6.1.7601.24234 (Windows 7 SP1 with unknown KB) +- 6.1.7601.24234 (Windows 7 SP1 with KB4462923) - 6.2.8102.0 (Windows 8 Developer Preview) - 6.2.8250.0 (Windows 8 Consumer Preview) - 6.2.8400.0 (Windows 8 Release Preview) diff --git a/res/rdpwrap-ini-kb.txt b/res/rdpwrap-ini-kb.txt index 597bd12..a258ab4 100644 --- a/res/rdpwrap-ini-kb.txt +++ b/res/rdpwrap-ini-kb.txt @@ -1,6 +1,6 @@ [Main] ; Last updated date -Updated=2018-10-04 +Updated=2018-10-10 ; Address to log file (RDP Wrapper will write it, if exists) LogFile=\rdpwrap.txt ; Hook SLPolicy API on Windows NT 6.0 @@ -656,10 +656,16 @@ DefPolicyCode.x64=CDefPolicy_Query_eax_rdi [6.1.7601.24234] ; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A675 +SingleUserCode.x86=nop SingleUserPatch.x64=1 SingleUserOffset.x64=17F56 SingleUserCode.x64=Zero ; Patch CDefPolicy::Query +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19E41 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi DefPolicyPatch.x64=1 DefPolicyOffset.x64=17D2E DefPolicyCode.x64=CDefPolicy_Query_eax_rdi diff --git a/res/rdpwrap.ini b/res/rdpwrap.ini index a40d24d..40e1b54 100644 --- a/res/rdpwrap.ini +++ b/res/rdpwrap.ini @@ -2,7 +2,7 @@ ; Do not modify without special knowledge [Main] -Updated=2018-10-04 +Updated=2018-10-10 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 @@ -276,9 +276,15 @@ DefPolicyOffset.x64=17CE2 DefPolicyCode.x64=CDefPolicy_Query_eax_rdi [6.1.7601.24234] +SingleUserPatch.x86=1 +SingleUserOffset.x86=1A675 +SingleUserCode.x86=nop SingleUserPatch.x64=1 SingleUserOffset.x64=17F56 SingleUserCode.x64=Zero +DefPolicyPatch.x86=1 +DefPolicyOffset.x86=19E41 +DefPolicyCode.x86=CDefPolicy_Query_eax_esi DefPolicyPatch.x64=1 DefPolicyOffset.x64=17D2E DefPolicyCode.x64=CDefPolicy_Query_eax_rdi diff --git a/technical.txt b/technical.txt index 5ef476f..eec609f 100644 --- a/technical.txt +++ b/technical.txt @@ -43,7 +43,7 @@ Terminal Services supported versions 6.1.7601.18637 (Windows 7 SP1 with KB3003743 GDR) [policy hook + extended patch] 6.1.7601.22843 (Windows 7 SP1 with KB3003743 LDR) [policy hook + extended patch] 6.1.7601.23403 (Windows 7 SP1 with KB3125574) [policy hook + extended patch] -6.1.7601.24234 (Windows 7 SP1 with unknown KB) [policy hook + extended patch] +6.1.7601.24234 (Windows 7 SP1 with KB4462923) [policy hook + extended patch] 6.2.8102.0 (Windows 8 Developer Preview) [policy hook + extended patch] 6.2.8250.0 (Windows 8 Consumer Preview) [policy hook + extended patch] 6.2.8400.0 (Windows 8 Release Preview) [policy hook + extended patch] @@ -166,6 +166,9 @@ Terminal Services supported versions Source code changelog (rdpwrap library): +2018.10.10 : +- added support for termsrv.dll 6.1.7601.24234 x86 + 2018.10.04 : - added support for termsrv.dll 10.0.14393.2457 x86 From a5c64a43319e4e375b391ad42c41504bcb349b4a Mon Sep 17 00:00:00 2001 From: Kevin Smyth Date: Thu, 20 Dec 2018 09:19:04 -0600 Subject: [PATCH 13/13] IniFile: don't lose last character if the file doesn't end with \r\n --- src-x86-x64-Fusix/IniFile.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src-x86-x64-Fusix/IniFile.cpp b/src-x86-x64-Fusix/IniFile.cpp index 8b48c07..5c610d3 100644 --- a/src-x86-x64-Fusix/IniFile.cpp +++ b/src-x86-x64-Fusix/IniFile.cpp @@ -127,7 +127,12 @@ DWORD INI_FILE::GetFileStringFromNum(DWORD StringNumber, char *RetString, DWORD for (DWORD i = FileStringsMap[StringNumber]; i < FileSize; i++) { - if ((FileRaw[i] == '\r' && FileRaw[i + 1] == '\n') || i == (FileSize - 1)) + if (i == (FileSize - 1)) + { + EndStringPos = FileSize; + break; + } + if (FileRaw[i] == '\r' && FileRaw[i + 1] == '\n') { EndStringPos = i; break;