Compare commits
35 Commits
Author | SHA1 | Date | |
---|---|---|---|
5553d07206 | |||
216255b3b4 | |||
e11b3c7354 | |||
f534a1c8fc | |||
d4d5111711 | |||
4bf2866b49 | |||
7c52a27ba5 | |||
e6686b3b35 | |||
1f8e2b9e65 | |||
946bd7f8a6 | |||
b9149eef02 | |||
80387dcc31 | |||
8ac3396165 | |||
8be10a125b | |||
7baa979752 | |||
425fc02fec | |||
659ba3dbcf | |||
efe2872a26 | |||
ca71d4ace4 | |||
a42b740946 | |||
fca45f61e7 | |||
5062ff6c75 | |||
9a7c501ca9 | |||
adabe322c3 | |||
eca971de03 | |||
6f23a18a24 | |||
09bfc748f4 | |||
97d0b92054 | |||
867c271cb3 | |||
fd56533897 | |||
782dc346a9 | |||
ca36e9f49f | |||
513a7a1ebf | |||
657ee646d5 | |||
5a37f663bc |
14
.gitignore
vendored
14
.gitignore
vendored
@ -1,6 +1,12 @@
|
||||
# Unnecessary files
|
||||
|
||||
*.~pas
|
||||
*.dproj.local
|
||||
# Delphi local files (user-specific info)
|
||||
*.local
|
||||
*.identcache
|
||||
|
||||
# Delphi history and backups
|
||||
__history/
|
||||
*.~*
|
||||
|
||||
# Compiled binaries
|
||||
*.dcu
|
||||
*.exe
|
||||
*.dll
|
||||
|
49
README.md
49
README.md
@ -17,6 +17,8 @@ Screenshots:<br>
|
||||
<a href="http://stascorp.com/images/rdpwrap/Win81P.png" target="_blank"><img src="http://stascorp.com/images/rdpwrap/pWin81P.jpg"></a>
|
||||
<a href="http://stascorp.com/images/rdpwrap/Win81.png" target="_blank"><img src="http://stascorp.com/images/rdpwrap/pWin81.jpg"></a>
|
||||
<a href="http://stascorp.com/images/rdpwrap/Win10TP.png" target="_blank"><img src="http://stascorp.com/images/rdpwrap/pWin10TP.jpg"></a>
|
||||
<a href="http://stascorp.com/images/rdpwrap/Win10PTP.png" target="_blank"><img src="http://stascorp.com/images/rdpwrap/pWin10PTP.jpg"></a>
|
||||
<a href="http://stascorp.com/images/rdpwrap/Win10.png" target="_blank"><img src="http://stascorp.com/images/rdpwrap/pWin10.jpg"></a>
|
||||
</div><br>
|
||||
This solution was inspired by <a href="http://forums.mydigitallife.info/threads/39411-Windows-Product-Policy-Editor" target="_blank">Windows Product Policy Editor</a>, big thanks to <b>kost</b> :)<br>
|
||||
- binarymaster<br>
|
||||
@ -51,6 +53,10 @@ Building the binaries:<br>
|
||||
• Adding «Remote Desktop Users» group:<br>
|
||||
<a href="http://superuser.com/questions/680572/" target="_blank">http://superuser.com/questions/680572/</a><br>
|
||||
<br>
|
||||
<b>Tutorial videos:</b><br>
|
||||
• <a href="http://www.youtube.com/watch?v=W9BpbEt1yJw" target="_blank">Updating RDP Wrapper INI file manually</a><br>
|
||||
• <a href="http://www.youtube.com/watch?v=FiD86tmRBtk" target="_blank">How to find offsets for new termsrv.dll versions</a><br>
|
||||
<br>
|
||||
Files description:<br>
|
||||
<br>
|
||||
<table style="border-collapse: collapse; width: 100%; border: 1px solid black;" width="" align="">
|
||||
@ -60,10 +66,26 @@ Files description:<br>
|
||||
<tr><td style="border: 1px solid black;"><b>RDPConf.exe</b></td><td style="border: 1px solid black;">RDP Wrapper Configuration</td></tr>
|
||||
<tr><td style="border: 1px solid black;"><b>install.bat</b></td><td style="border: 1px solid black;">Quick install batch file</td></tr>
|
||||
<tr><td style="border: 1px solid black;"><b>uninstall.bat</b></td><td style="border: 1px solid black;">Quick uninstall batch file</td></tr>
|
||||
<tr><td style="border: 1px solid black;"><b>update.bat</b></td><td style="border: 1px solid black;">Quick update batch file</td></tr>
|
||||
</tbody>
|
||||
</table><br>
|
||||
Change log:<br>
|
||||
<br>
|
||||
<b><u>2015.08.12</u></b><br>
|
||||
• Version 1.6<br>
|
||||
• Added support for Windows 10<br>
|
||||
• INI file has smaller size now - all comments are moved to KB file<br>
|
||||
• Installer updated<br>
|
||||
• Added workaround for 1056 error (although it isn't an error)<br>
|
||||
• Added update support to installer<br>
|
||||
• Newest RDPClip versions are included with installer<br>
|
||||
• RDP Checker updated<br>
|
||||
• Changed connect IP to 127.0.0.2<br>
|
||||
• Updated some text messages<br>
|
||||
• RDP Config updated<br>
|
||||
• Added all possible shadowing modes<br>
|
||||
• Also it will write settings to the group policy<br>
|
||||
<br>
|
||||
<b><u>2014.12.11</u></b><br>
|
||||
• Version 1.5<br>
|
||||
• Added INI config support<br>
|
||||
@ -161,14 +183,17 @@ Change log:<br>
|
||||
• <u>6.4.9841.0</u> (Windows 10 Technical Preview)<br>
|
||||
• <u>6.4.9860.0</u> (Windows 10 Technical Preview Update 1)<br>
|
||||
• <u>6.4.9879.0</u> (Windows 10 Technical Preview Update 2)<br>
|
||||
• <u>10.0.9926.0</u> (Windows 10 Pro Technical Preview)<br>
|
||||
• <u>10.0.10041.0</u> (Windows 10 Pro Technical Preview Update 1)<br>
|
||||
• <u>10.0.10240.16384</u> (Windows 10 RTM)<br>
|
||||
<br>
|
||||
<b>Confirmed working on:</b><br>
|
||||
• Windows Vista Starter (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Home Basic (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Home Premium (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Business (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Enterprise (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Ultimate (x86 - Service Pack 1 and higher)<br>
|
||||
• Windows Vista Home Basic<br>
|
||||
• Windows Vista Home Premium<br>
|
||||
• Windows Vista Business<br>
|
||||
• Windows Vista Enterprise<br>
|
||||
• Windows Vista Ultimate<br>
|
||||
• Windows 7 Starter<br>
|
||||
• Windows 7 Home Basic<br>
|
||||
• Windows 7 Home Premium<br>
|
||||
@ -184,13 +209,23 @@ Change log:<br>
|
||||
• Windows 8 Enterprise<br>
|
||||
• Windows 8.1 Preview<br>
|
||||
• Windows 8.1<br>
|
||||
• Windows 8.1 Connected (with Bing)<br>
|
||||
• Windows 8.1 Single Language<br>
|
||||
• Windows 8.1 Connected Single Language (with Bing)<br>
|
||||
• Windows 8.1 Pro<br>
|
||||
• Windows 8.1 Enterprise<br>
|
||||
• Windows 10 Technical Preview<br>
|
||||
• Windows 10 Pro Technical Preview<br>
|
||||
• Windows 10 Home<br>
|
||||
• Windows 10 Pro<br>
|
||||
• Windows 10 Enterprise<br>
|
||||
<br>
|
||||
<b>Working partially:</b><br>
|
||||
• Windows Vista Starter RTM x86 (termsrv.dll 6.0.6000.16386 : RDP works, but termsrv.dll crashes on logon attempt)<br>
|
||||
<b>Known issues:</b><br>
|
||||
• Beginning with Windows 8 (non-server editions) you can't connect to existing sessions (they will be logged out by system)<br>
|
||||
• RDP works, but termsrv.dll crashes on logon attempt - Windows Vista Starter RTM x86 (termsrv.dll 6.0.6000.16386)<br>
|
||||
• If Terminal Services hangs at startup, try to add <b>rdpwrap.dll</b> to antivirus exclusions. Also try to isolate RDP Wrapper from other shared services by the command:<br>
|
||||
<tt>sc config TermService type= own</tt><br>
|
||||
• RDP Wrapper Installer can be removed by AVG Free Antivirus after reboot - add it to exclusions.<br>
|
||||
<br>
|
||||
<u>Installation instructions:</u><br>
|
||||
1. Download latest release binaries and unpack files<br>
|
||||
|
14
bin/install.bat
Normal file
14
bin/install.bat
Normal file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
if not exist "%~dp0RDPWInst.exe" goto :error
|
||||
"%~dp0RDPWInst" -i
|
||||
echo ______________________________________________________________
|
||||
echo.
|
||||
echo You can check RDP functionality with RDPCheck program.
|
||||
echo Also you can configure advanced settings with RDPConf program.
|
||||
echo.
|
||||
goto :anykey
|
||||
:error
|
||||
echo [-] Installer executable not found.
|
||||
echo Please extract all files from the downloaded package or check your anti-virus.
|
||||
:anykey
|
||||
pause
|
10
bin/uninstall.bat
Normal file
10
bin/uninstall.bat
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
if not exist "%~dp0RDPWInst.exe" goto :error
|
||||
"%~dp0RDPWInst" -u
|
||||
echo.
|
||||
goto :anykey
|
||||
:error
|
||||
echo [-] Installer executable not found.
|
||||
echo Please extract all files from the downloaded package or check your anti-virus.
|
||||
:anykey
|
||||
pause
|
10
bin/update.bat
Normal file
10
bin/update.bat
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
if not exist "%~dp0RDPWInst.exe" goto :error
|
||||
"%~dp0RDPWInst" -w
|
||||
echo.
|
||||
goto :anykey
|
||||
:error
|
||||
echo [-] Installer executable not found.
|
||||
echo Please extract all files from the downloaded package or check your anti-virus.
|
||||
:anykey
|
||||
pause
|
Binary file not shown.
Binary file not shown.
1652
res/rdpwrap-ini-kb.txt
Normal file
1652
res/rdpwrap-ini-kb.txt
Normal file
File diff suppressed because it is too large
Load Diff
2184
res/rdpwrap.ini
2184
res/rdpwrap.ini
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
{
|
||||
Copyright 2014 Stas'M Corp.
|
||||
Copyright 2015 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.
|
||||
@ -25,7 +25,8 @@ uses
|
||||
Windows,
|
||||
Classes,
|
||||
WinSvc,
|
||||
Registry;
|
||||
Registry,
|
||||
WinInet;
|
||||
|
||||
function EnumServicesStatusEx(
|
||||
hSCManager: SC_HANDLE;
|
||||
@ -159,7 +160,8 @@ begin
|
||||
end;
|
||||
TermServiceHost := Reg.ReadString('ImagePath');
|
||||
Reg.CloseKey;
|
||||
if Pos('svchost.exe', LowerCase(TermServiceHost)) = 0 then
|
||||
if (Pos('svchost.exe', LowerCase(TermServiceHost)) = 0)
|
||||
and (Pos('svchost -k', LowerCase(TermServiceHost)) = 0) then
|
||||
begin
|
||||
Reg.Free;
|
||||
Writeln('[-] TermService is hosted in a custom application (BeTwin, etc.) - unsupported.');
|
||||
@ -282,32 +284,45 @@ var
|
||||
hSvc: THandle;
|
||||
Code: DWORD;
|
||||
pch: PWideChar;
|
||||
procedure ExitError(Func: String; ErrorCode: DWORD);
|
||||
begin
|
||||
if hSC > 0 then
|
||||
CloseServiceHandle(hSC);
|
||||
if hSvc > 0 then
|
||||
CloseServiceHandle(hSvc);
|
||||
Writeln('[-] ', Func, ' error (code ', ErrorCode, ').');
|
||||
end;
|
||||
begin
|
||||
hSC := 0;
|
||||
hSvc := 0;
|
||||
Writeln('[*] Starting ', SvcName, '...');
|
||||
hSC := OpenSCManager(nil, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT);
|
||||
if hSC = 0 then
|
||||
begin
|
||||
Code := GetLastError;
|
||||
Writeln('[-] OpenSCManager error (code ', Code, ').');
|
||||
ExitError('OpenSCManager', GetLastError);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
hSvc := OpenService(hSC, PWideChar(SvcName), SERVICE_START);
|
||||
if hSvc = 0 then
|
||||
begin
|
||||
CloseServiceHandle(hSC);
|
||||
Code := GetLastError;
|
||||
Writeln('[-] OpenService error (code ', Code, ').');
|
||||
ExitError('OpenService', GetLastError);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
pch := nil;
|
||||
if not StartService(hSvc, 0, pch) then begin
|
||||
CloseServiceHandle(hSvc);
|
||||
CloseServiceHandle(hSC);
|
||||
Code := GetLastError;
|
||||
Writeln('[-] StartService error (code ', Code, ').');
|
||||
Exit;
|
||||
if Code = 1056 then begin // Service already started
|
||||
Sleep(2000); // or SCM hasn't registered killed process
|
||||
if not StartService(hSvc, 0, pch) then begin
|
||||
ExitError('StartService', Code);
|
||||
Exit;
|
||||
end;
|
||||
end else begin
|
||||
ExitError('StartService', Code);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
CloseServiceHandle(hSvc);
|
||||
CloseServiceHandle(hSC);
|
||||
@ -591,6 +606,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure ExtractFiles;
|
||||
var
|
||||
RDPClipRes: String;
|
||||
begin
|
||||
if not DirectoryExists(ExtractFilePath(ExpandPath(WrapPath))) then
|
||||
if ForceDirectories(ExtractFilePath(ExpandPath(WrapPath))) then
|
||||
@ -601,18 +618,26 @@ begin
|
||||
Halt(0);
|
||||
end;
|
||||
ExtractRes('config', ExtractFilePath(ExpandPath(WrapPath)) + 'rdpwrap.ini');
|
||||
RDPClipRes := '';
|
||||
case Arch of
|
||||
32: begin
|
||||
ExtractRes('rdpw32', ExpandPath(WrapPath));
|
||||
if not FileExists(ExpandPath('%SystemRoot%\System32\rdpclip.exe')) then
|
||||
ExtractRes('rdpclip32', ExpandPath('%SystemRoot%\System32\rdpclip.exe'));
|
||||
if (FV.Version.w.Major = 6) and (FV.Version.w.Minor = 0) then
|
||||
RDPClipRes := 'rdpclip6032';
|
||||
if (FV.Version.w.Major = 6) and (FV.Version.w.Minor = 1) then
|
||||
RDPClipRes := 'rdpclip6132';
|
||||
end;
|
||||
64: begin
|
||||
ExtractRes('rdpw64', ExpandPath(WrapPath));
|
||||
if not FileExists(ExpandPath('%SystemRoot%\System32\rdpclip.exe')) then
|
||||
ExtractRes('rdpclip64', ExpandPath('%SystemRoot%\System32\rdpclip.exe'));
|
||||
if (FV.Version.w.Major = 6) and (FV.Version.w.Minor = 0) then
|
||||
RDPClipRes := 'rdpclip6064';
|
||||
if (FV.Version.w.Major = 6) and (FV.Version.w.Minor = 1) then
|
||||
RDPClipRes := 'rdpclip6164';
|
||||
end;
|
||||
end;
|
||||
if RDPClipRes <> '' then
|
||||
if not FileExists(ExpandPath('%SystemRoot%\System32\rdpclip.exe')) then
|
||||
ExtractRes(RDPClipRes, ExpandPath('%SystemRoot%\System32\rdpclip.exe'));
|
||||
end;
|
||||
|
||||
procedure DeleteFiles;
|
||||
@ -878,18 +903,141 @@ begin
|
||||
ExecWait('netsh advfirewall firewall delete rule name="Remote Desktop"');
|
||||
end;
|
||||
|
||||
function CheckINIDate(Filename, Content: String; var Date: Integer): Boolean;
|
||||
var
|
||||
Str: TStringList;
|
||||
I: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
Str := TStringList.Create;
|
||||
if Filename <> '' then begin
|
||||
try
|
||||
Str.LoadFromFile(Filename);
|
||||
except
|
||||
Writeln('[-] Failed to read INI file.');
|
||||
Exit;
|
||||
end;
|
||||
end else
|
||||
Str.Text := Content;
|
||||
for I := 0 to Str.Count - 1 do
|
||||
if Pos('Updated=', Str[I]) = 1 then
|
||||
Break;
|
||||
if I >= Str.Count then begin
|
||||
Writeln('[-] Failed to check INI date.');
|
||||
Exit;
|
||||
end;
|
||||
Content := StringReplace(Str[I], 'Updated=', '', []);
|
||||
Content := StringReplace(Content, '-', '', [rfReplaceAll]);
|
||||
Str.Free;
|
||||
try
|
||||
Date := StrToInt(Content);
|
||||
except
|
||||
Writeln('[-] Wrong INI date format.');
|
||||
Exit;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function GitINIFile(var Content: String): Boolean;
|
||||
const
|
||||
URL = 'https://raw.githubusercontent.com/binarymaster/rdpwrap/master/res/rdpwrap.ini';
|
||||
var
|
||||
NetHandle: HINTERNET;
|
||||
UrlHandle: HINTERNET;
|
||||
Str: String;
|
||||
Buf: Array[0..1023] of Byte;
|
||||
BytesRead: DWORD;
|
||||
begin
|
||||
Result := False;
|
||||
Content := '';
|
||||
NetHandle := InternetOpen('RDP Wrapper Update', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
|
||||
if not Assigned(NetHandle) then
|
||||
Exit;
|
||||
UrlHandle := InternetOpenUrl(NetHandle, PChar(URL), nil, 0, INTERNET_FLAG_RELOAD, 0);
|
||||
if not Assigned(UrlHandle) then
|
||||
begin
|
||||
InternetCloseHandle(NetHandle);
|
||||
Exit;
|
||||
end;
|
||||
repeat
|
||||
InternetReadFile(UrlHandle, @Buf[0], SizeOf(Buf), BytesRead);
|
||||
SetString(Str, PAnsiChar(@Buf[0]), BytesRead);
|
||||
Content := Content + Str;
|
||||
until BytesRead = 0;
|
||||
InternetCloseHandle(UrlHandle);
|
||||
InternetCloseHandle(NetHandle);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
procedure CheckUpdate;
|
||||
var
|
||||
INIPath, S: String;
|
||||
Str: TStringList;
|
||||
I, OldDate, NewDate: Integer;
|
||||
begin
|
||||
INIPath := ExtractFilePath(ExpandPath(TermServicePath)) + 'rdpwrap.ini';
|
||||
if not CheckINIDate(INIPath, '', OldDate) then
|
||||
Halt(ERROR_ACCESS_DENIED);
|
||||
Writeln('[*] Current update date: ',
|
||||
Format('%d.%.2d.%.2d', [OldDate div 10000, OldDate div 100 mod 100, OldDate mod 100]));
|
||||
|
||||
if not GitINIFile(S) then begin
|
||||
Writeln('[-] Failed to download latest INI from GitHub.');
|
||||
Halt(ERROR_ACCESS_DENIED);
|
||||
end;
|
||||
if not CheckINIDate('', S, NewDate) then
|
||||
Halt(ERROR_ACCESS_DENIED);
|
||||
Writeln('[*] Latest update date: ',
|
||||
Format('%d.%.2d.%.2d', [NewDate div 10000, NewDate div 100 mod 100, NewDate mod 100]));
|
||||
|
||||
if NewDate = OldDate then
|
||||
Writeln('[*] Everything is up to date.')
|
||||
else
|
||||
if NewDate > OldDate then begin
|
||||
Writeln('[+] New update is available, updating...');
|
||||
|
||||
CheckTermsrvProcess;
|
||||
|
||||
Writeln('[*] Terminating service...');
|
||||
AddPrivilege('SeDebugPrivilege');
|
||||
KillProcess(TermServicePID);
|
||||
Sleep(1000);
|
||||
|
||||
if Length(ShareSvc) > 0 then
|
||||
for I := 0 to Length(ShareSvc) - 1 do
|
||||
SvcStart(ShareSvc[I]);
|
||||
Sleep(500);
|
||||
|
||||
Str := TStringList.Create;
|
||||
Str.Text := S;
|
||||
try
|
||||
Str.SaveToFile(INIPath);
|
||||
except
|
||||
Writeln('[-] Failed to write INI file.');
|
||||
Halt(ERROR_ACCESS_DENIED);
|
||||
end;
|
||||
Str.Free;
|
||||
|
||||
SvcStart(TermService);
|
||||
|
||||
Writeln('[+] Update completed.');
|
||||
end else
|
||||
Writeln('[*] Your INI file is newer than public file. Are you a developer? :)');
|
||||
end;
|
||||
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
Writeln('RDP Wrapper Library v1.5');
|
||||
Writeln('Installer v2.2');
|
||||
Writeln('Copyright (C) Stas''M Corp. 2014');
|
||||
Writeln('Copyright (C) Stas''M Corp. 2015');
|
||||
Writeln('');
|
||||
|
||||
if (ParamCount < 1)
|
||||
or (
|
||||
(ParamStr(1) <> '-l')
|
||||
and (ParamStr(1) <> '-i')
|
||||
and (ParamStr(1) <> '-w')
|
||||
and (ParamStr(1) <> '-u')
|
||||
and (ParamStr(1) <> '-r')
|
||||
) then
|
||||
@ -900,6 +1048,7 @@ begin
|
||||
Writeln('-l display the license agreement');
|
||||
Writeln('-i install wrapper to Program Files folder (default)');
|
||||
Writeln('-i -s install wrapper to System32 folder');
|
||||
Writeln('-w get latest update for INI file');
|
||||
Writeln('-u uninstall wrapper');
|
||||
Writeln('-r force restart Terminal Services');
|
||||
Exit;
|
||||
@ -1018,6 +1167,18 @@ begin
|
||||
|
||||
Writeln('[+] Successfully uninstalled.');
|
||||
end;
|
||||
|
||||
if ParamStr(1) = '-w' then
|
||||
begin
|
||||
if not Installed then
|
||||
begin
|
||||
Writeln('[*] RDP Wrapper Library is not installed.');
|
||||
Halt(ERROR_INVALID_FUNCTION);
|
||||
end;
|
||||
Writeln('[*] Checking for updates...');
|
||||
CheckUpdate;
|
||||
end;
|
||||
|
||||
if ParamStr(1) = '-r' then
|
||||
begin
|
||||
Writeln('[*] Restarting...');
|
||||
|
@ -20,8 +20,9 @@
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_ExeOutput>..\bin\</DCC_ExeOutput>
|
||||
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
|
||||
<DCC_DependencyCheckOutputName>RDPWInst.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_DependencyCheckOutputName>..\bin\RDPWInst.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_Platform>x86</DCC_Platform>
|
||||
</PropertyGroup>
|
||||
@ -41,14 +42,14 @@
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<ProjectExtensions>
|
||||
@ -60,7 +61,7 @@
|
||||
<Parameters Name="UseLauncher">False</Parameters>
|
||||
<Parameters Name="LoadAllSymbols">True</Parameters>
|
||||
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
|
||||
<Parameters Name="RunParams">-i</Parameters>
|
||||
<Parameters Name="RunParams">-w</Parameters>
|
||||
</Parameters>
|
||||
<VersionInfo>
|
||||
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
{
|
||||
Copyright 2014 Stas'M Corp.
|
||||
Copyright 2015 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.
|
||||
@ -44,13 +44,12 @@ implementation
|
||||
procedure TFrm.FormCreate(Sender: TObject);
|
||||
var
|
||||
Reg: TRegistry;
|
||||
Port: Integer;
|
||||
begin
|
||||
RDP.DisconnectedText := 'Disconnected.';
|
||||
RDP.ConnectingText := 'Connecting...';
|
||||
RDP.ConnectedStatusText := 'Connected.';
|
||||
RDP.UserName := '';
|
||||
RDP.Server := '127.0.0.1';
|
||||
RDP.Server := '127.0.0.2';
|
||||
Reg := TRegistry.Create;
|
||||
Reg.RootKey := HKEY_LOCAL_MACHINE;
|
||||
|
||||
@ -132,8 +131,8 @@ begin
|
||||
$1707: ErrStr := 'Delegation of credentials to the target server is not allowed unless mutual authentication has been achieved.';
|
||||
$2207: ErrStr := 'The smart card is blocked.';
|
||||
$1C07: ErrStr := 'An incorrect PIN was presented to the smart card.';
|
||||
$B09: ErrStr := 'Network Level Authentication is required.';
|
||||
$708: ErrStr := 'The RDP seems to work, but your client doesn''t support loopback connections. Try to connect to your PC from another device in the network.';
|
||||
$B09: ErrStr := 'Network Level Authentication is required, run RDPCheck as administrator.';
|
||||
$708: ErrStr := 'RDP is working, but the client doesn''t allow loopback connections. Try to connect to your PC from another device in the network.';
|
||||
else ErrStr := 'Unknown code 0x'+IntToHex(discReason, 1);
|
||||
end;
|
||||
if (discReason > 2) then
|
||||
|
@ -20,8 +20,9 @@
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_ExeOutput>..\bin\</DCC_ExeOutput>
|
||||
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
|
||||
<DCC_DependencyCheckOutputName>RDPCheck.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_DependencyCheckOutputName>..\bin\RDPCheck.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_Platform>x86</DCC_Platform>
|
||||
</PropertyGroup>
|
||||
@ -44,14 +45,14 @@
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<ProjectExtensions>
|
||||
@ -68,7 +69,7 @@
|
||||
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
|
||||
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||
<VersionInfo Name="MajorVer">2</VersionInfo>
|
||||
<VersionInfo Name="MinorVer">1</VersionInfo>
|
||||
<VersionInfo Name="MinorVer">2</VersionInfo>
|
||||
<VersionInfo Name="Release">0</VersionInfo>
|
||||
<VersionInfo Name="Build">0</VersionInfo>
|
||||
<VersionInfo Name="Debug">False</VersionInfo>
|
||||
@ -82,13 +83,13 @@
|
||||
<VersionInfoKeys>
|
||||
<VersionInfoKeys Name="CompanyName">Stas'M Corp.</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="FileDescription">Local RDP Checker</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="FileVersion">2.2.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="InternalName">RDPCheck</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="LegalCopyright">Copyright © Stas'M Corp. 2014</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="LegalCopyright">Copyright © Stas'M Corp. 2015</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="LegalTrademarks">Stas'M Corp.</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="OriginalFilename">RDPCheck.exe</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="ProductName">RDP Host Support</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="ProductVersion">1.3.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="ProductVersion">1.6.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="Comments">http://stascorp.com</VersionInfoKeys>
|
||||
</VersionInfoKeys>
|
||||
<Excluded_Packages>
|
||||
|
Binary file not shown.
@ -3,7 +3,7 @@ object MainForm: TMainForm
|
||||
Top = 0
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'RDP Wrapper Configuration'
|
||||
ClientHeight = 326
|
||||
ClientHeight = 352
|
||||
ClientWidth = 351
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@ -27,7 +27,7 @@ object MainForm: TMainForm
|
||||
end
|
||||
object bOK: TButton
|
||||
Left = 10
|
||||
Top = 293
|
||||
Top = 319
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'OK'
|
||||
@ -37,7 +37,7 @@ object MainForm: TMainForm
|
||||
end
|
||||
object bCancel: TButton
|
||||
Left = 91
|
||||
Top = 293
|
||||
Top = 319
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Cancel'
|
||||
@ -47,7 +47,7 @@ object MainForm: TMainForm
|
||||
end
|
||||
object bApply: TButton
|
||||
Left = 172
|
||||
Top = 293
|
||||
Top = 319
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Apply'
|
||||
@ -66,7 +66,7 @@ object MainForm: TMainForm
|
||||
end
|
||||
object rgNLA: TRadioGroup
|
||||
Left = 8
|
||||
Top = 135
|
||||
Top = 132
|
||||
Width = 335
|
||||
Height = 73
|
||||
Caption = 'Security Mode'
|
||||
@ -88,14 +88,16 @@ object MainForm: TMainForm
|
||||
end
|
||||
object rgShadow: TRadioGroup
|
||||
Left = 8
|
||||
Top = 214
|
||||
Top = 208
|
||||
Width = 335
|
||||
Height = 73
|
||||
Height = 105
|
||||
Caption = 'Session Shadowing Mode'
|
||||
Items.Strings = (
|
||||
'Disable Shadowing'
|
||||
'Shadowing will request user'#39's permission'
|
||||
'Shadow sessions immediately')
|
||||
'Full access with user'#39's permission'
|
||||
'Full access without permission'
|
||||
'View only with user'#39's permission'
|
||||
'View only without permission')
|
||||
TabOrder = 6
|
||||
OnClick = cbAllowTSConnectionsClick
|
||||
end
|
||||
@ -112,7 +114,7 @@ object MainForm: TMainForm
|
||||
end
|
||||
object bLicense: TButton
|
||||
Left = 253
|
||||
Top = 293
|
||||
Top = 319
|
||||
Width = 87
|
||||
Height = 25
|
||||
Caption = 'View license...'
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
Copyright 2014 Stas'M Corp.
|
||||
Copyright 2015 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.
|
||||
@ -439,6 +439,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
Reg.OpenKey('\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services', True);
|
||||
if rgShadow.ItemIndex >= 0 then begin
|
||||
try
|
||||
Reg.WriteInteger('Shadow', rgShadow.ItemIndex);
|
||||
except
|
||||
|
||||
end;
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
Reg.Free;
|
||||
end;
|
||||
|
||||
|
@ -20,8 +20,9 @@
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_ExeOutput>..\bin\</DCC_ExeOutput>
|
||||
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
|
||||
<DCC_DependencyCheckOutputName>RDPConf.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_DependencyCheckOutputName>..\bin\RDPConf.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_Platform>x86</DCC_Platform>
|
||||
</PropertyGroup>
|
||||
@ -47,14 +48,14 @@
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<ProjectExtensions>
|
||||
|
Binary file not shown.
Binary file not shown.
@ -42,14 +42,14 @@
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<ProjectExtensions>
|
||||
|
138
technical.txt
138
technical.txt
@ -1,50 +1,112 @@
|
||||
RDP Wrapper Library project by Stas'M
|
||||
|
||||
Terminal Services supported versions
|
||||
6.0.X.X (Windows Vista, any) [policy hook only]
|
||||
6.0.6000.16386 (Windows Vista) [policy hook + extended patch]
|
||||
6.0.6001.18000 (Windows Vista SP1) [policy hook + extended patch]
|
||||
6.0.6001.22565 (Windows Vista SP1 with KB977541) [todo]
|
||||
6.0.6001.22635 (Windows Vista SP1 with KB970911) [todo]
|
||||
6.0.6001.22801 (Windows Vista SP1 with KB2381675) [todo]
|
||||
6.0.6002.18005 (Windows Vista SP2) [policy hook + extended patch]
|
||||
6.0.6002.22269 (Windows Vista SP2 with KB977541) [todo]
|
||||
6.0.6002.22340 (Windows Vista SP2 with KB970911) [todo]
|
||||
6.0.6002.22515 (Windows Vista SP2 with KB2381675) [todo]
|
||||
6.0.6002.22641 (Windows Vista SP2 with KB2523307) [todo]
|
||||
6.0.6002.19214 (Windows Vista SP2 with KB3003743 GDR) [policy hook + extended patch]
|
||||
6.0.6002.23521 (Windows Vista SP2 with KB3003743 LDR) [policy hook + extended patch]
|
||||
6.1.X.X (Windows 7, any) [policy hook only]
|
||||
6.1.7600.16385 (Windows 7) [policy hook + extended patch]
|
||||
6.1.7600.20890 (Windows 7 with KB2479710) [todo]
|
||||
6.1.7600.21316 (Windows 7 with KB2750090) [todo]
|
||||
6.1.7601.17514 (Windows 7 SP1) [policy hook + extended patch]
|
||||
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.18540 (Windows 7 SP1 with KB2984972 GDR) [policy hook + extended patch]
|
||||
6.1.7601.22750 (Windows 7 SP1 with KB2984972 LDR) [policy hook + extended patch]
|
||||
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.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]
|
||||
6.2.9200.16384 (Windows 8) [policy hook + extended patch]
|
||||
6.2.9200.17048 (Windows 8 with KB2973501 GDR) [policy hook + extended patch]
|
||||
6.2.9200.21166 (Windows 8 with KB2973501 LDR) [policy hook + extended patch]
|
||||
6.3.9431.0 (Windows 8.1 Preview) [init hook + extended patch]
|
||||
6.3.9600.16384 (Windows 8.1) [init hook + extended patch]
|
||||
6.3.9600.17095 (Windows 8.1 with KB2959626) [init hook + extended patch]
|
||||
6.3.9600.17415 (Windows 8.1 with KB3000850) [init hook + extended patch]
|
||||
6.4.9841.0 (Windows 10 Technical Preview) [init hook + extended patch]
|
||||
6.4.9860.0 (Windows 10 Technical Preview Update 1) [init hook + extended patch]
|
||||
6.4.9879.0 (Windows 10 Technical Preview Update 2) [init hook + extended patch]
|
||||
6.0.X.X (Windows Vista, any) [policy hook only]
|
||||
6.0.6000.16386 (Windows Vista) [policy hook + extended patch]
|
||||
6.0.6000.20723 (Windows Vista with KB944917) [todo]
|
||||
6.0.6001.18000 (Windows Vista SP1) [policy hook + extended patch]
|
||||
6.0.6001.22286 (Windows Vista SP1 with KB958612) [todo]
|
||||
6.0.6001.22357 (Windows Vista SP1 with KB958612 v2) [todo]
|
||||
6.0.6001.22323 (Windows Vista SP1 with KB960742) [todo]
|
||||
6.0.6001.22392 (Windows Vista SP1 with KB968680) [todo]
|
||||
6.0.6001.22565 (Windows Vista SP1 with KB977541) [todo]
|
||||
6.0.6001.22635 (Windows Vista SP1 with KB970911) [todo]
|
||||
6.0.6001.22801 (Windows Vista SP1 with KB2381675) [todo]
|
||||
6.0.6002.18005 (Windows Vista SP2) [policy hook + extended patch]
|
||||
6.0.6002.22269 (Windows Vista SP2 with KB977541) [todo]
|
||||
6.0.6002.22340 (Windows Vista SP2 with KB970911) [todo]
|
||||
6.0.6002.22515 (Windows Vista SP2 with KB2381675) [todo]
|
||||
6.0.6002.22641 (Windows Vista SP2 with KB2523307) [todo]
|
||||
6.0.6002.22790 (Windows Vista SP2 with KB2672601) [todo]
|
||||
6.0.6002.19214 (Windows Vista SP2 with KB3003743 GDR) [policy hook + extended patch]
|
||||
6.0.6002.23521 (Windows Vista SP2 with KB3003743 LDR) [policy hook + extended patch]
|
||||
6.1.X.X (Windows 7, any) [policy hook only]
|
||||
6.1.7100.0 (Windows 7 Release Candidate) [todo]
|
||||
6.1.7600.16385 (Windows 7) [policy hook + extended patch]
|
||||
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.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.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]
|
||||
6.1.7601.22477 (Windows 7 SP1 with KB2896256) [todo]
|
||||
6.1.7601.18540 (Windows 7 SP1 with KB2984972 GDR) [policy hook + extended patch]
|
||||
6.1.7601.22750 (Windows 7 SP1 with KB2984972 LDR) [policy hook + extended patch]
|
||||
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.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]
|
||||
6.2.9200.16384 (Windows 8) [policy hook + extended patch]
|
||||
6.2.9200.17048 (Windows 8 with KB2973501 GDR) [policy hook + extended patch]
|
||||
6.2.9200.21166 (Windows 8 with KB2973501 LDR) [policy hook + extended patch]
|
||||
6.3.9431.0 (Windows 8.1 Preview) [init hook + extended patch]
|
||||
6.3.9600.16384 (Windows 8.1) [init hook + extended patch]
|
||||
6.3.9600.17095 (Windows 8.1 with KB2959626) [init hook + extended patch]
|
||||
6.3.9600.17415 (Windows 8.1 with KB3000850) [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]
|
||||
10.0.9926.0 (Windows 10 Pro Technical Preview) [init hook + extended patch]
|
||||
10.0.10041.0 (Windows 10 Pro Technical Preview UP1) [init hook + extended patch]
|
||||
10.0.10049.0 (Windows 10 Pro Technical Preview UP2) [todo]
|
||||
10.0.10061.0 (Windows 10 Pro Technical Preview UP3) [todo]
|
||||
10.0.10240.16384 (Windows 10 RTM) [init hook + extended patch]
|
||||
|
||||
Known failures
|
||||
6.0.6000.16386 (Windows Vista RTM x86, crashes on logon attempt)
|
||||
|
||||
Source code changelog (rdpwrap library):
|
||||
|
||||
2015.08.11 :
|
||||
- embed new rdpclip versions in the installer (for NT 6.0 and 6.1)
|
||||
- preparing the release
|
||||
|
||||
2015.08.07 :
|
||||
- added INI update feature to installer
|
||||
|
||||
2015.07.30 :
|
||||
- fixed issue with Windows 10 Home x86 (wrong LocalOnly offset was specified in INI file)
|
||||
|
||||
2015.07.17 :
|
||||
- added support for termsrv.dll 10.0.10240.16384
|
||||
- added HOW TO hints to KB (so other reverse engineers can do this hard work more easier)
|
||||
|
||||
2015.07.16 :
|
||||
- moved all comments from INI file to Knowledge Base text file
|
||||
- now INI file have smaller size
|
||||
- updated RDP checker: changed IP Address to 127.0.0.2 (sometimes client doesn't want to connect .1), updated text message
|
||||
- updated RDP config: list all possible shadowing modes, also write group policy
|
||||
- updated installer: added workaround for 1056 error
|
||||
- updated copyright years in source code
|
||||
- obtained files from build 10.0.10240.16384
|
||||
- researching Windows 10 RTM
|
||||
|
||||
2015.03.23 :
|
||||
- researching Windows 10 Pro Technical Preview UP1
|
||||
- added support for termsrv.dll 10.0.10041.0
|
||||
|
||||
2015.03.20 :
|
||||
- new build 10.0.10041.0 was released, obtaining files...
|
||||
|
||||
2015.01.26 :
|
||||
- researching Windows 10 Pro Technical Preview (10.0.9926.0 x86)
|
||||
- added support for termsrv.dll 10.0.9926.0 (x86)
|
||||
|
||||
2015.01.22 :
|
||||
- v-yadli contributed offsets for version 10.0.9926.0 (x64)
|
||||
|
||||
2014.12.13 :
|
||||
- added more policy values to INI file
|
||||
|
||||
2014.12.10 :
|
||||
- C++ version seems to work well now!
|
||||
- added support for termsrv.dll 6.4.9879.0
|
||||
|
Reference in New Issue
Block a user