mirror of
				https://github.com/Wind4/vlmcsd.git
				synced 2025-11-04 04:52:15 +01:00 
			
		
		
		
	vlmcsd-svn1031-2016-10-06-Hotbird64
This commit is contained in:
		
							
								
								
									
										236
									
								
								VisualStudio/libkms/libkms.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								VisualStudio/libkms/libkms.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,236 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{2A0FC04D-C3C0-43E2-8812-53AE901C5395}</ProjectGuid>
 | 
				
			||||||
 | 
					    <RootNamespace>vlmcsdmulti</RootNamespace>
 | 
				
			||||||
 | 
					    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="Shared">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>libkms32</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <TargetExt>.dll</TargetExt>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>libkms64</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <TargetExt>.dll</TargetExt>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <TargetName>$(ProjectName)64</TargetName>
 | 
				
			||||||
 | 
					    <TargetExt>.dll</TargetExt>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <TargetExt>.dll</TargetExt>
 | 
				
			||||||
 | 
					    <TargetName>$(ProjectName)32</TargetName>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <CompileAs>Default</CompileAs>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;_MBCS;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC;SIMPLE_SOCKETS;NO_TIMEOUT;NO_SIGHUP;NO_CL_PIDS;NO_EXTENDED_PRODUCT_LIST;NO_BASIC_PRODUCT_LIST;NO_LOG;NO_RANDOM_EPID;NO_INI_FILE;NO_HELP;NO_CUSTOM_INTERVALS;NO_PID_FILE;NO_USER_SWITCH;NO_VERBOSE_LOG;NO_LIMIT;NO_VERSION_INFORMATION;NO_PRIVATE_IP_DETECT;IS_LIBRARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>NotSet</SubSystem>
 | 
				
			||||||
 | 
					      <MinimumRequiredVersion />
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC;SIMPLE_SOCKETS;NO_TIMEOUT;NO_SIGHUP;NO_CL_PIDS;NO_EXTENDED_PRODUCT_LIST;NO_BASIC_PRODUCT_LIST;NO_LOG;NO_RANDOM_EPID;NO_INI_FILE;NO_HELP;NO_CUSTOM_INTERVALS;NO_PID_FILE;NO_USER_SWITCH;NO_VERBOSE_LOG;NO_LIMIT;NO_VERSION_INFORMATION;NO_PRIVATE_IP_DETECT;IS_LIBRARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>NotSet</SubSystem>
 | 
				
			||||||
 | 
					      <MinimumRequiredVersion />
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <CallingConvention>Cdecl</CallingConvention>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <OmitFramePointers>true</OmitFramePointers>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;SIMPLE_SOCKETS;NO_TIMEOUT;NO_SIGHUP;NO_CL_PIDS;NO_EXTENDED_PRODUCT_LIST;NO_BASIC_PRODUCT_LIST;NO_LOG;NO_RANDOM_EPID;NO_INI_FILE;NO_HELP;NO_CUSTOM_INTERVALS;NO_PID_FILE;NO_USER_SWITCH;NO_VERBOSE_LOG;NO_LIMIT;NO_VERSION_INFORMATION;NO_PRIVATE_IP_DETECT;IS_LIBRARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>NotSet</SubSystem>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>
 | 
				
			||||||
 | 
					      </TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					      <MinimumRequiredVersion />
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;SIMPLE_SOCKETS;NO_TIMEOUT;NO_SIGHUP;NO_CL_PIDS;NO_EXTENDED_PRODUCT_LIST;NO_BASIC_PRODUCT_LIST;NO_LOG;NO_RANDOM_EPID;NO_INI_FILE;NO_HELP;NO_CUSTOM_INTERVALS;NO_PID_FILE;NO_USER_SWITCH;NO_VERBOSE_LOG;NO_LIMIT;NO_VERSION_INFORMATION;NO_PRIVATE_IP_DETECT;IS_LIBRARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <TreatWarningAsError>false</TreatWarningAsError>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt64.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>NotSet</SubSystem>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>
 | 
				
			||||||
 | 
					      </TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					      <MinimumRequiredVersion />
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\libkms.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\libkms.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										93
									
								
								VisualStudio/libkms/libkms.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								VisualStudio/libkms/libkms.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\libkms.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\libkms.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								VisualStudio/msvcrt.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								VisualStudio/msvcrt.lib
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								VisualStudio/msvcrt64.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								VisualStudio/msvcrt64.lib
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										227
									
								
								VisualStudio/vlmcs/vlmcs.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								VisualStudio/vlmcs/vlmcs.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,227 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}</ProjectGuid>
 | 
				
			||||||
 | 
					    <RootNamespace>vlmcs</RootNamespace>
 | 
				
			||||||
 | 
					    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="Shared">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>vlmcs-Windows-x86</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>vlmcs-Windows-x64</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <CompileAs>Default</CompileAs>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;_MBCS;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <CallingConvention>Cdecl</CallingConvention>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <OmitFramePointers>true</OmitFramePointers>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions);_CRYPTO_WINDOWS</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>true</TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <TreatWarningAsError>false</TreatWarningAsError>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt64.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>true</TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\dns_srv.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\wingetopt.c" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_internal.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\dns_srv.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\wingetopt.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										102
									
								
								VisualStudio/vlmcs/vlmcs.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								VisualStudio/vlmcs/vlmcs.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\dns_srv.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\wingetopt.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_internal.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\dns_srv.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\wingetopt.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										58
									
								
								VisualStudio/vlmcsd-2015-with-2013-c++-build-tools.sln
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								VisualStudio/vlmcsd-2015-with-2013-c++-build-tools.sln
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
 | 
					# Visual Studio 14
 | 
				
			||||||
 | 
					VisualStudioVersion = 14.0.25420.1
 | 
				
			||||||
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcsd", "vlmcsd.vcxproj", "{918B4F5B-6356-451E-998C-5FCB29988170}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcs", "vlmcs\vlmcs.vcxproj", "{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vlmcsdmulti", "vlmcsdmulti\vlmcsdmulti.vcxproj", "{7F07671D-1432-43E9-9D72-08435F216B5E}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libkms", "libkms\libkms.vcxproj", "{2A0FC04D-C3C0-43E2-8812-53AE901C5395}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Debug|x64 = Debug|x64
 | 
				
			||||||
 | 
							Debug|x86 = Debug|x86
 | 
				
			||||||
 | 
							Release|x64 = Release|x64
 | 
				
			||||||
 | 
							Release|x86 = Release|x86
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Debug|x86.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Debug|x86.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Release|x86.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{918B4F5B-6356-451E-998C-5FCB29988170}.Release|x86.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Debug|x86.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Debug|x86.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Release|x86.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{2B3F305D-6351-4F4A-A7F2-1F9B1988CDEE}.Release|x86.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Debug|x86.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Debug|x86.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Release|x86.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{7F07671D-1432-43E9-9D72-08435F216B5E}.Release|x86.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Debug|x86.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Debug|x86.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Release|x86.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{2A0FC04D-C3C0-43E2-8812-53AE901C5395}.Release|x86.Build.0 = Release|Win32
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										229
									
								
								VisualStudio/vlmcsd.vcxproj
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										229
									
								
								VisualStudio/vlmcsd.vcxproj
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,229 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{918B4F5B-6356-451E-998C-5FCB29988170}</ProjectGuid>
 | 
				
			||||||
 | 
					    <RootNamespace>vlmcsd</RootNamespace>
 | 
				
			||||||
 | 
					    <WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					    </WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="Shared">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>vlmcsd-Windows-x64</TargetName>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <LinkIncremental>false</LinkIncremental>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					    <TargetName>vlmcsd-Windows-x86</TargetName>
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>Iphlpapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>Iphlpapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <ControlFlowGuard>false</ControlFlowGuard>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <CallingConvention>Cdecl</CallingConvention>
 | 
				
			||||||
 | 
					      <CompileAs>Default</CompileAs>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <CompileAsManaged>false</CompileAsManaged>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <OmitFramePointers>true</OmitFramePointers>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
				
			||||||
 | 
					      <TreatWarningAsError>false</TreatWarningAsError>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions);_CRYPTO_WINDOWS</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					      <CompileAsWinRT>false</CompileAsWinRT>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt.lib;Iphlpapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile />
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>true</TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <OmitFramePointers>true</OmitFramePointers>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <ControlFlowGuard>false</ControlFlowGuard>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
				
			||||||
 | 
					      <CompileAsManaged>false</CompileAsManaged>
 | 
				
			||||||
 | 
					      <TreatWarningAsError>false</TreatWarningAsError>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt64.lib;Iphlpapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
 | 
				
			||||||
 | 
					      <ProgramDatabaseFile />
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\config.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto_internal.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto_windows.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\endian.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\helpers.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\kms.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\network.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\ntservice.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\output.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\rpc.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\shared_globals.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\types.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\vlmcsd.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\wingetopt.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\crypto.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\crypto_windows.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\endian.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\helpers.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\kms.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\network.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\ntservice.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\output.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\rpc.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\shared_globals.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\vlmcsd.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\wingetopt.c" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										102
									
								
								VisualStudio/vlmcsd.vcxproj.filters
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										102
									
								
								VisualStudio/vlmcsd.vcxproj.filters
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\config.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto_internal.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\crypto_windows.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\endian.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\helpers.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\kms.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\network.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\ntservice.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\output.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\rpc.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\shared_globals.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\types.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\vlmcsd.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\wingetopt.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\crypto.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\crypto_windows.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\endian.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\helpers.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\kms.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\network.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\ntservice.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\output.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\rpc.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\shared_globals.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\vlmcsd.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\wingetopt.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										231
									
								
								VisualStudio/vlmcsdmulti/vlmcsdmulti.vcxproj
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										231
									
								
								VisualStudio/vlmcsdmulti/vlmcsdmulti.vcxproj
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,231 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{7F07671D-1432-43E9-9D72-08435F216B5E}</ProjectGuid>
 | 
				
			||||||
 | 
					    <RootNamespace>vlmcsdmulti</RootNamespace>
 | 
				
			||||||
 | 
					    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <PlatformToolset>v120_xp</PlatformToolset>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>MultiByte</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="Shared">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>vlmcsdmulti-Windows-x86</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <OutDir>$(SolutionDir)..\</OutDir>
 | 
				
			||||||
 | 
					    <TargetName>vlmcsdmulti-Windows-x64</TargetName>
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <GenerateManifest>false</GenerateManifest>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <CompileAs>Default</CompileAs>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;_MBCS;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC;MULTI_CALL_BINARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <SDLCheck>true</SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;_PEDANTIC;MULTI_CALL_BINARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <MinimalRebuild>false</MinimalRebuild>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <CallingConvention>Cdecl</CallingConvention>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <OmitFramePointers>true</OmitFramePointers>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;MULTI_CALL_BINARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>true</TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>MinSpace</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <SDLCheck>
 | 
				
			||||||
 | 
					      </SDLCheck>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions);_CRYPTO_WINDOWS;MULTI_CALL_BINARY=1</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <DebugInformationFormat>None</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <TreatWarningAsError>false</TreatWarningAsError>
 | 
				
			||||||
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
 | 
					      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 | 
				
			||||||
 | 
					      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 | 
				
			||||||
 | 
					      <StringPooling>true</StringPooling>
 | 
				
			||||||
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <BufferSecurityCheck>false</BufferSecurityCheck>
 | 
				
			||||||
 | 
					      <FloatingPointModel>Fast</FloatingPointModel>
 | 
				
			||||||
 | 
					      <FloatingPointExceptions>false</FloatingPointExceptions>
 | 
				
			||||||
 | 
					      <CreateHotpatchableImage>false</CreateHotpatchableImage>
 | 
				
			||||||
 | 
					      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
				
			||||||
 | 
					      <OpenMPSupport>false</OpenMPSupport>
 | 
				
			||||||
 | 
					      <AdditionalOptions>$(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>$(SolutionDir)\msvcrt64.lib;Shlwapi.lib;Iphlpapi.lib;Dnsapi.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <LargeAddressAware>true</LargeAddressAware>
 | 
				
			||||||
 | 
					      <TerminalServerAware>true</TerminalServerAware>
 | 
				
			||||||
 | 
					      <SwapRunFromCD>true</SwapRunFromCD>
 | 
				
			||||||
 | 
					      <SwapRunFromNET>true</SwapRunFromNET>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\dns_srv.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\ntservice.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcsd.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcsdmulti.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\wingetopt.c" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\dns_srv.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\ntservice.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcsd.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\wingetopt.h" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										114
									
								
								VisualStudio/vlmcsdmulti/vlmcsdmulti.vcxproj.filters
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										114
									
								
								VisualStudio/vlmcsdmulti/vlmcsdmulti.vcxproj.filters
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,114 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Filter Include="Source Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Header Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Resource Files">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 | 
				
			||||||
 | 
					      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\crypto_windows.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\dns_srv.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\endian.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\helpers.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\kms.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\network.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\output.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\rpc.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\shared_globals.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcs.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\wingetopt.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\ntservice.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcsd.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\vlmcsdmulti.c">
 | 
				
			||||||
 | 
					      <Filter>Source Files</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\config.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\crypto_windows.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\dns_srv.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\endian.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\helpers.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\kms.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\network.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\output.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\rpc.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\shared_globals.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\types.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcs.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\wingetopt.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\ntservice.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\vlmcsd.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										2
									
								
								crypto.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								crypto.c
									
									
									
									
									
								
							@@ -117,7 +117,7 @@ void AesInitKey(AesCtx *Ctx, const BYTE *Key, int_fast8_t IsV6, int RijndaelKeyB
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	memcpy(Ctx->Key, Key, RijndaelKeyBytes);
 | 
						memcpy(Ctx->Key, Key, RijndaelKeyBytes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for ( i = RijndaelKeyDwords; i < ( Ctx->rounds + 1 ) << 2; i++ )
 | 
						for ( i = (uint_fast8_t)RijndaelKeyDwords; i < ( Ctx->rounds + 1 ) << 2; i++ )
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		temp = Ctx->Key[ i - 1 ];
 | 
							temp = Ctx->Key[ i - 1 ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								crypto.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								crypto.h
									
									
									
									
									
								
							@@ -14,12 +14,10 @@
 | 
				
			|||||||
#include "endian.h"
 | 
					#include "endian.h"
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//#define AES_ROUNDS      (10)
 | 
					 | 
				
			||||||
#define AES_KEY_BYTES   (16) // 128 Bits
 | 
					#define AES_KEY_BYTES   (16) // 128 Bits
 | 
				
			||||||
#define AES_BLOCK_BYTES (16)
 | 
					#define AES_BLOCK_BYTES (16)
 | 
				
			||||||
#define AES_BLOCK_WORDS (AES_BLOCK_BYTES / sizeof(DWORD))
 | 
					#define AES_BLOCK_WORDS (AES_BLOCK_BYTES / sizeof(DWORD))
 | 
				
			||||||
#define AES_KEY_DWORDS  (AES_KEY_BYTES / sizeof(DWORD))
 | 
					#define AES_KEY_DWORDS  (AES_KEY_BYTES / sizeof(DWORD))
 | 
				
			||||||
//#define V4_ROUNDS		(11)
 | 
					 | 
				
			||||||
#define V4_KEY_BYTES	(20) // 160 Bits
 | 
					#define V4_KEY_BYTES	(20) // 160 Bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ROR32(v, n)  ( (v) << (32 - n) | (v) >> n )
 | 
					#define ROR32(v, n)  ( (v) << (32 - n) | (v) >> n )
 | 
				
			||||||
@@ -39,7 +37,7 @@ typedef struct {
 | 
				
			|||||||
void AesInitKey(AesCtx *Ctx, const BYTE *Key, int_fast8_t IsV6, int AesKeyBytes);
 | 
					void AesInitKey(AesCtx *Ctx, const BYTE *Key, int_fast8_t IsV6, int AesKeyBytes);
 | 
				
			||||||
void AesEncryptBlock(const AesCtx *const Ctx, BYTE *block);
 | 
					void AesEncryptBlock(const AesCtx *const Ctx, BYTE *block);
 | 
				
			||||||
void AesDecryptBlock(const AesCtx *const Ctx, BYTE *block);
 | 
					void AesDecryptBlock(const AesCtx *const Ctx, BYTE *block);
 | 
				
			||||||
void AesEncryptCbc(const AesCtx *const Ctx, BYTE *iv, BYTE *data, size_t *len);
 | 
					void AesEncryptCbc(const AesCtx *const Ctx, BYTE *restrict iv, BYTE *restrict data, size_t *restrict len);
 | 
				
			||||||
void AesDecryptCbc(const AesCtx *const Ctx, BYTE *iv, BYTE *data, size_t len);
 | 
					void AesDecryptCbc(const AesCtx *const Ctx, BYTE *iv, BYTE *data, size_t len);
 | 
				
			||||||
void MixColumnsR(BYTE *restrict state);
 | 
					void MixColumnsR(BYTE *restrict state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -95,7 +95,7 @@ static void Sha256Update(Sha256Ctx *Ctx, BYTE *data, size_t len)
 | 
				
			|||||||
	unsigned int  b_len = Ctx->Len & 63,
 | 
						unsigned int  b_len = Ctx->Len & 63,
 | 
				
			||||||
								r_len = (b_len ^ 63) + 1;
 | 
													r_len = (b_len ^ 63) + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Ctx->Len += len;
 | 
						Ctx->Len += (unsigned int)len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ( len < r_len )
 | 
						if ( len < r_len )
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@ static int_fast8_t AcquireCryptContext()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	if (!hRsaAesProvider)
 | 
						if (!hRsaAesProvider)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return CryptAcquireContextW
 | 
							return (int_fast8_t)CryptAcquireContextW
 | 
				
			||||||
		(
 | 
							(
 | 
				
			||||||
			&hRsaAesProvider,		// Provider handle
 | 
								&hRsaAesProvider,		// Provider handle
 | 
				
			||||||
			NULL,					// No key container name
 | 
								NULL,					// No key container name
 | 
				
			||||||
@@ -163,7 +163,7 @@ int_fast8_t Sha256Hmac(const BYTE* key, BYTE* restrict data, DWORD len, BYTE* re
 | 
				
			|||||||
	if (hKey) CryptDestroyKey(hKey);
 | 
						if (hKey) CryptDestroyKey(hKey);
 | 
				
			||||||
	if (hHmacHash) CryptDestroyHash(hHmacHash);
 | 
						if (hHmacHash) CryptDestroyHash(hHmacHash);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return success;
 | 
						return (int_fast8_t)success;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // _WIN32 || __CYGWIN__
 | 
					#endif // _WIN32 || __CYGWIN__
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,9 @@
 | 
				
			|||||||
#else // _WIN32 || __CYGWIN__
 | 
					#else // _WIN32 || __CYGWIN__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#include "Wincrypt.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Sha2356HmacCtx
 | 
					typedef struct _Sha2356HmacCtx
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -18,7 +21,7 @@ typedef struct _Sha2356HmacCtx
 | 
				
			|||||||
	HCRYPTKEY hKey;
 | 
						HCRYPTKEY hKey;
 | 
				
			||||||
} Sha256HmacCtx;
 | 
					} Sha256HmacCtx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int_fast8_t Sha256(BYTE *data, DWORD len, BYTE *hash);
 | 
					int_fast8_t Sha256(BYTE* restrict data, DWORD DataSize, BYTE* restrict hash);
 | 
				
			||||||
int_fast8_t Sha256Hmac(const BYTE* key, BYTE* restrict data, DWORD len, BYTE* restrict hmac);
 | 
					int_fast8_t Sha256Hmac(const BYTE* key, BYTE* restrict data, DWORD len, BYTE* restrict hmac);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*int_fast8_t Sha256HmacInit(Sha256HmacCtx *Ctx, BYTE *key, uint8_t keySize);
 | 
					/*int_fast8_t Sha256HmacInit(Sha256HmacCtx *Ctx, BYTE *key, uint8_t keySize);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -309,7 +309,7 @@ int getKmsServerList(kms_server_dns_ptr** serverlist, const char *const restrict
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		memset(kms_server, 0, sizeof(kms_server_dns_t));
 | 
							memset(kms_server, 0, sizeof(kms_server_dns_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		snprintf(kms_server->serverName, sizeof(kms_server->serverName), "%s:%hu", dns_iterator->Data.SRV.pNameTarget, dns_iterator->Data.SRV.wPort);
 | 
							vlmcsd_snprintf(kms_server->serverName, sizeof(kms_server->serverName), "%s:%hu", dns_iterator->Data.SRV.pNameTarget, dns_iterator->Data.SRV.wPort);
 | 
				
			||||||
		kms_server->priority = dns_iterator->Data.SRV.wPriority;
 | 
							kms_server->priority = dns_iterator->Data.SRV.wPriority;
 | 
				
			||||||
		kms_server->weight = dns_iterator->Data.SRV.wWeight;
 | 
							kms_server->weight = dns_iterator->Data.SRV.wWeight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -96,7 +96,7 @@ typedef enum __ns_class {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int getKmsServerList(kms_server_dns_ptr** serverlist, const char *restrict query);
 | 
					int getKmsServerList(kms_server_dns_ptr** serverlist, const char *const restrict query);
 | 
				
			||||||
void sortSrvRecords(kms_server_dns_ptr* serverlist, const int answers);
 | 
					void sortSrvRecords(kms_server_dns_ptr* serverlist, const int answers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // NO_DNS
 | 
					#endif // NO_DNS
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								floppy144.vfd
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								floppy144.vfd
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								helpers.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								helpers.c
									
									
									
									
									
								
							@@ -2,6 +2,10 @@
 | 
				
			|||||||
 * Helper functions used by other modules
 | 
					 * Helper functions used by other modules
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#define _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef CONFIG
 | 
					#ifndef CONFIG
 | 
				
			||||||
#define CONFIG "config.h"
 | 
					#define CONFIG "config.h"
 | 
				
			||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
@@ -10,7 +14,11 @@
 | 
				
			|||||||
#ifndef _WIN32
 | 
					#ifndef _WIN32
 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#endif // _WIN32
 | 
					#endif // _WIN32
 | 
				
			||||||
 | 
					#ifndef _MSC_VER
 | 
				
			||||||
#include <getopt.h>
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include "wingetopt.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
@@ -20,6 +28,7 @@
 | 
				
			|||||||
#include "shared_globals.h"
 | 
					#include "shared_globals.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 *  UCS2 <-> UTF-8 functions
 | 
					 *  UCS2 <-> UTF-8 functions
 | 
				
			||||||
 *  All functions use little endian UCS2 since we only need it to communicate with Windows via RPC
 | 
					 *  All functions use little endian UCS2 since we only need it to communicate with Windows via RPC
 | 
				
			||||||
@@ -72,7 +81,7 @@ int ucs2_to_utf8_char (const WCHAR ucs2_le, char *utf8)
 | 
				
			|||||||
    const WCHAR ucs2 = LE16(ucs2_le);
 | 
					    const WCHAR ucs2 = LE16(ucs2_le);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ucs2 < 0x80) {
 | 
					    if (ucs2 < 0x80) {
 | 
				
			||||||
        utf8[0] = ucs2;
 | 
					        utf8[0] = (char)ucs2;
 | 
				
			||||||
        utf8[1] = '\0';
 | 
					        utf8[1] = '\0';
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -153,7 +162,7 @@ BOOL stringToInt(const char *const szValue, const unsigned int min, const unsign
 | 
				
			|||||||
	char *nextchar;
 | 
						char *nextchar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	errno = 0;
 | 
						errno = 0;
 | 
				
			||||||
	long long result = strtoll(szValue, &nextchar, 10);
 | 
						long long result = vlmcsd_strtoll(szValue, &nextchar, 10);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (errno || result < (long long)min || result > (long long)max || *nextchar)
 | 
						if (errno || result < (long long)min || result > (long long)max || *nextchar)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -177,7 +186,7 @@ int_fast8_t string2Uuid(const char *const restrict input, GUID *const restrict g
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		if (i == 8 || i == 13 || i == 18 || i == 23) continue;
 | 
							if (i == 8 || i == 13 || i == 18 || i == 23) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const char c = toupper((int)input[i]);
 | 
							const char c = (char)toupper((int)input[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (c < '0' || c > 'F' || (c > '9' && c < 'A')) return FALSE;
 | 
							if (c < '0' || c > 'F' || (c > '9' && c < 'A')) return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -211,7 +220,7 @@ void LEGUID(GUID *const restrict out, const GUID* const restrict in)
 | 
				
			|||||||
	#endif
 | 
						#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !IS_LIBRARY
 | 
				
			||||||
//Checks a command line argument if it is numeric and between min and max. Returns the numeric value or exits on error
 | 
					//Checks a command line argument if it is numeric and between min and max. Returns the numeric value or exits on error
 | 
				
			||||||
__pure unsigned int getOptionArgumentInt(const char o, const unsigned int min, const unsigned int max)
 | 
					__pure unsigned int getOptionArgumentInt(const char o, const unsigned int min, const unsigned int max)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -226,7 +235,6 @@ __pure unsigned int getOptionArgumentInt(const char o, const unsigned int min, c
 | 
				
			|||||||
	return result;
 | 
						return result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Resets getopt() to start parsing from the beginning
 | 
					// Resets getopt() to start parsing from the beginning
 | 
				
			||||||
void optReset(void)
 | 
					void optReset(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -241,7 +249,7 @@ void optReset(void)
 | 
				
			|||||||
	optind = 1;
 | 
						optind = 1;
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif // !IS_LIBRARY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(_WIN32) || defined(USE_MSRPC)
 | 
					#if defined(_WIN32) || defined(USE_MSRPC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -295,9 +303,13 @@ void parseAddress(char *const addr, char** szHost, char** szPort)
 | 
				
			|||||||
// Initialize random generator (needs to be done in each thread)
 | 
					// Initialize random generator (needs to be done in each thread)
 | 
				
			||||||
void randomNumberInit()
 | 
					void randomNumberInit()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#	if _MSC_VER
 | 
				
			||||||
 | 
						srand(GetTickCount());
 | 
				
			||||||
 | 
					#	else
 | 
				
			||||||
	struct timeval tv;
 | 
						struct timeval tv;
 | 
				
			||||||
	gettimeofday(&tv, NULL);
 | 
						gettimeofday(&tv, NULL);
 | 
				
			||||||
	srand((unsigned int)(tv.tv_sec ^ tv.tv_usec));
 | 
						srand((unsigned int)(tv.tv_sec ^ tv.tv_usec));
 | 
				
			||||||
 | 
					#	endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								kms.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								kms.c
									
									
									
									
									
								
							@@ -3,6 +3,10 @@
 | 
				
			|||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
#include CONFIG
 | 
					#include CONFIG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#define _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
@@ -200,8 +204,8 @@ const KmsIdList ExtendedProductList [] = {
 | 
				
			|||||||
		{ { 0xb3ca044e, 0xa358, 0x4d68, { 0x98, 0x83, 0xaa, 0xa2, 0x94, 0x1a, 0xca, 0x99, } } /*b3ca044e-a358-4d68-9883-aaa2941aca99*/, LOGTEXT("Windows Server 2012 R2 Standard"),                EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2012R2 },
 | 
							{ { 0xb3ca044e, 0xa358, 0x4d68, { 0x98, 0x83, 0xaa, 0xa2, 0x94, 0x1a, 0xca, 0x99, } } /*b3ca044e-a358-4d68-9883-aaa2941aca99*/, LOGTEXT("Windows Server 2012 R2 Standard"),                EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2012R2 },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Windows Server 2016
 | 
							// Windows Server 2016
 | 
				
			||||||
		{ { 0x7b4433f4, 0xb1e7, 0x4788, { 0x89, 0x5a, 0xc4, 0x53, 0x78, 0xd3, 0x82, 0x53, } } /*7b4433f4-b1e7-4788-895a-c45378d38253*/, LOGTEXT("Windows Server 2016 Azure Core"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
							{ { 0x3dbf341b, 0x5f6c, 0x4fa7, { 0xb9, 0x36, 0x69, 0x9d, 0xce, 0x9e, 0x26, 0x3f, } } /*3dbf341b-5f6c-4fa7-b936-699dce9e263f*/, LOGTEXT("Windows Server 2016 Azure Core"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
				
			||||||
		{ { 0x3dbf341b, 0x5f6c, 0x4fa7, { 0xb9, 0x36, 0x69, 0x9d, 0xce, 0x9e, 0x26, 0x3f, } } /*3dbf341b-5f6c-4fa7-b936-699dce9e263f*/, LOGTEXT("Windows Server 2016 Cloud Storage"),              EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
							{ { 0x7b4433f4, 0xb1e7, 0x4788, { 0x89, 0x5a, 0xc4, 0x53, 0x78, 0xd3, 0x82, 0x53, } } /*7b4433f4-b1e7-4788-895a-c45378d38253*/, LOGTEXT("Windows Server 2016 Cloud Storage"),              EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
				
			||||||
		{ { 0x21c56779, 0xb449, 0x4d20, { 0xad, 0xfc, 0xee, 0xce, 0x0e, 0x1a, 0xd7, 0x4b, } } /*21c56779-b449-4d20-adfc-eece0e1ad74b*/, LOGTEXT("Windows Server 2016 Datacenter"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
							{ { 0x21c56779, 0xb449, 0x4d20, { 0xad, 0xfc, 0xee, 0xce, 0x0e, 0x1a, 0xd7, 0x4b, } } /*21c56779-b449-4d20-adfc-eece0e1ad74b*/, LOGTEXT("Windows Server 2016 Datacenter"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
				
			||||||
		{ { 0x2b5a1b0f, 0xa5ab, 0x4c54, { 0xac, 0x2f, 0xa6, 0xd9, 0x48, 0x24, 0xa2, 0x83, } } /*2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283*/, LOGTEXT("Windows Server 2016 Essentials"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
							{ { 0x2b5a1b0f, 0xa5ab, 0x4c54, { 0xac, 0x2f, 0xa6, 0xd9, 0x48, 0x24, 0xa2, 0x83, } } /*2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283*/, LOGTEXT("Windows Server 2016 Essentials"),                 EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
				
			||||||
		{ { 0x8c1c5410, 0x9f39, 0x4805, { 0x8c, 0x9d, 0x63, 0xa0, 0x77, 0x06, 0x35, 0x8f, } } /*8c1c5410-9f39-4805-8c9d-63a07706358f*/, LOGTEXT("Windows Server 2016 Standard"),                   EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
							{ { 0x8c1c5410, 0x9f39, 0x4805, { 0x8c, 0x9d, 0x63, 0xa0, 0x77, 0x06, 0x35, 0x8f, } } /*8c1c5410-9f39-4805-8c9d-63a07706358f*/, LOGTEXT("Windows Server 2016 Standard"),                   EPID_WINDOWS,    APP_ID_WINDOWS,    KMS_ID_WIN2016 },
 | 
				
			||||||
@@ -495,6 +499,10 @@ static void generateRandomPid(int index, char *const szPid, int serverType, int1
 | 
				
			|||||||
	time_t maxTime, kmsTime;
 | 
						time_t maxTime, kmsTime;
 | 
				
			||||||
	time(&maxTime);
 | 
						time(&maxTime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#	ifndef BUILD_TIME
 | 
				
			||||||
 | 
					#	define BUILD_TIME 1474752907
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (maxTime < (time_t)BUILD_TIME) // Just in case the system time is < 10/17/2013 1:00 pm
 | 
						if (maxTime < (time_t)BUILD_TIME) // Just in case the system time is < 10/17/2013 1:00 pm
 | 
				
			||||||
		maxTime = (time_t)BUILD_TIME;
 | 
							maxTime = (time_t)BUILD_TIME;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -748,7 +756,7 @@ static BOOL __stdcall CreateResponseBaseCallback(const REQUEST *const baseReques
 | 
				
			|||||||
	memcpy(&baseResponse->CMID, &baseRequest->CMID, sizeof(GUID));
 | 
						memcpy(&baseResponse->CMID, &baseRequest->CMID, sizeof(GUID));
 | 
				
			||||||
	memcpy(&baseResponse->ClientTime, &baseRequest->ClientTime, sizeof(FILETIME));
 | 
						memcpy(&baseResponse->ClientTime, &baseRequest->ClientTime, sizeof(FILETIME));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	baseResponse->Count  				= index == 1 || index == 2 ? LE32(10) : LE32(50);
 | 
						baseResponse->Count  				= index > 0 && index < 4 ? LE32(10) : LE32(50);
 | 
				
			||||||
	baseResponse->VLActivationInterval	= LE32(VLActivationInterval);
 | 
						baseResponse->VLActivationInterval	= LE32(VLActivationInterval);
 | 
				
			||||||
	baseResponse->VLRenewalInterval   	= LE32(VLRenewalInterval);
 | 
						baseResponse->VLRenewalInterval   	= LE32(VLRenewalInterval);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -835,7 +843,7 @@ static int_fast8_t CreateV6Hmac(BYTE *const encrypt_start, const size_t encryptS
 | 
				
			|||||||
	(
 | 
						(
 | 
				
			||||||
		hash + halfHashSize,									// Use last 16 bytes of SHA256 as HMAC key
 | 
							hash + halfHashSize,									// Use last 16 bytes of SHA256 as HMAC key
 | 
				
			||||||
		encrypt_start,											// hash only the encrypted part of the v6 response
 | 
							encrypt_start,											// hash only the encrypted part of the v6 response
 | 
				
			||||||
		encryptSize - sizeof(((RESPONSE_V6*)0)->HMAC),		// encryptSize minus the HMAC itself
 | 
							(DWORD)(encryptSize - sizeof(((RESPONSE_V6*)0)->HMAC)),	// encryptSize minus the HMAC itself
 | 
				
			||||||
		hash													// use same buffer for resulting hash where the key came from
 | 
							hash													// use same buffer for resulting hash where the key came from
 | 
				
			||||||
	))
 | 
						))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								kms.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								kms.h
									
									
									
									
									
								
							@@ -6,7 +6,11 @@
 | 
				
			|||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
#include CONFIG
 | 
					#include CONFIG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#include <sys/time.h>
 | 
					#include <sys/time.h>
 | 
				
			||||||
 | 
					#endif // _MSC_VER
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								libkms.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								libkms.c
									
									
									
									
									
								
							@@ -62,7 +62,7 @@ EXTERNC __declspec(EXTERNAL) SOCKET __cdecl ConnectToServer(const char* host, co
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	size_t adrlen = strlen(host) + 16;
 | 
						size_t adrlen = strlen(host) + 16;
 | 
				
			||||||
	char* RemoteAddr = (char*)alloca(adrlen);
 | 
						char* RemoteAddr = (char*)alloca(adrlen);
 | 
				
			||||||
	snprintf(RemoteAddr, adrlen, "[%s]:%s", host, port);
 | 
						vlmcsd_snprintf(RemoteAddr, adrlen, "[%s]:%s", host, port);
 | 
				
			||||||
	sock = connectToAddress(RemoteAddr, addressFamily, FALSE);
 | 
						sock = connectToAddress(RemoteAddr, addressFamily, FALSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (sock == INVALID_RPCCTX)
 | 
						if (sock == INVALID_RPCCTX)
 | 
				
			||||||
@@ -161,7 +161,7 @@ EXTERNC __declspec(EXTERNAL) DWORD __cdecl StartKmsServer(const int port, Reques
 | 
				
			|||||||
#	endif // _WIN32
 | 
					#	endif // _WIN32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defaultport = vlmcsd_malloc(16);
 | 
						defaultport = vlmcsd_malloc(16);
 | 
				
			||||||
	snprintf((char*)defaultport, (size_t)16, "%i", port);
 | 
						vlmcsd_snprintf((char*)defaultport, (size_t)16, "%i", port);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CreateResponseBase = requestCallback;
 | 
						CreateResponseBase = requestCallback;
 | 
				
			||||||
	error = listenOnAllAddresses();
 | 
						error = listenOnAllAddresses();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								make_linux
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								make_linux
									
									
									
									
									
								
							@@ -70,10 +70,10 @@ export STAGING_DIR=.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Windows 32-bit using MingW32-w64 toolchain on Ubuntu Linux
 | 
					# Windows 32-bit using MingW32-w64 toolchain on Ubuntu Linux
 | 
				
			||||||
export CLIENT_NAME=binaries/Windows/intel/vlmcs-Windows-x86.exe
 | 
					export CLIENT_NAME=binaries/Windows/intel/vlmcs-Windows-x86-gcc.exe
 | 
				
			||||||
export PROGRAM_NAME=binaries/Windows/intel/vlmcsd-Windows-x86.exe
 | 
					export PROGRAM_NAME=binaries/Windows/intel/vlmcsd-Windows-x86-gcc.exe
 | 
				
			||||||
export MULTI_NAME=binaries/Windows/intel/vlmcsdmulti-Windows-x86.exe
 | 
					export MULTI_NAME=binaries/Windows/intel/vlmcsdmulti-Windows-x86-gcc.exe
 | 
				
			||||||
export DLL_NAME=binaries/Windows/intel/libkms32.dll
 | 
					export DLL_NAME=binaries/Windows/intel/libkms32-gcc.dll
 | 
				
			||||||
export THREADS=1
 | 
					export THREADS=1
 | 
				
			||||||
export CFLAGS="$SMALLCC"
 | 
					export CFLAGS="$SMALLCC"
 | 
				
			||||||
export CC=i686-w64-mingw32-gcc
 | 
					export CC=i686-w64-mingw32-gcc
 | 
				
			||||||
@@ -131,10 +131,10 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Windows 64-bit using MingW32-w64 toolchain on Ubuntu Linux
 | 
					# Windows 64-bit using MingW32-w64 toolchain on Ubuntu Linux
 | 
				
			||||||
export CLIENT_NAME=binaries/Windows/intel/vlmcs-Windows-x64.exe
 | 
					export CLIENT_NAME=binaries/Windows/intel/vlmcs-Windows-x64-gcc.exe
 | 
				
			||||||
export PROGRAM_NAME=binaries/Windows/intel/vlmcsd-Windows-x64.exe
 | 
					export PROGRAM_NAME=binaries/Windows/intel/vlmcsd-Windows-x64-gcc.exe
 | 
				
			||||||
export MULTI_NAME=binaries/Windows/intel/vlmcsdmulti-Windows-x64.exe
 | 
					export MULTI_NAME=binaries/Windows/intel/vlmcsdmulti-Windows-x64-gcc.exe
 | 
				
			||||||
export DLL_NAME=binaries/Windows/intel/libkms64.dll
 | 
					export DLL_NAME=binaries/Windows/intel/libkms64-gcc.dll
 | 
				
			||||||
export THREADS=1
 | 
					export THREADS=1
 | 
				
			||||||
export CFLAGS="$SMALLCC"
 | 
					export CFLAGS="$SMALLCC"
 | 
				
			||||||
export CC=x86_64-w64-mingw32-gcc
 | 
					export CC=x86_64-w64-mingw32-gcc
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								make_osx
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								make_osx
									
									
									
									
									
								
							@@ -46,10 +46,10 @@ PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH make $MAKEFLAGS allmulti MULTI
 | 
				
			|||||||
PATH=~/toolchains/gcc4.2/usr/bin:$PATH make -Bj allmulti SAFE_MODE=1 MULTI_NAME=vlmcsdmulti-MacOSX-ppc PROGRAM_NAME=vlmcsd-MacOSX-ppc CLIENT_NAME=vlmcs-MacOSX-ppc CC=gcc CFLAGS="$CFGCC42 -isysroot ~/toolchains/MacOSX10.5.sdk -arch ppc -mmacosx-version-min=10.0" && \
 | 
					PATH=~/toolchains/gcc4.2/usr/bin:$PATH make -Bj allmulti SAFE_MODE=1 MULTI_NAME=vlmcsdmulti-MacOSX-ppc PROGRAM_NAME=vlmcsd-MacOSX-ppc CLIENT_NAME=vlmcs-MacOSX-ppc CC=gcc CFLAGS="$CFGCC42 -isysroot ~/toolchains/MacOSX10.5.sdk -arch ppc -mmacosx-version-min=10.0" && \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x86-gcc CLIENT_NAME=vlmcs-MacOSX-x86-gcc PROGRAM_NAME=vlmcsd-MacOSX-x86-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
 | 
					make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x86-gcc CLIENT_NAME=vlmcs-MacOSX-x86-gcc PROGRAM_NAME=vlmcsd-MacOSX-x86-gcc CC=gcc-6 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
 | 
				
			||||||
make $MAKEFLAGS vlmcsd-MacOSX-x86-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
 | 
					make $MAKEFLAGS vlmcsd-MacOSX-x86-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads-gcc CC=gcc-6 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
 | 
				
			||||||
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x64-gcc CLIENT_NAME=vlmcs-MacOSX-x64-gcc PROGRAM_NAME=vlmcsd-MacOSX-x64-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
 | 
					make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x64-gcc CLIENT_NAME=vlmcs-MacOSX-x64-gcc PROGRAM_NAME=vlmcsd-MacOSX-x64-gcc CC=gcc-6 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
 | 
				
			||||||
make $MAKEFLAGS vlmcsd-MacOSX-x64-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
 | 
					make $MAKEFLAGS vlmcsd-MacOSX-x64-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads-gcc CC=gcc-6 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Sign the iOS binaries
 | 
					# Sign the iOS binaries
 | 
				
			||||||
#ldid -S *iOS*
 | 
					#ldid -S *iOS*
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								make_windows
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								make_windows
									
									
									
									
									
								
							@@ -1,8 +1,17 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export VLMCSD_VERSION="svn`svnversion`"
 | 
					export VLMCSD_VERSION="svn`svnversion`"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msbuild='/cygdrive/c/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe'
 | 
				
			||||||
 | 
					version="$VLMCSD_VERSION, built $(date -u '+%Y-%m-%d %H:%M:%S') UTC"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rm -f cygkms*.dll libkms*.dll vlmcs-* vlmcsd-win* vlmcsd-cyg* vlmcsdmulti-* *_all.* vlmcsd.exe vlmcs.exe vlmcsdmulti.exe 2> /dev/null
 | 
					rm -f cygkms*.dll libkms*.dll vlmcs-* vlmcsd-win* vlmcsd-cyg* vlmcsdmulti-* *_all.* vlmcsd.exe vlmcs.exe vlmcsdmulti.exe 2> /dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export ExternalCompilerOptions="/D VERSION=\"\\\"$version\\\"\" /D BUILD_TIME=$(date '+%s')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"$msbuild" VisualStudio/vlmcsd-2015-with-2013-c++-build-tools.sln /t:Rebuild /p:Configuration=Release /p:Platform=x86 /m /v:m
 | 
				
			||||||
 | 
					"$msbuild" VisualStudio/vlmcsd-2015-with-2013-c++-build-tools.sln /t:Rebuild /p:Configuration=Release /p:Platform=x64 /m /v:m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export CAT=2
 | 
					export CAT=2
 | 
				
			||||||
export VERBOSE=3
 | 
					export VERBOSE=3
 | 
				
			||||||
NUMCPU=`cat /proc/cpuinfo | grep "processor" | wc -l`
 | 
					NUMCPU=`cat /proc/cpuinfo | grep "processor" | wc -l`
 | 
				
			||||||
@@ -35,10 +44,10 @@ make $MAKEFLAGS THREADS=1 MSRPC=1 DNS_PARSER=internal CLIENT_NAME=vlmcs-cygwin-m
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export CAT=2
 | 
					export CAT=2
 | 
				
			||||||
#unset CAT
 | 
					#unset CAT
 | 
				
			||||||
make $MAKEFLAGS libkms32.dll CRYPTO=windows FEATURES=minimum THREADS=1 DLL_NAME=libkms32.dll CC=i686-w64-MingW32-gcc.exe CFLAGS="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS="$PF32" LDFLAGS="-static-libgcc $LFWIN32"
 | 
					make $MAKEFLAGS libkms32-gcc.dll CRYPTO=windows FEATURES=minimum THREADS=1 DLL_NAME=libkms32-gcc.dll CC=i686-w64-MingW32-gcc.exe CFLAGS="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS="$PF32" LDFLAGS="-static-libgcc $LFWIN32"
 | 
				
			||||||
make $MAKEFLAGS libkms64.dll CRYPTO=windows FEATURES=minimum THREADS=1 DLL_NAME=libkms64.dll CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS="$PF64" LDFLAGS="-static-libgcc $LFWIN64"
 | 
					make $MAKEFLAGS libkms64-gcc.dll CRYPTO=windows FEATURES=minimum THREADS=1 DLL_NAME=libkms64-gcc.dll CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS="$PF64" LDFLAGS="-static-libgcc $LFWIN64"
 | 
				
			||||||
make $MAKEFLAGS allmulti THREADS=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-x86 PROGRAM_NAME=vlmcsd-Windows-x86 MULTI_NAME=vlmcsdmulti-Windows-x86 CC=i686-w64-MingW32-gcc.exe CFLAGS="$CF -fno-lto" PLATFORMFLAGS="$PF32" LDFLAGS="$LFWIN32"
 | 
					make $MAKEFLAGS allmulti THREADS=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-x86-gcc PROGRAM_NAME=vlmcsd-Windows-x86-gcc MULTI_NAME=vlmcsdmulti-Windows-x86-gcc CC=i686-w64-MingW32-gcc.exe CFLAGS="$CF -fno-lto" PLATFORMFLAGS="$PF32" LDFLAGS="$LFWIN32"
 | 
				
			||||||
make $MAKEFLAGS allmulti THREADS=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-x64 PROGRAM_NAME=vlmcsd-Windows-x64 MULTI_NAME=vlmcsdmulti-Windows-x64 CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CF -fno-lto" PLATFORMFLAGS="$PF64" LDFLAGS="$LFWIN64"
 | 
					make $MAKEFLAGS allmulti THREADS=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-x64-gcc PROGRAM_NAME=vlmcsd-Windows-x64-gcc MULTI_NAME=vlmcsdmulti-Windows-x64-gcc CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CF -fno-lto" PLATFORMFLAGS="$PF64" LDFLAGS="$LFWIN64"
 | 
				
			||||||
unset CAT
 | 
					unset CAT
 | 
				
			||||||
make -Bj allmulti MSRPC=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-msrpc-x86 PROGRAM_NAME=vlmcsd-Windows-msrpc-x86 MULTI_NAME=vlmcsdmulti-Windows-msrpc-x86 CC=i686-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC -fno-lto"  PLATFORMFLAGS="$PF32" LDFLAGS="$LFWIN32"
 | 
					make -Bj allmulti MSRPC=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-msrpc-x86 PROGRAM_NAME=vlmcsd-Windows-msrpc-x86 MULTI_NAME=vlmcsdmulti-Windows-msrpc-x86 CC=i686-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC -fno-lto"  PLATFORMFLAGS="$PF32" LDFLAGS="$LFWIN32"
 | 
				
			||||||
make $MAKEFLAGS allmulti THREADS=1 MSRPC=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-msrpc-x64 PROGRAM_NAME=vlmcsd-Windows-msrpc-x64 MULTI_NAME=vlmcsdmulti-Windows-msrpc-x64 CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC -fno-lto" PLATFORMFLAGS="$PF64" LDFLAGS="$LFWIN64"
 | 
					make $MAKEFLAGS allmulti THREADS=1 MSRPC=1 CRYPTO=windows CLIENT_NAME=vlmcs-Windows-msrpc-x64 PROGRAM_NAME=vlmcsd-Windows-msrpc-x64 MULTI_NAME=vlmcsdmulti-Windows-msrpc-x64 CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC -fno-lto" PLATFORMFLAGS="$PF64" LDFLAGS="$LFWIN64"
 | 
				
			||||||
@@ -63,10 +72,11 @@ cp -p cygkms64.dll /usr/local/bin/cygkms.dll &
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
cp -p libkms32.dll /cygdrive/c/nttools/x86 &
 | 
					cp -p libkms32.dll /cygdrive/c/nttools/x86 &
 | 
				
			||||||
cp -p libkms64.dll /cygdrive/c/nttools/x64 &
 | 
					cp -p libkms64.dll /cygdrive/c/nttools/x64 &
 | 
				
			||||||
cp -p vlmcsdmulti-Windows-x86.exe /cygdrive/c/nttools/x86/vlmcsdmulti.exe 
 | 
					cp -p vlmcsd-Windows-x86.exe /cygdrive/c/nttools/x86/vlmcsd.exe 
 | 
				
			||||||
 | 
					cp -p vlmcs-Windows-x86.exe /cygdrive/c/nttools/x86/vlmcs.exe 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cmd /C mklink c:\\nttools\\x86\\vlmcsd.exe vlmcsdmulti.exe 2> /dev/null &
 | 
					#cmd /C mklink c:\\nttools\\x86\\vlmcsd.exe vlmcsdmulti.exe 2> /dev/null &
 | 
				
			||||||
cmd /C mklink c:\\nttools\\x86\\vlmcs.exe vlmcsdmulti.exe 2> /dev/null &
 | 
					#cmd /C mklink c:\\nttools\\x86\\vlmcs.exe vlmcsdmulti.exe 2> /dev/null &
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Installing man pages"
 | 
					echo "Installing man pages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
 * msrpc-client.h
 | 
					 * msrpc-client.h
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef USE_MSRPC
 | 
				
			||||||
#ifndef MSRPC_CLIENT_H_
 | 
					#ifndef MSRPC_CLIENT_H_
 | 
				
			||||||
#define MSRPC_CLIENT_H_
 | 
					#define MSRPC_CLIENT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -19,5 +20,6 @@ RpcStatus rpcSendRequest(const RpcCtx handle, BYTE* KmsRequest, size_t requestSi
 | 
				
			|||||||
RpcStatus closeRpc(RpcCtx s);
 | 
					RpcStatus closeRpc(RpcCtx s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define INVALID_RPCCTX ((RpcCtx)~0)
 | 
					#define INVALID_RPCCTX ((RpcCtx)~0)
 | 
				
			||||||
 | 
					#endif // USE_MSRPC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* MSRPC_CLIENT_H_ */
 | 
					#endif /* MSRPC_CLIENT_H_ */
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										23
									
								
								network.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								network.c
									
									
									
									
									
								
							@@ -40,12 +40,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "network.h"
 | 
					#include "network.h"
 | 
				
			||||||
#include "endian.h"
 | 
					#include "endian.h"
 | 
				
			||||||
#include "output.h"
 | 
					//#include "output.h"
 | 
				
			||||||
#include "helpers.h"
 | 
					#include "helpers.h"
 | 
				
			||||||
#include "shared_globals.h"
 | 
					#include "shared_globals.h"
 | 
				
			||||||
#include "rpc.h"
 | 
					#include "rpc.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef _WIN32
 | 
					#ifndef _WIN32
 | 
				
			||||||
typedef ssize_t (*sendrecv_t)(int, void*, size_t, int);
 | 
					typedef ssize_t (*sendrecv_t)(int, void*, size_t, int);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@@ -92,7 +91,7 @@ static int_fast8_t ip2str(char *restrict result, const size_t resultLength, cons
 | 
				
			|||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((unsigned int)snprintf(result, resultLength, socketAddress->sa_family == AF_INET6 ? fIPv6 : fIPv4, ipAddress, portNumber) > resultLength) return FALSE;
 | 
						if ((unsigned int)vlmcsd_snprintf(result, resultLength, socketAddress->sa_family == AF_INET6 ? fIPv6 : fIPv4, ipAddress, portNumber) > resultLength) return FALSE;
 | 
				
			||||||
	return TRUE;
 | 
						return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -245,7 +244,7 @@ SOCKET connectToAddress(const char *const addr, const int AddressFamily, int_fas
 | 
				
			|||||||
		// struct sockaddr_in* addr4 = (struct sockaddr_in*)sa->ai_addr;
 | 
							// struct sockaddr_in* addr4 = (struct sockaddr_in*)sa->ai_addr;
 | 
				
			||||||
		// struct sockaddr_in6* addr6 = (struct sockaddr_in6*)sa->ai_addr;
 | 
							// struct sockaddr_in6* addr6 = (struct sockaddr_in6*)sa->ai_addr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (ip2str(szAddr, sizeof(szAddr), sa->ai_addr, sa->ai_addrlen))
 | 
							if (ip2str(szAddr, sizeof(szAddr), sa->ai_addr, (socklen_t)sa->ai_addrlen))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (showHostName)
 | 
								if (showHostName)
 | 
				
			||||||
				printf("Connecting to %s (%s) ... ", addr, szAddr);
 | 
									printf("Connecting to %s (%s) ... ", addr, szAddr);
 | 
				
			||||||
@@ -274,7 +273,7 @@ SOCKET connectToAddress(const char *const addr, const int AddressFamily, int_fas
 | 
				
			|||||||
		setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, (sockopt_t)&to, sizeof(to));
 | 
							setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, (sockopt_t)&to, sizeof(to));
 | 
				
			||||||
#		endif // !defined(NO_TIMEOUT) && !__minix__
 | 
					#		endif // !defined(NO_TIMEOUT) && !__minix__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!connect(s, sa->ai_addr, sa->ai_addrlen))
 | 
							if (!connect(s, sa->ai_addr, (int)sa->ai_addrlen))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			printf("successful\n");
 | 
								printf("successful\n");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
@@ -310,7 +309,7 @@ static int_fast8_t allowSocketReuse(SOCKET s)
 | 
				
			|||||||
	if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (sockopt_t)&socketOption, sizeof(socketOption)))
 | 
						if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (sockopt_t)&socketOption, sizeof(socketOption)))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
#		ifdef _PEDANTIC
 | 
					#		ifdef _PEDANTIC
 | 
				
			||||||
		printerrorf("Warning: %s does not support socket option SO_REUSEADDR: %s\n", ipstr, vlmcsd_strerror(socket_errno));
 | 
							printerrorf("Warning: Socket option SO_REUSEADDR unsupported: %s\n", vlmcsd_strerror(socket_errno));
 | 
				
			||||||
#		endif // _PEDANTIC
 | 
					#		endif // _PEDANTIC
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -403,7 +402,7 @@ void getPrivateIPAddresses(int* numAddresses, char*** ipAddresses)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	for (currentAdapter = firstAdapter, *numAddresses = 0; currentAdapter != NULL; currentAdapter = currentAdapter->Next)
 | 
						for (currentAdapter = firstAdapter, *numAddresses = 0; currentAdapter != NULL; currentAdapter = currentAdapter->Next)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		PIP_ADAPTER_UNICAST_ADDRESS_XP currentAddress;
 | 
							PIP_ADAPTER_UNICAST_ADDRESS currentAddress;
 | 
				
			||||||
		int length;
 | 
							int length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (currentAdapter->OperStatus != IfOperStatusUp) continue;
 | 
							if (currentAdapter->OperStatus != IfOperStatusUp) continue;
 | 
				
			||||||
@@ -418,7 +417,7 @@ void getPrivateIPAddresses(int* numAddresses, char*** ipAddresses)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	for (currentAdapter = firstAdapter, *numAddresses = 0; currentAdapter != NULL; currentAdapter = currentAdapter->Next)
 | 
						for (currentAdapter = firstAdapter, *numAddresses = 0; currentAdapter != NULL; currentAdapter = currentAdapter->Next)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		PIP_ADAPTER_UNICAST_ADDRESS_XP currentAddress;
 | 
							PIP_ADAPTER_UNICAST_ADDRESS currentAddress;
 | 
				
			||||||
		int length;
 | 
							int length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (currentAdapter->OperStatus != IfOperStatusUp) continue;
 | 
							if (currentAdapter->OperStatus != IfOperStatusUp) continue;
 | 
				
			||||||
@@ -521,7 +520,7 @@ static int listenOnAddress(const struct addrinfo *const ai, SOCKET *s)
 | 
				
			|||||||
	int error;
 | 
						int error;
 | 
				
			||||||
	char ipstr[64];
 | 
						char ipstr[64];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ip2str(ipstr, sizeof(ipstr), ai->ai_addr, ai->ai_addrlen);
 | 
						ip2str(ipstr, sizeof(ipstr), ai->ai_addr, (socklen_t)ai->ai_addrlen);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//*s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
 | 
						//*s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
 | 
				
			||||||
	*s = socket(ai->ai_family, SOCK_STREAM, IPPROTO_TCP);
 | 
						*s = socket(ai->ai_family, SOCK_STREAM, IPPROTO_TCP);
 | 
				
			||||||
@@ -615,7 +614,7 @@ static int listenOnAddress(const struct addrinfo *const ai, SOCKET *s)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#	endif // HAVE_FREEBIND
 | 
					#	endif // HAVE_FREEBIND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (bind(*s, ai->ai_addr, ai->ai_addrlen) || listen(*s, SOMAXCONN))
 | 
						if (bind(*s, ai->ai_addr, (int)ai->ai_addrlen) || listen(*s, SOMAXCONN))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		error = socket_errno;
 | 
							error = socket_errno;
 | 
				
			||||||
		printerrorf("Warning: %s: %s\n", ipstr, vlmcsd_strerror(error));
 | 
							printerrorf("Warning: %s: %s\n", ipstr, vlmcsd_strerror(error));
 | 
				
			||||||
@@ -696,7 +695,7 @@ static SOCKET network_accept_any()
 | 
				
			|||||||
        if (SocketList[i] > maxSocket) maxSocket = SocketList[i];
 | 
					        if (SocketList[i] > maxSocket) maxSocket = SocketList[i];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    status = select(maxSocket + 1, &ListeningSocketsList, NULL, NULL, NULL);
 | 
					    status = select((int)maxSocket + 1, &ListeningSocketsList, NULL, NULL, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (status < 0) return INVALID_SOCKET;
 | 
					    if (status < 0) return INVALID_SOCKET;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -871,7 +870,7 @@ static void *serveClientThreadProc (PCLDATA clData)
 | 
				
			|||||||
#ifndef NO_SOCKETS
 | 
					#ifndef NO_SOCKETS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(USE_THREADS) && (defined(_WIN32) || defined(__CYGWIN__)) // Windows Threads
 | 
					#if defined(USE_THREADS) && (defined(_WIN32) || defined(__CYGWIN__)) // Windows Threads
 | 
				
			||||||
static int serveClientAsyncWinThreads(const PCLDATA thr_CLData)
 | 
					static int serveClientAsyncWinThreads(PCLDATA thr_CLData)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	wait_sem();
 | 
						wait_sem();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,13 @@
 | 
				
			|||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
#include "output.h"
 | 
					#include "output.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					//typedef signed char int_fast8_t;
 | 
				
			||||||
 | 
					//typedef unsigned char BYTE;
 | 
				
			||||||
 | 
					//typedef UINT_PTR size_t;
 | 
				
			||||||
 | 
					//typedef unsigned long DWORD;
 | 
				
			||||||
 | 
					#define STDIN_FILENO 0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int_fast8_t sendrecv(SOCKET sock, BYTE *data, int len, int_fast8_t do_send);
 | 
					int_fast8_t sendrecv(SOCKET sock, BYTE *data, int len, int_fast8_t do_send);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@
 | 
				
			|||||||
SERVICE_STATUS          gSvcStatus;
 | 
					SERVICE_STATUS          gSvcStatus;
 | 
				
			||||||
SERVICE_STATUS_HANDLE   gSvcStatusHandle;
 | 
					SERVICE_STATUS_HANDLE   gSvcStatusHandle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static VOID WINAPI ServiceCtrlHandler(const DWORD dwCtrl)
 | 
					VOID WINAPI ServiceCtrlHandler(DWORD dwCtrl)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   // Handle the requested control code.
 | 
					   // Handle the requested control code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								output.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								output.c
									
									
									
									
									
								
							@@ -2,6 +2,10 @@
 | 
				
			|||||||
#define _DEFAULT_SOURCE
 | 
					#define _DEFAULT_SOURCE
 | 
				
			||||||
#endif // _DEFAULT_SOURCE
 | 
					#endif // _DEFAULT_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#define _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef CONFIG
 | 
					#ifndef CONFIG
 | 
				
			||||||
#define CONFIG "config.h"
 | 
					#define CONFIG "config.h"
 | 
				
			||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
@@ -66,8 +70,12 @@ static void vlogger(const char *message, va_list args)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// We write everything to a string before we really log inside the critical section
 | 
						// We write everything to a string before we really log inside the critical section
 | 
				
			||||||
	// so formatting the output can be concurrent
 | 
						// so formatting the output can be concurrent
 | 
				
			||||||
	int len = strlen(mbstr);
 | 
						int len = (int)strlen(mbstr);
 | 
				
			||||||
	vsnprintf(mbstr + len, sizeof(mbstr) - len, message, args);
 | 
					//#	if !_MSC_VER
 | 
				
			||||||
 | 
						vlmcsd_vsnprintf(mbstr + len, sizeof(mbstr) - len, message, args);
 | 
				
			||||||
 | 
					//#	else
 | 
				
			||||||
 | 
					//	wvsprintf(mbstr + len, message, args);
 | 
				
			||||||
 | 
					//#	endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lock_mutex(&logmutex);
 | 
						lock_mutex(&logmutex);
 | 
				
			||||||
	fprintf(log, "%s", mbstr);
 | 
						fprintf(log, "%s", mbstr);
 | 
				
			||||||
@@ -104,7 +112,7 @@ int printerrorf(const char *const fmt, ...)
 | 
				
			|||||||
#	ifdef IS_LIBRARY
 | 
					#	ifdef IS_LIBRARY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	size_t len = strlen(ErrorMessage);
 | 
						size_t len = strlen(ErrorMessage);
 | 
				
			||||||
	vsnprintf(ErrorMessage + len, MESSAGE_BUFFER_SIZE - len - 1, fmt, arglist);
 | 
						vlmcsd_vsnprintf(ErrorMessage + len, MESSAGE_BUFFER_SIZE - len - 1, fmt, arglist);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#	else // !IS_LIBRARY
 | 
					#	else // !IS_LIBRARY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								output.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								output.h
									
									
									
									
									
								
							@@ -7,6 +7,7 @@
 | 
				
			|||||||
#include CONFIG
 | 
					#include CONFIG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include "types.h"
 | 
				
			||||||
#include "kms.h"
 | 
					#include "kms.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef int (*PRINTFUNC)(const char *const fmt, ...);
 | 
					typedef int (*PRINTFUNC)(const char *const fmt, ...);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										35
									
								
								rpc.c
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								rpc.c
									
									
									
									
									
								
							@@ -95,9 +95,9 @@ static void CheckRpcRequest(const RPC_REQUEST64 *const Request, const unsigned i
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (Ctx != *Ndr64Ctx)
 | 
						if (Ctx != *Ndr64Ctx)
 | 
				
			||||||
		kmsMajorVersion = LE16(((WORD*)Request->Ndr.Data)[1]);
 | 
							kmsMajorVersion = (uint_fast8_t)LE16(((WORD*)Request->Ndr.Data)[1]);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		kmsMajorVersion = LE16(((WORD*)Request->Ndr64.Data)[1]);
 | 
							kmsMajorVersion = (uint_fast8_t)LE16(((WORD*)Request->Ndr64.Data)[1]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (kmsMajorVersion > 6)
 | 
						if (kmsMajorVersion > 6)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -394,11 +394,12 @@ static int rpcBind(const RPC_BIND_REQUEST *const Request, RPC_BIND_RESPONSE* Res
 | 
				
			|||||||
		getsockname(sock, (struct sockaddr*)&addr, &socklen) ||
 | 
							getsockname(sock, (struct sockaddr*)&addr, &socklen) ||
 | 
				
			||||||
		getnameinfo((struct sockaddr*)&addr, socklen, NULL, 0, (char*)Response->SecondaryAddress, sizeof(Response->SecondaryAddress), NI_NUMERICSERV))
 | 
							getnameinfo((struct sockaddr*)&addr, socklen, NULL, 0, (char*)Response->SecondaryAddress, sizeof(Response->SecondaryAddress), NI_NUMERICSERV))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		portNumberSize = Response->SecondaryAddressLength = 0;
 | 
							portNumberSize = 0;
 | 
				
			||||||
 | 
							Response->SecondaryAddressLength = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		portNumberSize = strlen((char*)Response->SecondaryAddress) + 1;
 | 
							portNumberSize = (uint_fast8_t)strlen((char*)Response->SecondaryAddress) + 1;
 | 
				
			||||||
		Response->SecondaryAddressLength = LE16(portNumberSize);
 | 
							Response->SecondaryAddressLength = LE16(portNumberSize);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -542,7 +543,7 @@ void rpcServer(const SOCKET sock, const DWORD RpcAssocGroup, const char* const i
 | 
				
			|||||||
		if (!_recv(sock, requestBuffer, request_len)) return;
 | 
							if (!_recv(sock, requestBuffer, request_len)) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Request is invalid
 | 
							// Request is invalid
 | 
				
			||||||
		BYTE isValid = _Actions[_a].CheckRequestSize(requestBuffer, request_len, &NdrCtx, &Ndr64Ctx);
 | 
							BYTE isValid = (BYTE)_Actions[_a].CheckRequestSize(requestBuffer, request_len, &NdrCtx, &Ndr64Ctx);
 | 
				
			||||||
		if (rpcRequestHeader.PacketType != RPC_PT_REQUEST && !isValid) return;
 | 
							if (rpcRequestHeader.PacketType != RPC_PT_REQUEST && !isValid) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Unable to create a valid response from request
 | 
							// Unable to create a valid response from request
 | 
				
			||||||
@@ -552,7 +553,7 @@ void rpcServer(const SOCKET sock, const DWORD RpcAssocGroup, const char* const i
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		memcpy(rpcResponseHeader, &rpcRequestHeader, sizeof(RPC_HEADER));
 | 
							memcpy(rpcResponseHeader, &rpcRequestHeader, sizeof(RPC_HEADER));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		rpcResponseHeader->FragLength = LE16(response_len);
 | 
							rpcResponseHeader->FragLength = LE16((WORD)response_len);
 | 
				
			||||||
		rpcResponseHeader->PacketType = _Actions[_a].ResponsePacketType;
 | 
							rpcResponseHeader->PacketType = _Actions[_a].ResponsePacketType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (rpcResponseHeader->PacketType == RPC_PT_ALTERCONTEXT_ACK)
 | 
							if (rpcResponseHeader->PacketType == RPC_PT_ALTERCONTEXT_ACK)
 | 
				
			||||||
@@ -710,7 +711,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
	RequestHeader = (RPC_HEADER*)_Request;
 | 
						RequestHeader = (RPC_HEADER*)_Request;
 | 
				
			||||||
	RpcRequest = (RPC_REQUEST64*)(_Request + sizeof(RPC_HEADER));
 | 
						RpcRequest = (RPC_REQUEST64*)(_Request + sizeof(RPC_HEADER));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	createRpcRequestHeader(RequestHeader, RPC_PT_REQUEST, size);
 | 
						createRpcRequestHeader(RequestHeader, RPC_PT_REQUEST, (WORD)size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Increment CallId for next Request
 | 
						// Increment CallId for next Request
 | 
				
			||||||
	CallId++;
 | 
						CallId++;
 | 
				
			||||||
@@ -720,7 +721,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
	if (useNdr64)
 | 
						if (useNdr64)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		RpcRequest->ContextId = LE16(1); // We negotiate NDR64 always as context 1
 | 
							RpcRequest->ContextId = LE16(1); // We negotiate NDR64 always as context 1
 | 
				
			||||||
		RpcRequest->AllocHint = LE32(requestSize + sizeof(RpcRequest->Ndr64));
 | 
							RpcRequest->AllocHint = LE32((DWORD)(requestSize + sizeof(RpcRequest->Ndr64)));
 | 
				
			||||||
		RpcRequest->Ndr64.DataLength = LE64((uint64_t)requestSize);
 | 
							RpcRequest->Ndr64.DataLength = LE64((uint64_t)requestSize);
 | 
				
			||||||
		RpcRequest->Ndr64.DataSizeIs = LE64((uint64_t)requestSize);
 | 
							RpcRequest->Ndr64.DataSizeIs = LE64((uint64_t)requestSize);
 | 
				
			||||||
		memcpy(RpcRequest->Ndr64.Data, KmsRequest, requestSize);
 | 
							memcpy(RpcRequest->Ndr64.Data, KmsRequest, requestSize);
 | 
				
			||||||
@@ -728,9 +729,9 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		RpcRequest->ContextId = 0; // We negotiate NDR32 always as context 0
 | 
							RpcRequest->ContextId = 0; // We negotiate NDR32 always as context 0
 | 
				
			||||||
		RpcRequest->AllocHint = LE32(requestSize + sizeof(RpcRequest->Ndr));
 | 
							RpcRequest->AllocHint = LE32((DWORD)(requestSize + sizeof(RpcRequest->Ndr)));
 | 
				
			||||||
		RpcRequest->Ndr.DataLength = LE32(requestSize);
 | 
							RpcRequest->Ndr.DataLength = LE32((DWORD)requestSize);
 | 
				
			||||||
		RpcRequest->Ndr.DataSizeIs = LE32(requestSize);
 | 
							RpcRequest->Ndr.DataSizeIs = LE32((DWORD)requestSize);
 | 
				
			||||||
		memcpy(RpcRequest->Ndr.Data, KmsRequest, requestSize);
 | 
							memcpy(RpcRequest->Ndr.Data, KmsRequest, requestSize);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -738,7 +739,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		int bytesread;
 | 
							int bytesread;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!_send(sock, _Request, size))
 | 
							if (!_send(sock, _Request, (int)size))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			printerrorf("\nFatal: Could not send RPC request\n");
 | 
								printerrorf("\nFatal: Could not send RPC request\n");
 | 
				
			||||||
			status = RPC_S_COMM_FAILURE;
 | 
								status = RPC_S_COMM_FAILURE;
 | 
				
			||||||
@@ -759,7 +760,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
		if (size > LE16(ResponseHeader.FragLength) - sizeof(ResponseHeader))
 | 
							if (size > LE16(ResponseHeader.FragLength) - sizeof(ResponseHeader))
 | 
				
			||||||
			size = LE16(ResponseHeader.FragLength) - sizeof(ResponseHeader);
 | 
								size = LE16(ResponseHeader.FragLength) - sizeof(ResponseHeader);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!_recv(sock, &_Response, size))
 | 
							if (!_recv(sock, &_Response, (int)size))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			printerrorf("\nFatal: RPC response is incomplete\n");
 | 
								printerrorf("\nFatal: RPC response is incomplete\n");
 | 
				
			||||||
			status = RPC_S_COMM_FAILURE;
 | 
								status = RPC_S_COMM_FAILURE;
 | 
				
			||||||
@@ -823,7 +824,7 @@ RpcStatus rpcSendRequest(const RpcCtx sock, const BYTE *const KmsRequest, const
 | 
				
			|||||||
		memset(*KmsResponse, 0, *responseSize + MAX_EXCESS_BYTES);
 | 
							memset(*KmsResponse, 0, *responseSize + MAX_EXCESS_BYTES);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Read up to 16 bytes more than bytes expected to detect faulty KMS emulators
 | 
							// Read up to 16 bytes more than bytes expected to detect faulty KMS emulators
 | 
				
			||||||
		if ((bytesread = recv(sock, (char*)*KmsResponse, *responseSize + MAX_EXCESS_BYTES, 0)) < (int)*responseSize)
 | 
							if ((bytesread = recv(sock, (char*)*KmsResponse, (int)(*responseSize) + MAX_EXCESS_BYTES, 0)) < (int)*responseSize)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			printerrorf("\nFatal: No or incomplete KMS response received. Required %u bytes but only got %i\n",
 | 
								printerrorf("\nFatal: No or incomplete KMS response received. Required %u bytes but only got %i\n",
 | 
				
			||||||
					(uint32_t)*responseSize,
 | 
										(uint32_t)*responseSize,
 | 
				
			||||||
@@ -897,12 +898,12 @@ RpcStatus rpcBindOrAlterClientContext(const RpcCtx sock, BYTE packetType, const
 | 
				
			|||||||
	WORD ctxIndex = 0;
 | 
						WORD ctxIndex = 0;
 | 
				
			||||||
	WORD i;
 | 
						WORD i;
 | 
				
			||||||
	WORD CtxBTFN = (WORD)~0, CtxNDR64 = (WORD)~0;
 | 
						WORD CtxBTFN = (WORD)~0, CtxNDR64 = (WORD)~0;
 | 
				
			||||||
	BYTE _Request[rpcBindSize];
 | 
						BYTE* _Request = (BYTE*)alloca(rpcBindSize);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RequestHeader = (RPC_HEADER*)_Request;
 | 
						RequestHeader = (RPC_HEADER*)_Request;
 | 
				
			||||||
	bindRequest = (RPC_BIND_REQUEST* )(_Request + sizeof(RPC_HEADER));
 | 
						bindRequest = (RPC_BIND_REQUEST* )(_Request + sizeof(RPC_HEADER));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	createRpcRequestHeader(RequestHeader, packetType, rpcBindSize);
 | 
						createRpcRequestHeader(RequestHeader, packetType, (WORD)rpcBindSize);
 | 
				
			||||||
	RequestHeader->PacketFlags |=  UseMultiplexedRpc ? RPC_PF_MULTIPLEX : 0;
 | 
						RequestHeader->PacketFlags |=  UseMultiplexedRpc ? RPC_PF_MULTIPLEX : 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bindRequest->AssocGroup		= 0;
 | 
						bindRequest->AssocGroup		= 0;
 | 
				
			||||||
@@ -935,7 +936,7 @@ RpcStatus rpcBindOrAlterClientContext(const RpcCtx sock, BYTE packetType, const
 | 
				
			|||||||
		CtxBTFN = ctxIndex;
 | 
							CtxBTFN = ctxIndex;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!_send(sock, _Request, rpcBindSize))
 | 
						if (!_send(sock, _Request, (int)rpcBindSize))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		printerrorf("\nFatal: Sending RPC bind request failed\n");
 | 
							printerrorf("\nFatal: Sending RPC bind request failed\n");
 | 
				
			||||||
		return RPC_S_COMM_FAILURE;
 | 
							return RPC_S_COMM_FAILURE;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								rpc.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								rpc.h
									
									
									
									
									
								
							@@ -8,6 +8,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//#if _MSC_VER
 | 
				
			||||||
 | 
					//typedef signed char int_fast8_t;
 | 
				
			||||||
 | 
					//typedef unsigned char BYTE;
 | 
				
			||||||
 | 
					//typedef UINT_PTR size_t;
 | 
				
			||||||
 | 
					//typedef unsigned long DWORD;
 | 
				
			||||||
 | 
					//#define STDIN_FILENO 0
 | 
				
			||||||
 | 
					//#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !defined(_WIN32) && !defined(__CYGWIN__)
 | 
					#if !defined(_WIN32) && !defined(__CYGWIN__)
 | 
				
			||||||
#define RPC_S_OK 0
 | 
					#define RPC_S_OK 0
 | 
				
			||||||
#define RPC_S_INVALID_ARG 87
 | 
					#define RPC_S_INVALID_ARG 87
 | 
				
			||||||
@@ -257,6 +266,7 @@ typedef struct {
 | 
				
			|||||||
} /*__packed*/ RPC_RESPONSE64;
 | 
					} /*__packed*/ RPC_RESPONSE64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//#define RpcCtx SOCKET
 | 
				
			||||||
typedef SOCKET RpcCtx;
 | 
					typedef SOCKET RpcCtx;
 | 
				
			||||||
typedef int RpcStatus;
 | 
					typedef int RpcStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -304,7 +314,7 @@ typedef union _RPC_FLAGS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
extern RPC_FLAGS RpcFlags;
 | 
					extern RPC_FLAGS RpcFlags;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void rpcServer(const RpcCtx socket, const DWORD RpcAssocGroup, const char* const ipstr);
 | 
					void rpcServer(const SOCKET sock, const DWORD RpcAssocGroup, const char* const ipstr);
 | 
				
			||||||
RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose);
 | 
					RpcStatus rpcBindClient(const RpcCtx sock, const int_fast8_t verbose);
 | 
				
			||||||
RpcStatus rpcSendRequest(const RpcCtx socket, const BYTE *const KmsRequest, const size_t requestSize, BYTE **KmsResponse, size_t *const responseSize);
 | 
					RpcStatus rpcSendRequest(const RpcCtx socket, const BYTE *const KmsRequest, const size_t requestSize, BYTE **KmsResponse, size_t *const responseSize);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,7 +33,9 @@
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <signal.h>
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#if !_MSC_VER
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										44
									
								
								types.h
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								types.h
									
									
									
									
									
								
							@@ -1,6 +1,10 @@
 | 
				
			|||||||
#ifndef __types_h
 | 
					#ifndef __types_h
 | 
				
			||||||
#define __types_h
 | 
					#define __types_h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#define _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef CONFIG
 | 
					#ifndef CONFIG
 | 
				
			||||||
#define CONFIG "config.h"
 | 
					#define CONFIG "config.h"
 | 
				
			||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
@@ -57,11 +61,6 @@
 | 
				
			|||||||
#endif // __GNUC__
 | 
					#endif // __GNUC__
 | 
				
			||||||
#endif // alloca
 | 
					#endif // alloca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef alloca
 | 
					 | 
				
			||||||
#if _MSC_VER
 | 
					 | 
				
			||||||
#define alloca _malloca
 | 
					 | 
				
			||||||
#endif // _MSC_VER
 | 
					 | 
				
			||||||
#endif // alloca
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef alloca
 | 
					#ifndef alloca
 | 
				
			||||||
#ifdef __has_builtin // clang feature test
 | 
					#ifdef __has_builtin // clang feature test
 | 
				
			||||||
@@ -72,8 +71,15 @@
 | 
				
			|||||||
#endif // alloca
 | 
					#endif // alloca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef alloca
 | 
					#ifndef alloca
 | 
				
			||||||
 | 
					#if !_MSC_VER
 | 
				
			||||||
#include <alloca.h>
 | 
					#include <alloca.h>
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include <malloc.h>
 | 
				
			||||||
 | 
					//#define alloca _malloca
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					//#define alloca _malloca
 | 
				
			||||||
 | 
					//#endif // _MSC_VER
 | 
				
			||||||
 | 
					#endif // alloca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __packed
 | 
					#ifndef __packed
 | 
				
			||||||
#if _MSC_VER
 | 
					#if _MSC_VER
 | 
				
			||||||
@@ -84,12 +90,20 @@
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __pure
 | 
					#ifndef __pure
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#define __pure
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#define __pure	  __attribute__((pure))
 | 
					#define __pure	  __attribute__((pure))
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __noreturn
 | 
					#ifndef __noreturn
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#define __noreturn __declspec(noreturn)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#define __noreturn	__attribute__((noreturn))
 | 
					#define __noreturn	__attribute__((noreturn))
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define restrict	__restrict
 | 
					#define restrict	__restrict
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -157,7 +171,7 @@ typedef uint8_t ProdListIndex_t;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Stupid MingW just uses rand() from msvcrt.dll which uses RAND_MAX of 0x7fff
 | 
					// Stupid MingW just uses rand() from msvcrt.dll which uses RAND_MAX of 0x7fff
 | 
				
			||||||
#if RAND_MAX < 0x7fffffff
 | 
					#if RAND_MAX < 0x7fffffff
 | 
				
			||||||
#define rand32(x) ((uint32_t)((rand(x) << 17) | (rand(x) << 2) | (rand(x) & 3)))
 | 
					#define rand32() ((uint32_t)((rand() << 17) | (rand() << 2) | (rand() & 3)))
 | 
				
			||||||
#elif RAND_MAX < 0xffffffff
 | 
					#elif RAND_MAX < 0xffffffff
 | 
				
			||||||
#define rand32(x) ((uint32_t)((rand(x) << 1) | (rand(x) & 1)))
 | 
					#define rand32(x) ((uint32_t)((rand(x) << 1) | (rand(x) & 1)))
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@@ -285,11 +299,11 @@ typedef void* sockopt_t;
 | 
				
			|||||||
#undef IsEqualGUID
 | 
					#undef IsEqualGUID
 | 
				
			||||||
#define IsEqualGUID(a, b)  ( !memcmp(a, b, sizeof(GUID)) )
 | 
					#define IsEqualGUID(a, b)  ( !memcmp(a, b, sizeof(GUID)) )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __stdcall
 | 
					#if !defined(__stdcall) && !_MSC_VER
 | 
				
			||||||
#define __stdcall
 | 
					#define __stdcall
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __cdecl
 | 
					#if !defined(__cdecl) && !_MSC_VER
 | 
				
			||||||
#define __cdecl
 | 
					#define __cdecl
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -301,4 +315,18 @@ typedef struct {
 | 
				
			|||||||
} CLDATA, *const PCLDATA;
 | 
					} CLDATA, *const PCLDATA;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _MSC_VER
 | 
				
			||||||
 | 
					#define strcasecmp _stricmp
 | 
				
			||||||
 | 
					#define strncasecmp _strnicmp
 | 
				
			||||||
 | 
					#define vlmcsd_snprintf _snprintf
 | 
				
			||||||
 | 
					#define vlmcsd_vsnprintf _vsnprintf
 | 
				
			||||||
 | 
					#define vlmcsd_unlink DeleteFile
 | 
				
			||||||
 | 
					#define vlmcsd_strtoll strtol // TODO: Get some 64-bit strtoll
 | 
				
			||||||
 | 
					#else // !_MSC_VER
 | 
				
			||||||
 | 
					#define vlmcsd_snprintf snprintf
 | 
				
			||||||
 | 
					#define vlmcsd_vsnprintf vsnprintf
 | 
				
			||||||
 | 
					#define vlmcsd_strtoll strtoll
 | 
				
			||||||
 | 
					#define vlmcsd_unlink unlink
 | 
				
			||||||
 | 
					#endif  // !_MSC_VER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // __types_h
 | 
					#endif // __types_h
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:34 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								vlmcs.1.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								vlmcs.1.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										54
									
								
								vlmcs.c
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								vlmcs.c
									
									
									
									
									
								
							@@ -8,15 +8,24 @@
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "vlmcs.h"
 | 
					#include "vlmcs.h"
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#include <Shlwapi.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					#include "wingetopt.h"
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#include <getopt.h>
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#include <sys/types.h>
 | 
					#include <sys/types.h>
 | 
				
			||||||
#include <sys/stat.h>
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#ifndef _MSC_VER
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifndef _WIN32
 | 
					#ifndef _WIN32
 | 
				
			||||||
#include <sys/ioctl.h>
 | 
					#include <sys/ioctl.h>
 | 
				
			||||||
#include <termios.h>
 | 
					#include <termios.h>
 | 
				
			||||||
@@ -301,7 +310,7 @@ __noreturn static void showProducts(PRINTFUNC p)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	for (currentProduct = ExtendedProductList; currentProduct->name; currentProduct++)
 | 
						for (currentProduct = ExtendedProductList; currentProduct->name; currentProduct++)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		uint_fast8_t len = strlen(currentProduct->name);
 | 
							uint_fast8_t len = (uint_fast8_t)strlen(currentProduct->name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (len > longestString)
 | 
							if (len > longestString)
 | 
				
			||||||
			longestString = len;
 | 
								longestString = len;
 | 
				
			||||||
@@ -538,7 +547,7 @@ static void parseCommandLinePass2(const char *const programName, const int argc,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			case 'i':
 | 
								case 'i':
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				switch(getOptionArgumentInt(o, 4, 6))
 | 
									switch(getOptionArgumentInt((char)o, 4, 6))
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					case 4:
 | 
										case 4:
 | 
				
			||||||
						AddressFamily = AF_INET;
 | 
											AddressFamily = AF_INET;
 | 
				
			||||||
@@ -564,13 +573,13 @@ static void parseCommandLinePass2(const char *const programName, const int argc,
 | 
				
			|||||||
			case 'n': // Fixed number of Requests (regardless, whether they are required)
 | 
								case 'n': // Fixed number of Requests (regardless, whether they are required)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				incompatibleOptions |= VLMCS_OPTION_NO_GRAB_INI;
 | 
									incompatibleOptions |= VLMCS_OPTION_NO_GRAB_INI;
 | 
				
			||||||
				FixedRequests = getOptionArgumentInt(o, 1, INT_MAX);
 | 
									FixedRequests = getOptionArgumentInt((char)o, 1, INT_MAX);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case 'r': // Fake minimum required client count
 | 
								case 'r': // Fake minimum required client count
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				incompatibleOptions |= VLMCS_OPTION_NO_GRAB_INI;
 | 
									incompatibleOptions |= VLMCS_OPTION_NO_GRAB_INI;
 | 
				
			||||||
				ActiveLicensePack.N_Policy = getOptionArgumentInt(o, 0, INT_MAX);
 | 
									ActiveLicensePack.N_Policy = getOptionArgumentInt((char)o, 0, INT_MAX);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case 'c': // use a specific client GUID
 | 
								case 'c': // use a specific client GUID
 | 
				
			||||||
@@ -596,7 +605,7 @@ static void parseCommandLinePass2(const char *const programName, const int argc,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			case 'g': // Set custom "grace" time in minutes (default 30 days)
 | 
								case 'g': // Set custom "grace" time in minutes (default 30 days)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				BindingExpiration = getOptionArgumentInt(o, 0, INT_MAX);
 | 
									BindingExpiration = getOptionArgumentInt((char)o, 0, INT_MAX);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case 's': // Set specfic SKU ID
 | 
								case 's': // Set specfic SKU ID
 | 
				
			||||||
@@ -657,7 +666,7 @@ static void parseCommandLinePass2(const char *const programName, const int argc,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			case 't':
 | 
								case 't':
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				LicenseStatus = getOptionArgumentInt(o, 0, 0x7fffffff);
 | 
									LicenseStatus = getOptionArgumentInt((char)o, 0, 0x7fffffff);
 | 
				
			||||||
				if ((unsigned int)LicenseStatus > 6) errorout("Warning: Correct license status is 0 <= license status <= 6.\n");
 | 
									if ((unsigned int)LicenseStatus > 6) errorout("Warning: Correct license status is 0 <= license status <= 6.\n");
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -913,13 +922,13 @@ int SendActivationRequest(const RpcCtx sock, RESPONSE *baseResponse, REQUEST *ba
 | 
				
			|||||||
		if (LE16(((RESPONSE*)(response))->MajorVer) == 4)
 | 
							if (LE16(((RESPONSE*)(response))->MajorVer) == 4)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			RESPONSE_V4 response_v4;
 | 
								RESPONSE_V4 response_v4;
 | 
				
			||||||
			*result = DecryptResponseV4(&response_v4, responseSize, response, request);
 | 
								*result = DecryptResponseV4(&response_v4, (const int)responseSize, response, request);
 | 
				
			||||||
			memcpy(baseResponse, &response_v4.ResponseBase, sizeof(RESPONSE));
 | 
								memcpy(baseResponse, &response_v4.ResponseBase, sizeof(RESPONSE));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			RESPONSE_V6 response_v6;
 | 
								RESPONSE_V6 response_v6;
 | 
				
			||||||
			*result = DecryptResponseV6(&response_v6, responseSize, response, request, hwid);
 | 
								*result = DecryptResponseV6(&response_v6, (int)responseSize, response, request, hwid);
 | 
				
			||||||
			memcpy(baseResponse, &response_v6.ResponseBase, sizeof(RESPONSE));
 | 
								memcpy(baseResponse, &response_v6.ResponseBase, sizeof(RESPONSE));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1000,7 +1009,7 @@ static void newIniBackupFile(const char* const restrict fname)
 | 
				
			|||||||
	if (fclose(f))
 | 
						if (fclose(f))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		errorout("Fatal: Cannot write to %s: %s\n", fname, strerror(errno));
 | 
							errorout("Fatal: Cannot write to %s: %s\n", fname, strerror(errno));
 | 
				
			||||||
		unlink(fname);
 | 
							vlmcsd_unlink(fname);
 | 
				
			||||||
		exit(!0);
 | 
							exit(!0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1009,7 +1018,9 @@ static void newIniBackupFile(const char* const restrict fname)
 | 
				
			|||||||
static void updateIniFile(iniFileEpidLines* const restrict lines)
 | 
					static void updateIniFile(iniFileEpidLines* const restrict lines)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int_fast8_t lineWritten[_countof(*lines)];
 | 
						int_fast8_t lineWritten[_countof(*lines)];
 | 
				
			||||||
 | 
					#	if !_MSC_VER
 | 
				
			||||||
	struct stat statbuf;
 | 
						struct stat statbuf;
 | 
				
			||||||
 | 
					#	endif
 | 
				
			||||||
	uint_fast8_t i;
 | 
						uint_fast8_t i;
 | 
				
			||||||
	int_fast8_t iniFileExistedBefore = TRUE;
 | 
						int_fast8_t iniFileExistedBefore = TRUE;
 | 
				
			||||||
	unsigned int lineNumber;
 | 
						unsigned int lineNumber;
 | 
				
			||||||
@@ -1021,6 +1032,13 @@ static void updateIniFile(iniFileEpidLines* const restrict lines)
 | 
				
			|||||||
	strcpy(fn_bak, fn_ini_client);
 | 
						strcpy(fn_bak, fn_ini_client);
 | 
				
			||||||
	strcat(fn_bak, "~");
 | 
						strcat(fn_bak, "~");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#	if _MSC_VER
 | 
				
			||||||
 | 
						if (!PathFileExists(fn_ini_client))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							iniFileExistedBefore = FALSE;
 | 
				
			||||||
 | 
							newIniBackupFile(fn_bak);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					#	else
 | 
				
			||||||
	if (stat(fn_ini_client, &statbuf))
 | 
						if (stat(fn_ini_client, &statbuf))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (errno != ENOENT)
 | 
							if (errno != ENOENT)
 | 
				
			||||||
@@ -1034,9 +1052,10 @@ static void updateIniFile(iniFileEpidLines* const restrict lines)
 | 
				
			|||||||
			newIniBackupFile(fn_bak);
 | 
								newIniBackupFile(fn_bak);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					#	endif
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		unlink(fn_bak); // Required for Windows. Most Unix systems don't need it.
 | 
							vlmcsd_unlink(fn_bak); // Required for Windows. Most Unix systems don't need it.
 | 
				
			||||||
		if (rename(fn_ini_client, fn_bak))
 | 
							if (rename(fn_ini_client, fn_bak))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			errorout("Fatal: Cannot create %s: %s\n", fn_bak, strerror(errno));
 | 
								errorout("Fatal: Cannot create %s: %s\n", fn_bak, strerror(errno));
 | 
				
			||||||
@@ -1110,11 +1129,12 @@ static void updateIniFile(iniFileEpidLines* const restrict lines)
 | 
				
			|||||||
		exit(!0);
 | 
							exit(!0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!iniFileExistedBefore) unlink(fn_bak);
 | 
						if (!iniFileExistedBefore) vlmcsd_unlink(fn_bak);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	free(fn_bak);
 | 
						free(fn_bak);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void grabServerData()
 | 
					static void grabServerData()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	RpcCtx s = INVALID_RPCCTX;
 | 
						RpcCtx s = INVALID_RPCCTX;
 | 
				
			||||||
@@ -1163,16 +1183,16 @@ static void grabServerData()
 | 
				
			|||||||
    		memset(ePID + 3 * PID_BUFFER_SIZE - 3, 0, 3);
 | 
					    		memset(ePID + 3 * PID_BUFFER_SIZE - 3, 0, 3);
 | 
				
			||||||
    	}
 | 
					    	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	snprintf(lines[i], sizeof(lines[0]), "%s = %s", ePidGroup[i], ePID);
 | 
					    	vlmcsd_snprintf(lines[i], sizeof(lines[0]), "%s = %s", ePidGroup[i], ePID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	if (response.MajorVer > 5)
 | 
					    	if (response.MajorVer > 5)
 | 
				
			||||||
    	{
 | 
					    	{
 | 
				
			||||||
    		len = strlen(lines[i]);
 | 
					    		len = strlen(lines[i]);
 | 
				
			||||||
    		snprintf (lines[i] + len, sizeof(lines[0]) - len, " / %02X %02X %02X %02X %02X %02X %02X %02X", hwid[0], hwid[1], hwid[2], hwid[3], hwid[4], hwid[5], hwid[6], hwid[7]);
 | 
					    		vlmcsd_snprintf (lines[i] + len, sizeof(lines[0]) - len, " / %02X %02X %02X %02X %02X %02X %02X %02X", hwid[0], hwid[1], hwid[2], hwid[3], hwid[4], hwid[5], hwid[6], hwid[7]);
 | 
				
			||||||
    	}
 | 
					    	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		len = strlen(lines[i]);
 | 
							len = strlen(lines[i]);
 | 
				
			||||||
    	snprintf(lines[i] + len, sizeof(lines[0]) - len, "\n");
 | 
					    	vlmcsd_snprintf(lines[i] + len, sizeof(lines[0]) - len, "\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1188,7 +1208,7 @@ static void grabServerData()
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int client_main(const int argc, CARGV argv)
 | 
					int client_main(int argc, CARGV argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	#if defined(_WIN32) && !defined(USE_MSRPC)
 | 
						#if defined(_WIN32) && !defined(USE_MSRPC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1354,10 +1374,10 @@ static void CreateRequestBase(REQUEST *Request)
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		int len, len2;
 | 
							int len, len2;
 | 
				
			||||||
		unsigned int index = rand() % _countof(ClientDnsNames.first);
 | 
							unsigned int index = rand() % _countof(ClientDnsNames.first);
 | 
				
			||||||
		len = utf8_to_ucs2(Request->WorkstationName, ClientDnsNames.first[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
							len = (int)utf8_to_ucs2(Request->WorkstationName, ClientDnsNames.first[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		index = rand() % _countof(ClientDnsNames.second);
 | 
							index = rand() % _countof(ClientDnsNames.second);
 | 
				
			||||||
		len2 = utf8_to_ucs2(Request->WorkstationName + len, ClientDnsNames.second[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
							len2 = (int)utf8_to_ucs2(Request->WorkstationName + len, ClientDnsNames.second[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		index = rand() % _countof(ClientDnsNames.tld);
 | 
							index = rand() % _countof(ClientDnsNames.tld);
 | 
				
			||||||
		utf8_to_ucs2(Request->WorkstationName + len + len2, ClientDnsNames.tld[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
							utf8_to_ucs2(Request->WorkstationName + len + len2, ClientDnsNames.tld[index], WORKSTATION_NAME_BUFFER, WORKSTATION_NAME_BUFFER * 3);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:35 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:34 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								vlmcsd.7.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								vlmcsd.7.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:34 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								vlmcsd.8.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								vlmcsd.8.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								vlmcsd.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								vlmcsd.h
									
									
									
									
									
								
							@@ -16,9 +16,7 @@ extern char *fn_log;
 | 
				
			|||||||
//int main(int argc, CARGV);
 | 
					//int main(int argc, CARGV);
 | 
				
			||||||
extern void cleanup();
 | 
					extern void cleanup();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef _NTSERVICE
 | 
					 | 
				
			||||||
int newmain();
 | 
					int newmain();
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if MULTI_CALL_BINARY < 1
 | 
					#if MULTI_CALL_BINARY < 1
 | 
				
			||||||
#define server_main main
 | 
					#define server_main main
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:35 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								vlmcsd.ini.5.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								vlmcsd.ini.5.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
<!-- Creator     : groff version 1.22.3 -->
 | 
					<!-- Creator     : groff version 1.22.3 -->
 | 
				
			||||||
<!-- CreationDate: Fri Sep 16 00:23:35 2016 -->
 | 
					<!-- CreationDate: Thu Oct  6 01:17:00 2016 -->
 | 
				
			||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 | 
				
			||||||
"http://www.w3.org/TR/html4/loose.dtd">
 | 
					"http://www.w3.org/TR/html4/loose.dtd">
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@@ -1,5 +1,7 @@
 | 
				
			|||||||
/* Multi-Call Binary for vlmcs and vlmcsd */
 | 
					/* Multi-Call Binary for vlmcs and vlmcsd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _CRT_SECURE_NO_WARNINGS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef CONFIG
 | 
					#ifndef CONFIG
 | 
				
			||||||
#define CONFIG "config.h"
 | 
					#define CONFIG "config.h"
 | 
				
			||||||
#endif // CONFIG
 | 
					#endif // CONFIG
 | 
				
			||||||
@@ -9,9 +11,15 @@
 | 
				
			|||||||
#error "Please define MULTI_CALL_BINARY=1 when compiling this file."
 | 
					#error "Please define MULTI_CALL_BINARY=1 when compiling this file."
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <libgen.h>
 | 
					 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !_MSC_VER
 | 
				
			||||||
 | 
					#include <libgen.h>
 | 
				
			||||||
 | 
					#else // _MSC_VER
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include "helpers.h"
 | 
				
			||||||
 | 
					#endif // _MSC_VER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "vlmcs.h"
 | 
					#include "vlmcs.h"
 | 
				
			||||||
#include "vlmcsd.h"
 | 
					#include "vlmcsd.h"
 | 
				
			||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
@@ -24,6 +32,33 @@
 | 
				
			|||||||
#define compare strcmp // for case-sensitive filesystems
 | 
					#define compare strcmp // for case-sensitive filesystems
 | 
				
			||||||
#endif // native Unix
 | 
					#endif // native Unix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if _MSC_VER
 | 
				
			||||||
 | 
					static char* basename(const char* fullname)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						size_t len = strlen(fullname);
 | 
				
			||||||
 | 
						char* filename = (char*)vlmcsd_malloc(len + 1);
 | 
				
			||||||
 | 
						char* extension = (char*)vlmcsd_malloc(len + 1);
 | 
				
			||||||
 | 
						static char result[64];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						_splitpath(fullname, NULL, NULL, filename, extension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (strlen(filename) + strlen(extension) > 63)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							*result = 0;
 | 
				
			||||||
 | 
							goto finally;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						strcpy(result, filename);
 | 
				
			||||||
 | 
						strcat(result, extension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						finally:
 | 
				
			||||||
 | 
						free(filename);
 | 
				
			||||||
 | 
						free(extension);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return result;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif // _MSC_VER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, CARGV argv)
 | 
					int main(int argc, CARGV argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	multi_argv = argv;
 | 
						multi_argv = argv;
 | 
				
			||||||
@@ -35,20 +70,20 @@ int main(int argc, CARGV argv)
 | 
				
			|||||||
	if (!compare(basename((char*)*argv), "vlmcs"))
 | 
						if (!compare(basename((char*)*argv), "vlmcs"))
 | 
				
			||||||
		return client_main(argc, argv);
 | 
							return client_main(argc, argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
	if (!compare(basename((char*)*argv), "vlmcsd.exe"))
 | 
						if (!compare(basename((char*)*argv), "vlmcsd.exe"))
 | 
				
			||||||
		return server_main(argc, argv);
 | 
							return server_main(argc, argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!compare(basename((char*)*argv), "vlmcs.exe"))
 | 
						if (!compare(basename((char*)*argv), "vlmcs.exe"))
 | 
				
			||||||
		return client_main(argc, argv);
 | 
							return client_main(argc, argv);
 | 
				
			||||||
	#endif // _WIN32
 | 
					#endif // _WIN32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (argc > 1)
 | 
						if (argc > 1)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (!strcmp((char*)argv[1],"vlmcsd"))
 | 
							if (!strcmp((char*)argv[1], "vlmcsd"))
 | 
				
			||||||
			return server_main(argc - 1, argv + 1);
 | 
								return server_main(argc - 1, argv + 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!strcmp((char*)argv[1],"vlmcs"))
 | 
							if (!strcmp((char*)argv[1], "vlmcs"))
 | 
				
			||||||
			return client_main(argc - 1, argv + 1);
 | 
								return client_main(argc - 1, argv + 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										76
									
								
								wingetopt.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								wingetopt.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					POSIX getopt for Windows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AT&T Public License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Code given out at the 1985 UNIFORUM conference in Dallas.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _MSC_VER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "wingetopt.h"
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define EOF	(-1)
 | 
				
			||||||
 | 
					#define ERR(s, c)	if(opterr){\
 | 
				
			||||||
 | 
						char errbuf[2];\
 | 
				
			||||||
 | 
						errbuf[0] = c; errbuf[1] = '\n';\
 | 
				
			||||||
 | 
						fputs(argv[0], stderr);\
 | 
				
			||||||
 | 
						fputs(s, stderr);\
 | 
				
			||||||
 | 
						fputc(c, stderr);}
 | 
				
			||||||
 | 
					//(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
 | 
				
			||||||
 | 
						//(void) write(2, s, (unsigned)strlen(s));\
 | 
				
			||||||
 | 
						//(void) write(2, errbuf, 2);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	opterr = 1;
 | 
				
			||||||
 | 
					int	optind = 1;
 | 
				
			||||||
 | 
					int	optopt;
 | 
				
			||||||
 | 
					char	*optarg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int getopt(int argc, char * const argv[], const char *opts)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						static int sp = 1;
 | 
				
			||||||
 | 
						register int c;
 | 
				
			||||||
 | 
						register char *cp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (sp == 1)
 | 
				
			||||||
 | 
							if (optind >= argc ||
 | 
				
			||||||
 | 
								argv[optind][0] != '-' || argv[optind][1] == '\0')
 | 
				
			||||||
 | 
								return(EOF);
 | 
				
			||||||
 | 
							else if (strcmp(argv[optind], "--") == 0) {
 | 
				
			||||||
 | 
								optind++;
 | 
				
			||||||
 | 
								return(EOF);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							optopt = c = argv[optind][sp];
 | 
				
			||||||
 | 
							if (c == ':' || (cp = strchr(opts, c)) == NULL) {
 | 
				
			||||||
 | 
								ERR(": illegal option -- ", (char)c);
 | 
				
			||||||
 | 
								if (argv[optind][++sp] == '\0') {
 | 
				
			||||||
 | 
									optind++;
 | 
				
			||||||
 | 
									sp = 1;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return('?');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (*++cp == ':') {
 | 
				
			||||||
 | 
								if (argv[optind][sp + 1] != '\0')
 | 
				
			||||||
 | 
									optarg = (char*)&argv[optind++][sp + 1];
 | 
				
			||||||
 | 
								else if (++optind >= argc) {
 | 
				
			||||||
 | 
									ERR(": option requires an argument -- ", (char)c);
 | 
				
			||||||
 | 
									sp = 1;
 | 
				
			||||||
 | 
									return('?');
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									optarg = (char*)argv[optind++];
 | 
				
			||||||
 | 
								sp = 1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								if (argv[optind][++sp] == '\0') {
 | 
				
			||||||
 | 
									sp = 1;
 | 
				
			||||||
 | 
									optind++;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								optarg = NULL;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return(c);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  /* __GNUC__ */
 | 
				
			||||||
							
								
								
									
										32
									
								
								wingetopt.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								wingetopt.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					POSIX getopt for Windows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AT&T Public License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Code given out at the 1985 UNIFORUM conference in Dallas.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MSC_VER
 | 
				
			||||||
 | 
					#include <getopt.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef _MSC_VER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _WINGETOPT_H_
 | 
				
			||||||
 | 
					#define _WINGETOPT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						extern int opterr;
 | 
				
			||||||
 | 
						extern int optind;
 | 
				
			||||||
 | 
						extern int optopt;
 | 
				
			||||||
 | 
						extern char *optarg;
 | 
				
			||||||
 | 
						extern int getopt(int argc, char * const argv[], const char *optstring);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  /* _GETOPT_H_ */
 | 
				
			||||||
 | 
					#endif  /* __GNUC__ */
 | 
				
			||||||
		Reference in New Issue
	
	Block a user