mirror of
https://github.com/Wind4/vlmcsd.git
synced 2024-11-28 21:11:03 +08:00
vlmcsd-svn1031-2016-10-06-Hotbird64
This commit is contained in:
parent
0b2c216c06
commit
d413afbadf
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.
83
vlmcsd.c
83
vlmcsd.c
@ -1,3 +1,7 @@
|
|||||||
|
#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
|
||||||
@ -25,6 +29,10 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#if _MSC_VER
|
||||||
|
#include "wingetopt.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
@ -74,6 +82,7 @@
|
|||||||
|
|
||||||
static const char* const optstring = "N:B:m:t:w:0:3:6:H:A:R:u:g:L:p:i:P:l:r:U:W:C:F:o:T:SseDdVvqkZ";
|
static const char* const optstring = "N:B:m:t:w:0:3:6:H:A:R:u:g:L:p:i:P:l:r:U:W:C:F:o:T:SseDdVvqkZ";
|
||||||
|
|
||||||
|
|
||||||
#if !defined(NO_SOCKETS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
#if !defined(NO_SOCKETS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
||||||
static uint_fast8_t maxsockets = 0;
|
static uint_fast8_t maxsockets = 0;
|
||||||
|
|
||||||
@ -371,7 +380,7 @@ __pure static DWORD timeSpanString2Minutes(const char *const restrict argument)
|
|||||||
{
|
{
|
||||||
char *unitId;
|
char *unitId;
|
||||||
|
|
||||||
long long val = strtoll(argument, &unitId, 10);
|
long long val = vlmcsd_strtoll(argument, &unitId, 10);
|
||||||
|
|
||||||
switch (toupper((int)*unitId))
|
switch (toupper((int)*unitId))
|
||||||
{
|
{
|
||||||
@ -464,7 +473,7 @@ static BOOL getIniFileArgumentInt(unsigned int *result, const char *const argume
|
|||||||
|
|
||||||
if (!stringToInt(argument, min, max, &tempResult))
|
if (!stringToInt(argument, min, max, &tempResult))
|
||||||
{
|
{
|
||||||
snprintf(IniFileErrorBuffer, INIFILE_ERROR_BUFFERSIZE, "Must be integer between %u and %u", min, max);
|
vlmcsd_snprintf(IniFileErrorBuffer, INIFILE_ERROR_BUFFERSIZE, "Must be integer between %u and %u", min, max);
|
||||||
IniFileErrorMessage = IniFileErrorBuffer;
|
IniFileErrorMessage = IniFileErrorBuffer;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -790,7 +799,7 @@ static BOOL setupListeningSocketsFromIniFile(const char *s)
|
|||||||
if (strncasecmp("Listen", s, 6)) return TRUE;
|
if (strncasecmp("Listen", s, 6)) return TRUE;
|
||||||
if (!getIniFileArgument(&s)) return TRUE;
|
if (!getIniFileArgument(&s)) return TRUE;
|
||||||
|
|
||||||
snprintf(IniFileErrorBuffer, INIFILE_ERROR_BUFFERSIZE, "Cannot listen on %s.", s);
|
vlmcsd_snprintf(IniFileErrorBuffer, INIFILE_ERROR_BUFFERSIZE, "Cannot listen on %s.", s);
|
||||||
IniFileErrorMessage = IniFileErrorBuffer;
|
IniFileErrorMessage = IniFileErrorBuffer;
|
||||||
return addListeningSocket(s);
|
return addListeningSocket(s);
|
||||||
}
|
}
|
||||||
@ -1073,7 +1082,7 @@ static void parseGeneralArguments() {
|
|||||||
BYTE* HwId;
|
BYTE* HwId;
|
||||||
#endif // NO_CL_PIDS
|
#endif // NO_CL_PIDS
|
||||||
|
|
||||||
for (opterr = 0; ( o = getopt(global_argc, (char* const*)global_argv, optstring) ) > 0; ) switch (o)
|
for (opterr = 0; (o = getopt(global_argc, (char* const*)global_argv, (const char*)optstring)) > 0; ) switch (o)
|
||||||
{
|
{
|
||||||
# if !defined(NO_SOCKETS) && !defined(NO_SIGHUP) && !defined(_WIN32)
|
# if !defined(NO_SOCKETS) && !defined(NO_SIGHUP) && !defined(_WIN32)
|
||||||
case 'Z':
|
case 'Z':
|
||||||
@ -1142,7 +1151,7 @@ static void parseGeneralArguments() {
|
|||||||
# ifdef USE_MSRPC
|
# ifdef USE_MSRPC
|
||||||
MaxTasks = getOptionArgumentInt(o, 1, RPC_C_LISTEN_MAX_CALLS_DEFAULT);
|
MaxTasks = getOptionArgumentInt(o, 1, RPC_C_LISTEN_MAX_CALLS_DEFAULT);
|
||||||
# else // !USE_MSRPC
|
# else // !USE_MSRPC
|
||||||
MaxTasks = getOptionArgumentInt(o, 1, SEM_VALUE_MAX);
|
MaxTasks = getOptionArgumentInt((char)o, 1, SEM_VALUE_MAX);
|
||||||
# endif // !USE_MSRPC
|
# endif // !USE_MSRPC
|
||||||
ignoreIniFileParameter(INI_PARAM_MAX_WORKERS);
|
ignoreIniFileParameter(INI_PARAM_MAX_WORKERS);
|
||||||
break;
|
break;
|
||||||
@ -1152,7 +1161,7 @@ static void parseGeneralArguments() {
|
|||||||
|
|
||||||
# if !defined(NO_TIMEOUT) && !__minix__ && !defined(USE_MSRPC)
|
# if !defined(NO_TIMEOUT) && !__minix__ && !defined(USE_MSRPC)
|
||||||
case 't':
|
case 't':
|
||||||
ServerTimeout = getOptionArgumentInt(o, 1, 600);
|
ServerTimeout = getOptionArgumentInt((char)o, 1, 600);
|
||||||
ignoreIniFileParameter(INI_PARAM_CONNECTION_TIMEOUT);
|
ignoreIniFileParameter(INI_PARAM_CONNECTION_TIMEOUT);
|
||||||
break;
|
break;
|
||||||
# endif // !defined(NO_TIMEOUT) && !__minix__ && !defined(USE_MSRPC)
|
# endif // !defined(NO_TIMEOUT) && !__minix__ && !defined(USE_MSRPC)
|
||||||
@ -1196,7 +1205,7 @@ static void parseGeneralArguments() {
|
|||||||
# if !defined(NO_PRIVATE_IP_DETECT)
|
# if !defined(NO_PRIVATE_IP_DETECT)
|
||||||
case 'o':
|
case 'o':
|
||||||
ignoreIniFileParameter(INI_PARAM_PUBLIC_IP_PROTECTION_LEVEL);
|
ignoreIniFileParameter(INI_PARAM_PUBLIC_IP_PROTECTION_LEVEL);
|
||||||
PublicIPProtectionLevel = getOptionArgumentInt(o, 0, 3);
|
PublicIPProtectionLevel = getOptionArgumentInt((char)o, 0, 3);
|
||||||
|
|
||||||
# if !HAVE_GETIFADDR
|
# if !HAVE_GETIFADDR
|
||||||
if (PublicIPProtectionLevel & 1) usage();
|
if (PublicIPProtectionLevel & 1) usage();
|
||||||
@ -1261,12 +1270,12 @@ static void parseGeneralArguments() {
|
|||||||
|
|
||||||
# ifndef NO_RANDOM_EPID
|
# ifndef NO_RANDOM_EPID
|
||||||
case 'r':
|
case 'r':
|
||||||
RandomizationLevel = (int_fast8_t)getOptionArgumentInt(o, 0, 2);
|
RandomizationLevel = (int_fast8_t)getOptionArgumentInt((char)o, 0, 2);
|
||||||
ignoreIniFileParameter(INI_PARAM_RANDOMIZATION_LEVEL);
|
ignoreIniFileParameter(INI_PARAM_RANDOMIZATION_LEVEL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C':
|
case 'C':
|
||||||
Lcid = (uint16_t)getOptionArgumentInt(o, 0, 32767);
|
Lcid = (uint16_t)getOptionArgumentInt((char)o, 0, 32767);
|
||||||
|
|
||||||
ignoreIniFileParameter(INI_PARAM_LCID);
|
ignoreIniFileParameter(INI_PARAM_LCID);
|
||||||
|
|
||||||
@ -1310,15 +1319,15 @@ static void parseGeneralArguments() {
|
|||||||
|
|
||||||
# ifndef NO_CUSTOM_INTERVALS
|
# ifndef NO_CUSTOM_INTERVALS
|
||||||
case 'R':
|
case 'R':
|
||||||
VLRenewalInterval = getTimeSpanFromCommandLine(optarg, o);
|
VLRenewalInterval = getTimeSpanFromCommandLine(optarg, (char)o);
|
||||||
ignoreIniFileParameter(INI_PARAM_RENEWAL_INTERVAL);
|
ignoreIniFileParameter(INI_PARAM_RENEWAL_INTERVAL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'A':
|
case 'A':
|
||||||
VLActivationInterval = getTimeSpanFromCommandLine(optarg, o);
|
VLActivationInterval = getTimeSpanFromCommandLine(optarg, (char)o);
|
||||||
ignoreIniFileParameter(INI_PARAM_ACTIVATION_INTERVAL);
|
ignoreIniFileParameter(INI_PARAM_ACTIVATION_INTERVAL);
|
||||||
break;
|
break;
|
||||||
#endif
|
# endif // NO_CUSTOM_INTERVALS
|
||||||
|
|
||||||
# ifndef USE_MSRPC
|
# ifndef USE_MSRPC
|
||||||
case 'd':
|
case 'd':
|
||||||
@ -1369,7 +1378,7 @@ static void parseGeneralArguments() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef NO_PID_FILE
|
#if !defined(NO_PID_FILE)
|
||||||
static void writePidFile()
|
static void writePidFile()
|
||||||
{
|
{
|
||||||
# ifndef NO_SIGHUP
|
# ifndef NO_SIGHUP
|
||||||
@ -1382,7 +1391,11 @@ static void writePidFile()
|
|||||||
|
|
||||||
if (_f)
|
if (_f)
|
||||||
{
|
{
|
||||||
fprintf(_f, "%u", (uint32_t)getpid());
|
# if _MSC_VER
|
||||||
|
fprintf(_f, "%u", (unsigned int)GetCurrentProcessId());
|
||||||
|
# else
|
||||||
|
fprintf(_f, "%u", (unsigned int)getpid());
|
||||||
|
# endif
|
||||||
fclose(_f);
|
fclose(_f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1395,18 +1408,17 @@ static void writePidFile()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define writePidFile(x)
|
#define writePidFile()
|
||||||
#endif // NO_PID_FILE
|
#endif // !defined(NO_PID_FILE)
|
||||||
|
|
||||||
#if !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
#if !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
||||||
|
|
||||||
void cleanup()
|
void cleanup()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!InetdMode)
|
if (!InetdMode)
|
||||||
{
|
{
|
||||||
# ifndef NO_PID_FILE
|
# ifndef NO_PID_FILE
|
||||||
if (fn_pid) unlink(fn_pid);
|
if (fn_pid) vlmcsd_unlink(fn_pid);
|
||||||
# endif // NO_PID_FILE
|
# endif // NO_PID_FILE
|
||||||
closeAllListeningSockets();
|
closeAllListeningSockets();
|
||||||
|
|
||||||
@ -1425,7 +1437,6 @@ void cleanup()
|
|||||||
logger("vlmcsd %s was shutdown\n", Version);
|
logger("vlmcsd %s was shutdown\n", Version);
|
||||||
# endif // NO_LOG
|
# endif // NO_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(USE_MSRPC)
|
#elif defined(USE_MSRPC)
|
||||||
@ -1522,7 +1533,7 @@ int setupListeningSockets()
|
|||||||
{
|
{
|
||||||
int o;
|
int o;
|
||||||
# if HAVE_GETIFADDR
|
# if HAVE_GETIFADDR
|
||||||
char** privateIPList;
|
char** privateIPList = NULL;
|
||||||
int numPrivateIPs = 0;
|
int numPrivateIPs = 0;
|
||||||
if (PublicIPProtectionLevel & 1) getPrivateIPAddresses(&numPrivateIPs, &privateIPList);
|
if (PublicIPProtectionLevel & 1) getPrivateIPAddresses(&numPrivateIPs, &privateIPList);
|
||||||
uint_fast8_t allocsockets = maxsockets ? (maxsockets + numPrivateIPs) : ((PublicIPProtectionLevel & 1) ? numPrivateIPs : 2);
|
uint_fast8_t allocsockets = maxsockets ? (maxsockets + numPrivateIPs) : ((PublicIPProtectionLevel & 1) ? numPrivateIPs : 2);
|
||||||
@ -1538,7 +1549,7 @@ int setupListeningSockets()
|
|||||||
// Reset getopt since we've alread used it
|
// Reset getopt since we've alread used it
|
||||||
optReset();
|
optReset();
|
||||||
|
|
||||||
for (opterr = 0; ( o = getopt(global_argc, (char* const*)global_argv, optstring) ) > 0; ) switch (o)
|
for (opterr = 0; (o = getopt(global_argc, (char* const*)global_argv, (const char*)optstring)) > 0; ) switch (o)
|
||||||
{
|
{
|
||||||
case 'P':
|
case 'P':
|
||||||
defaultport = optarg;
|
defaultport = optarg;
|
||||||
@ -1606,17 +1617,13 @@ int setupListeningSockets()
|
|||||||
|
|
||||||
int server_main(int argc, CARGV argv)
|
int server_main(int argc, CARGV argv)
|
||||||
{
|
{
|
||||||
#if !defined(_NTSERVICE) && !defined(NO_SOCKETS)
|
|
||||||
int error;
|
|
||||||
#endif // !defined(_NTSERVICE) && !defined(NO_SOCKETS)
|
|
||||||
|
|
||||||
// Initialize ePID / HwId parameters
|
// Initialize ePID / HwId parameters
|
||||||
memset(KmsResponseParameters, 0, sizeof(KmsResponseParameters));
|
memset(KmsResponseParameters, 0, sizeof(KmsResponseParameters));
|
||||||
|
|
||||||
global_argc = argc;
|
global_argc = argc;
|
||||||
global_argv = argv;
|
global_argv = argv;
|
||||||
|
|
||||||
#ifdef _NTSERVICE // #endif is in newmain()
|
# ifdef _NTSERVICE
|
||||||
DWORD lasterror = ERROR_SUCCESS;
|
DWORD lasterror = ERROR_SUCCESS;
|
||||||
|
|
||||||
if (!StartServiceCtrlDispatcher(NTServiceDispatchTable) && (lasterror = GetLastError()) == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)
|
if (!StartServiceCtrlDispatcher(NTServiceDispatchTable) && (lasterror = GetLastError()) == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)
|
||||||
@ -1626,19 +1633,22 @@ int server_main(int argc, CARGV argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return lasterror;
|
return lasterror;
|
||||||
|
# else // !_NTSERVICE
|
||||||
|
return newmain();
|
||||||
|
# endif // !_NTSERVICE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int newmain()
|
int newmain()
|
||||||
{
|
{
|
||||||
int error;
|
|
||||||
|
|
||||||
// Initialize thread synchronization objects for Windows and Cygwin
|
// Initialize thread synchronization objects for Windows and Cygwin
|
||||||
# ifdef USE_THREADS
|
# ifdef USE_THREADS
|
||||||
|
|
||||||
# ifndef NO_LOG
|
# ifndef NO_LOG
|
||||||
// Initialize the Critical Section for proper logging
|
// Initialize the Critical Section for proper logging
|
||||||
|
# if _WIN32
|
||||||
InitializeCriticalSection(&logmutex);
|
InitializeCriticalSection(&logmutex);
|
||||||
|
# endif // _WIN32
|
||||||
# endif // NO_LOG
|
# endif // NO_LOG
|
||||||
|
|
||||||
# endif // USE_THREADS
|
# endif // USE_THREADS
|
||||||
@ -1646,14 +1656,16 @@ int newmain()
|
|||||||
# ifdef _WIN32
|
# ifdef _WIN32
|
||||||
|
|
||||||
# ifndef USE_MSRPC
|
# ifndef USE_MSRPC
|
||||||
// Windows Sockets must be initialized
|
|
||||||
WSADATA wsadata;
|
WSADATA wsadata;
|
||||||
|
{
|
||||||
|
// Windows Sockets must be initialized
|
||||||
|
int error;
|
||||||
if ((error = WSAStartup(0x0202, &wsadata)))
|
if ((error = WSAStartup(0x0202, &wsadata)))
|
||||||
{
|
{
|
||||||
printerrorf("Fatal: Could not initialize Windows sockets (Error: %d).\n", error);
|
printerrorf("Fatal: Could not initialize Windows sockets (Error: %d).\n", error);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
# endif // USE_MSRPC
|
# endif // USE_MSRPC
|
||||||
|
|
||||||
// Windows can never daemonize
|
// Windows can never daemonize
|
||||||
@ -1662,10 +1674,11 @@ int newmain()
|
|||||||
# else // __CYGWIN__
|
# else // __CYGWIN__
|
||||||
|
|
||||||
// Do not daemonize if we are a Windows service
|
// Do not daemonize if we are a Windows service
|
||||||
|
# ifdef _NTSERVICE
|
||||||
if (IsNTService) nodaemon = 1;
|
if (IsNTService) nodaemon = 1;
|
||||||
|
# endif
|
||||||
|
|
||||||
# endif // _WIN32 / __CYGWIN__
|
# endif // _WIN32 / __CYGWIN__
|
||||||
#endif // _NTSERVICE ( #ifdef is main(int argc, CARGV argv) )
|
|
||||||
|
|
||||||
parseGeneralArguments(); // Does not return if an error occurs
|
parseGeneralArguments(); // Does not return if an error occurs
|
||||||
|
|
||||||
@ -1686,6 +1699,7 @@ int newmain()
|
|||||||
# endif // !defined(_WIN32) && !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
# endif // !defined(_WIN32) && !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
||||||
|
|
||||||
# ifndef NO_INI_FILE
|
# ifndef NO_INI_FILE
|
||||||
|
|
||||||
if (fn_ini && !readIniFile(INI_FILE_PASS_1))
|
if (fn_ini && !readIniFile(INI_FILE_PASS_1))
|
||||||
{
|
{
|
||||||
# ifdef INI_FILE
|
# ifdef INI_FILE
|
||||||
@ -1693,6 +1707,7 @@ int newmain()
|
|||||||
# endif // INI_FILE
|
# endif // INI_FILE
|
||||||
printerrorf("Warning: Can't read %s: %s\n", fn_ini, strerror(errno));
|
printerrorf("Warning: Can't read %s: %s\n", fn_ini, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
# endif // NO_INI_FILE
|
# endif // NO_INI_FILE
|
||||||
|
|
||||||
# if defined(USE_MSRPC) && !defined(NO_PRIVATE_IP_DETECT)
|
# if defined(USE_MSRPC) && !defined(NO_PRIVATE_IP_DETECT)
|
||||||
@ -1714,6 +1729,7 @@ int newmain()
|
|||||||
# if !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
# if !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
||||||
if (!InetdMode)
|
if (!InetdMode)
|
||||||
{
|
{
|
||||||
|
int error;
|
||||||
# ifdef SIMPLE_SOCKETS
|
# ifdef SIMPLE_SOCKETS
|
||||||
if ((error = listenOnAllAddresses())) return error;
|
if ((error = listenOnAllAddresses())) return error;
|
||||||
# else // !SIMPLE_SOCKETS
|
# else // !SIMPLE_SOCKETS
|
||||||
@ -1766,8 +1782,13 @@ int newmain()
|
|||||||
# if !defined(NO_SOCKETS)
|
# if !defined(NO_SOCKETS)
|
||||||
# ifdef _WIN32
|
# ifdef _WIN32
|
||||||
if (!IsNTService)
|
if (!IsNTService)
|
||||||
|
{
|
||||||
# endif // _WIN32
|
# endif // _WIN32
|
||||||
|
int error;
|
||||||
if ((error = daemonizeAndSetSignalAction())) return error;
|
if ((error = daemonizeAndSetSignalAction())) return error;
|
||||||
|
# ifdef _WIN32
|
||||||
|
}
|
||||||
|
# endif // _WIN32
|
||||||
# endif // !defined(NO_SOCKETS)
|
# endif // !defined(NO_SOCKETS)
|
||||||
|
|
||||||
writePidFile();
|
writePidFile();
|
||||||
|
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;
|
||||||
|
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__ */
|
Loading…
Reference in New Issue
Block a user