mirror of
https://gitlab.com/Syroot/Worms.git
synced 2025-05-05 11:19:29 +03:00
Move FrontendKitLib to WormKitTools to reuse it for other modules.
This commit is contained in:
parent
a314377c13
commit
2b94e09e39
@ -53,7 +53,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fkNetcode", "tool\fkNetcode
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FrontendKitWS", "tool\FrontendKitWS\FrontendKitWS.vcxproj", "{E391EA12-B929-466C-932F-DEF72B8CEB5D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FrontendKitWS", "tool\FrontendKitWS\FrontendKitWS.vcxproj", "{E391EA12-B929-466C-932F-DEF72B8CEB5D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FrontendKitLib", "tool\FrontendKitLib\FrontendKitLib.vcxproj", "{068A8647-0A66-4E39-983B-43ACEAC5C937}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wkUnlimiter", "tool\wkUnlimiter\wkUnlimiter.vcxproj", "{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WormKitTools", "tool\WormKitTools\FrontendKitLib.vcxproj", "{068A8647-0A66-4E39-983B-43ACEAC5C937}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -137,6 +139,10 @@ Global
|
|||||||
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Debug|Any CPU.Build.0 = Debug|Win32
|
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Debug|Any CPU.Build.0 = Debug|Win32
|
||||||
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Release|Any CPU.ActiveCfg = Release|Win32
|
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||||
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Release|Any CPU.Build.0 = Release|Win32
|
{E391EA12-B929-466C-932F-DEF72B8CEB5D}.Release|Any CPU.Build.0 = Release|Win32
|
||||||
|
{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||||
|
{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B}.Debug|Any CPU.Build.0 = Debug|Win32
|
||||||
|
{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||||
|
{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B}.Release|Any CPU.Build.0 = Release|Win32
|
||||||
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
||||||
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Debug|Any CPU.Build.0 = Debug|Win32
|
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Debug|Any CPU.Build.0 = Debug|Win32
|
||||||
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Release|Any CPU.ActiveCfg = Release|Win32
|
{068A8647-0A66-4E39-983B-43ACEAC5C937}.Release|Any CPU.ActiveCfg = Release|Win32
|
||||||
@ -165,6 +171,7 @@ Global
|
|||||||
{13ABF717-5809-441D-A5D8-66E1EE75A390} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
{13ABF717-5809-441D-A5D8-66E1EE75A390} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
||||||
{C4138811-7CFA-4826-A3DD-AF2B618EAFC1} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
{C4138811-7CFA-4826-A3DD-AF2B618EAFC1} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
||||||
{E391EA12-B929-466C-932F-DEF72B8CEB5D} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
{E391EA12-B929-466C-932F-DEF72B8CEB5D} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
||||||
|
{CDED4B7C-91DF-45D3-9704-DB8750BDAF5B} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
||||||
{068A8647-0A66-4E39-983B-43ACEAC5C937} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
{068A8647-0A66-4E39-983B-43ACEAC5C937} = {0B9B0B74-3EB1-46A4-BCCC-F2D6AE59A9EE}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <Windows.h>
|
|
||||||
|
|
||||||
struct PEInfo
|
|
||||||
{
|
|
||||||
PEInfo(HMODULE hModule = 0);
|
|
||||||
|
|
||||||
void Reset(HMODULE hModule);
|
|
||||||
ULONG_PTR Offset(ULONG_PTR off);
|
|
||||||
BOOL IsCode(LPVOID ptr);
|
|
||||||
BOOL IsData(LPVOID ptr);
|
|
||||||
|
|
||||||
HANDLE Handle;
|
|
||||||
IMAGE_DOS_HEADER* DOS;
|
|
||||||
IMAGE_NT_HEADERS* NT;
|
|
||||||
IMAGE_FILE_HEADER* FH;
|
|
||||||
IMAGE_OPTIONAL_HEADER* OPT;
|
|
||||||
};
|
|
@ -1,20 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <Windows.h>
|
|
||||||
|
|
||||||
namespace fk
|
|
||||||
{
|
|
||||||
enum GameVersion
|
|
||||||
{
|
|
||||||
GAME_VERSION_NONE = -1,
|
|
||||||
GAME_VERSION_BR, // 1.05 Br
|
|
||||||
GAME_VERSION_EN, // 1.05 Du, En, Fr, It, Po, Sp, Sw
|
|
||||||
GAME_VERSION_GE, // 1.05
|
|
||||||
GAME_VERSION_NA, // 1.05
|
|
||||||
GAME_VERSION_SA, // 1.05
|
|
||||||
GAME_VERSION_TRY // 1.07 Trymedia
|
|
||||||
};
|
|
||||||
|
|
||||||
int getGameVersion(DWORD timeDateStamp);
|
|
||||||
std::string getErrorMessage(int error);
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
#include "PEInfo.h"
|
|
||||||
|
|
||||||
PEInfo::PEInfo(HMODULE hModule)
|
|
||||||
{
|
|
||||||
Reset(hModule);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PEInfo::Reset(HMODULE hModule)
|
|
||||||
{
|
|
||||||
Handle = hModule == 0 ? GetModuleHandleA(NULL) : hModule;
|
|
||||||
DOS = (IMAGE_DOS_HEADER*)Handle;
|
|
||||||
NT = (IMAGE_NT_HEADERS*)((DWORD)DOS + DOS->e_lfanew);
|
|
||||||
FH = (IMAGE_FILE_HEADER*)&NT->FileHeader;
|
|
||||||
OPT = (IMAGE_OPTIONAL_HEADER*)&NT->OptionalHeader;
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG_PTR PEInfo::Offset(ULONG_PTR off)
|
|
||||||
{
|
|
||||||
return (DWORD)Handle + off;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL PEInfo::IsCode(LPVOID ptr)
|
|
||||||
{
|
|
||||||
return DWORD(ptr) >= Offset(OPT->BaseOfCode)
|
|
||||||
&& DWORD(ptr) < Offset(OPT->BaseOfCode) + OPT->SizeOfCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL PEInfo::IsData(LPVOID ptr)
|
|
||||||
{
|
|
||||||
return DWORD(ptr) >= Offset(OPT->BaseOfData)
|
|
||||||
&& DWORD(ptr) < Offset(OPT->BaseOfData) + OPT->SizeOfInitializedData + OPT->SizeOfUninitializedData;
|
|
||||||
}
|
|
@ -14,8 +14,9 @@
|
|||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<ProjectGuid>{068a8647-0a66-4e39-983b-43aceac5c937}</ProjectGuid>
|
<ProjectGuid>{068a8647-0a66-4e39-983b-43aceac5c937}</ProjectGuid>
|
||||||
<RootNamespace>FrontendKitLib</RootNamespace>
|
<RootNamespace>WormKitTools</RootNamespace>
|
||||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
<ProjectName>WormKitTools</ProjectName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
@ -92,24 +93,24 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\fkConfig.cpp" />
|
<ClCompile Include="src\wkConfig.cpp" />
|
||||||
<ClCompile Include="src\fkPatch.cpp" />
|
<ClCompile Include="src\wkPatch.cpp" />
|
||||||
<ClCompile Include="src\fkUtils.cpp" />
|
<ClCompile Include="src\wkUtils.cpp" />
|
||||||
<ClCompile Include="src\pch.cpp">
|
<ClCompile Include="src\pch.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\PEInfo.cpp" />
|
<ClCompile Include="src\wkExe.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="include\fkConfig.h" />
|
<ClInclude Include="include\wkConfig.h" />
|
||||||
<ClInclude Include="include\fkPatch.h" />
|
<ClInclude Include="include\wkPatch.h" />
|
||||||
<ClInclude Include="include\fkUtils.h" />
|
<ClInclude Include="include\wkUtils.h" />
|
||||||
<ClInclude Include="include\PEInfo.h" />
|
<ClInclude Include="include\wkExe.h" />
|
||||||
<ClInclude Include="src\pch.h" />
|
<ClInclude Include="src\pch.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="include\fkPatch.inl" />
|
<None Include="include\wkPatch.inl" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
@ -15,41 +15,41 @@
|
|||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="src\PEInfo.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\fkUtils.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\fkPatch.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\fkConfig.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\pch.cpp">
|
<ClCompile Include="src\pch.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\wkConfig.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\wkUtils.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\wkPatch.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\wkExe.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="include\fkConfig.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\fkPatch.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\fkUtils.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="src\pch.h">
|
<ClInclude Include="src\pch.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\PEInfo.h">
|
<ClInclude Include="include\wkConfig.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\wkUtils.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\wkPatch.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="include\wkExe.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="include\fkPatch.inl">
|
<None Include="include\wkPatch.inl">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
class Config
|
class Config
|
||||||
{
|
{
|
21
src/tool/WormKitTools/include/wkExe.h
Normal file
21
src/tool/WormKitTools/include/wkExe.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <Windows.h>
|
||||||
|
|
||||||
|
namespace wk
|
||||||
|
{
|
||||||
|
struct Exe
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HANDLE Handle;
|
||||||
|
IMAGE_DOS_HEADER* DosHeader;
|
||||||
|
IMAGE_NT_HEADERS* NtHeader;
|
||||||
|
IMAGE_FILE_HEADER* FileHeader;
|
||||||
|
IMAGE_OPTIONAL_HEADER* OptionalHeader;
|
||||||
|
|
||||||
|
Exe(HMODULE hModule = NULL);
|
||||||
|
|
||||||
|
ULONG_PTR Offset(ULONG_PTR off);
|
||||||
|
BOOL IsCode(LPVOID ptr);
|
||||||
|
BOOL IsData(LPVOID ptr);
|
||||||
|
};
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
enum InsertJump
|
enum InsertJump
|
||||||
{
|
{
|
||||||
@ -23,6 +23,7 @@ namespace fk
|
|||||||
void close() const;
|
void close() const;
|
||||||
template <class T> void write(const T& value);
|
template <class T> void write(const T& value);
|
||||||
|
|
||||||
|
static void byte(ULONG_PTR address, BYTE newValue);
|
||||||
static void nops(ULONG_PTR address, SIZE_T size);
|
static void nops(ULONG_PTR address, SIZE_T size);
|
||||||
static void jump(ULONG_PTR address, SIZE_T size, PVOID callee, DWORD jumpType);
|
static void jump(ULONG_PTR address, SIZE_T size, PVOID callee, DWORD jumpType);
|
||||||
|
|
||||||
@ -33,4 +34,4 @@ namespace fk
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "fkPatch.inl"
|
#include "wkPatch.inl"
|
@ -1,4 +1,4 @@
|
|||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
template <class T>
|
template <class T>
|
||||||
void Patch::write(const T& value)
|
void Patch::write(const T& value)
|
36
src/tool/WormKitTools/include/wkUtils.h
Normal file
36
src/tool/WormKitTools/include/wkUtils.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <Windows.h>
|
||||||
|
|
||||||
|
namespace wk
|
||||||
|
{
|
||||||
|
// 0x 00 0000 00
|
||||||
|
// [Game][Version][Release]
|
||||||
|
enum GameID
|
||||||
|
{
|
||||||
|
GAMEID_NONE,
|
||||||
|
|
||||||
|
GAMEID_W2 = 0x20000000,
|
||||||
|
GAMEID_W2_1_05 = GAMEID_W2 | 0x010500,
|
||||||
|
GAMEID_W2_1_05_BR = GAMEID_W2_1_05 | 0x10, // Worms2 1.05 Br
|
||||||
|
GAMEID_W2_1_05_EN = GAMEID_W2_1_05 | 0x20, // Worms2 1.05 Du, En, Fr, It, Po, Sp, Sw
|
||||||
|
GAMEID_W2_1_05_GE = GAMEID_W2_1_05 | 0x30, // Worms2 1.05
|
||||||
|
GAMEID_W2_1_05_NA = GAMEID_W2_1_05 | 0x40, // Worms2 1.05
|
||||||
|
GAMEID_W2_1_05_SA = GAMEID_W2_1_05 | 0x50, // Worms2 1.05
|
||||||
|
GAMEID_W2_1_07 = GAMEID_W2 | 0x010700,
|
||||||
|
GAMEID_W2_1_07_TRY = GAMEID_W2_1_07 | 0x60, // Worms2 1.07 Trymedia
|
||||||
|
|
||||||
|
GAMEID_WA = 0x30000000,
|
||||||
|
GAMEID_WA_3_8 = GAMEID_WA | 0x030800,
|
||||||
|
GAMEID_WA_3_8_CD = GAMEID_WA_3_8 | 0x10, // Worms Armageddon 3.8 CD
|
||||||
|
|
||||||
|
GAMEID_WWP = 0x40000000,
|
||||||
|
|
||||||
|
GAMEID_OW = 0x50000000,
|
||||||
|
|
||||||
|
GAMEID_WWPA = 0x60000000,
|
||||||
|
};
|
||||||
|
|
||||||
|
int getGameID(DWORD timeDateStamp);
|
||||||
|
std::string getErrorMessage(int error);
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
#include "fkConfig.h"
|
#include "wkConfig.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
Config::Config(LPCSTR fileName)
|
Config::Config(LPCSTR fileName)
|
||||||
{
|
{
|
30
src/tool/WormKitTools/src/wkExe.cpp
Normal file
30
src/tool/WormKitTools/src/wkExe.cpp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "wkExe.h"
|
||||||
|
|
||||||
|
namespace wk
|
||||||
|
{
|
||||||
|
Exe::Exe(HMODULE hModule)
|
||||||
|
{
|
||||||
|
Handle = hModule == 0 ? GetModuleHandleA(NULL) : hModule;
|
||||||
|
DosHeader = (IMAGE_DOS_HEADER*)Handle;
|
||||||
|
NtHeader = (IMAGE_NT_HEADERS*)((DWORD)DosHeader + DosHeader->e_lfanew);
|
||||||
|
FileHeader = (IMAGE_FILE_HEADER*)&NtHeader->FileHeader;
|
||||||
|
OptionalHeader = (IMAGE_OPTIONAL_HEADER*)&NtHeader->OptionalHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG_PTR Exe::Offset(ULONG_PTR off)
|
||||||
|
{
|
||||||
|
return (DWORD)Handle + off;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL Exe::IsCode(LPVOID ptr)
|
||||||
|
{
|
||||||
|
return DWORD(ptr) >= Offset(OptionalHeader->BaseOfCode)
|
||||||
|
&& DWORD(ptr) < Offset(OptionalHeader->BaseOfCode) + OptionalHeader->SizeOfCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL Exe::IsData(LPVOID ptr)
|
||||||
|
{
|
||||||
|
return DWORD(ptr) >= Offset(OptionalHeader->BaseOfData)
|
||||||
|
&& DWORD(ptr) < Offset(OptionalHeader->BaseOfData) + OptionalHeader->SizeOfInitializedData + OptionalHeader->SizeOfUninitializedData;
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
#include "fkPatch.h"
|
#include "wkPatch.h"
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
Patch::Patch(ULONG_PTR address, SIZE_T size)
|
Patch::Patch(ULONG_PTR address, SIZE_T size)
|
||||||
: _address(reinterpret_cast<LPBYTE>(address))
|
: _address(reinterpret_cast<LPBYTE>(address))
|
||||||
@ -26,16 +26,22 @@ namespace fk
|
|||||||
throw std::exception("VirtualProtect failed, call GetLastError for more info.");
|
throw std::exception("VirtualProtect failed, call GetLastError for more info.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Patch::byte(ULONG_PTR address, BYTE newValue)
|
||||||
|
{
|
||||||
|
wk::Patch patch(address, 1);
|
||||||
|
patch.write(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
void Patch::nops(ULONG_PTR address, SIZE_T size)
|
void Patch::nops(ULONG_PTR address, SIZE_T size)
|
||||||
{
|
{
|
||||||
fk::Patch patch(address, size);
|
wk::Patch patch(address, size);
|
||||||
while (size--)
|
while (size--)
|
||||||
patch.write<BYTE>(0x90);
|
patch.write<BYTE>(0x90);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Patch::jump(ULONG_PTR address, SIZE_T size, PVOID callee, DWORD jumpType)
|
void Patch::jump(ULONG_PTR address, SIZE_T size, PVOID callee, DWORD jumpType)
|
||||||
{
|
{
|
||||||
fk::Patch patch(address, size);
|
wk::Patch patch(address, size);
|
||||||
|
|
||||||
if (size >= 5 && address)
|
if (size >= 5 && address)
|
||||||
{
|
{
|
@ -1,21 +1,22 @@
|
|||||||
#include "fkUtils.h"
|
#include "wkUtils.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "fkPatch.h"
|
#include "wkPatch.h"
|
||||||
|
|
||||||
namespace fk
|
namespace wk
|
||||||
{
|
{
|
||||||
int getGameVersion(DWORD timeDateStamp)
|
int getGameID(DWORD timeDateStamp)
|
||||||
{
|
{
|
||||||
switch (timeDateStamp)
|
switch (timeDateStamp)
|
||||||
{
|
{
|
||||||
case 0x3528DAFA: return GAME_VERSION_BR;
|
case 0x3528DAFA: return GAMEID_W2_1_05_BR;
|
||||||
case 0x3528DCB1: return GAME_VERSION_EN;
|
case 0x3528DCB1: return GAMEID_W2_1_05_EN;
|
||||||
case 0x3528DB52: return GAME_VERSION_GE;
|
case 0x3528DB52: return GAMEID_W2_1_05_GE;
|
||||||
case 0x3528DA98: return GAME_VERSION_NA;
|
case 0x3528DA98: return GAMEID_W2_1_05_NA;
|
||||||
case 0x3528DBDA: return GAME_VERSION_SA;
|
case 0x3528DBDA: return GAMEID_W2_1_05_SA;
|
||||||
case 0x3587BE19: return GAME_VERSION_TRY;
|
case 0x3587BE19: return GAMEID_W2_1_07_TRY;
|
||||||
|
case 0x5EF04515: return GAMEID_WA_3_8_CD;
|
||||||
|
default: return GAMEID_NONE;
|
||||||
}
|
}
|
||||||
return GAME_VERSION_NONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string getErrorMessage(int error)
|
std::string getErrorMessage(int error)
|
@ -60,7 +60,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;FKNETCODE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;FKNETCODE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\FrontendKitLib\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\WormKitTools\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;FKNETCODE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;FKNETCODE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir)..\FrontendKitLib\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir)..\WormKitTools\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<ResourceCompile Include="fkNetcode.rc" />
|
<ResourceCompile Include="fkNetcode.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\FrontendKitLib\FrontendKitLib.vcxproj">
|
<ProjectReference Include="..\WormKitTools\FrontendKitLib.vcxproj">
|
||||||
<Project>{068a8647-0a66-4e39-983b-43aceac5c937}</Project>
|
<Project>{068a8647-0a66-4e39-983b-43aceac5c937}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <WinInet.h>
|
#include <WinInet.h>
|
||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#include "fkConfig.h"
|
#include "wkConfig.h"
|
||||||
#include "fkPatch.h"
|
#include "wkExe.h"
|
||||||
#include "fkUtils.h"
|
#include "wkPatch.h"
|
||||||
#include "PEInfo.h"
|
#include "wkUtils.h"
|
||||||
|
|
||||||
// ---- Configuration ----
|
// ---- Configuration ----
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ BOOL cfgShowErrors;
|
|||||||
|
|
||||||
void configure()
|
void configure()
|
||||||
{
|
{
|
||||||
fk::Config config("fkNetcode.ini");
|
wk::Config config("fkNetcode.ini");
|
||||||
|
|
||||||
// Load INI settings.
|
// Load INI settings.
|
||||||
config.get("AddressResolval", "FallbackIP", cfgFallbackIP, 16);
|
config.get("AddressResolval", "FallbackIP", cfgFallbackIP, 16);
|
||||||
@ -87,7 +87,7 @@ bool resolveIPExternal(LPSTR buffer)
|
|||||||
if (error && cfgShowErrors)
|
if (error && cfgShowErrors)
|
||||||
{
|
{
|
||||||
CHAR msg[512];
|
CHAR msg[512];
|
||||||
sprintf_s(msg, "Could not resolve your IP through the web service. %s", fk::getErrorMessage(error).c_str());
|
sprintf_s(msg, "Could not resolve your IP through the web service. %s", wk::getErrorMessage(error).c_str());
|
||||||
MessageBox(NULL, msg, "fkNetcode", MB_ICONWARNING);
|
MessageBox(NULL, msg, "fkNetcode", MB_ICONWARNING);
|
||||||
}
|
}
|
||||||
return !error;
|
return !error;
|
||||||
@ -134,45 +134,62 @@ bool __stdcall patchResolveIP(LPSTR buffer, int bufferLength)
|
|||||||
|
|
||||||
// ---- Patch ----
|
// ---- Patch ----
|
||||||
|
|
||||||
void patch(PEInfo& pe, int gameVersion)
|
void patch(wk::Exe& exe, int gameVersion)
|
||||||
{
|
{
|
||||||
fk::Patch::jump(pe.Offset(0x00001799), 5, &patchResolveIP, fk::IJ_JUMP); // replace IP resolve with web service
|
wk::Patch::jump(exe.Offset(0x00001799), 5, &patchResolveIP, wk::IJ_JUMP); // replace IP resolve with web service
|
||||||
|
|
||||||
if (gameVersion == fk::GAME_VERSION_TRY)
|
if (gameVersion == wk::GAMEID_W2_1_07_TRY)
|
||||||
{
|
{
|
||||||
fk::Patch::nops(pe.Offset(0x00053B96), 5); // prevent overriding IP with user name
|
wk::Patch::nops(exe.Offset(0x00053B96), 5); // prevent overriding IP with user name
|
||||||
fk::Patch::nops(pe.Offset(0x00054693), 5); // prevent overriding IP with NAT IP
|
wk::Patch::nops(exe.Offset(0x00054693), 5); // prevent overriding IP with NAT IP
|
||||||
fk::Patch::nops(pe.Offset(0x00054635), 11); // useless sleep when connecting to server
|
wk::Patch::nops(exe.Offset(0x00054635), 11); // useless sleep when connecting to server
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fk::Patch::nops(pe.Offset(0x00053E96), 5); // prevent overriding IP with user name
|
wk::Patch::nops(exe.Offset(0x00053E96), 5); // prevent overriding IP with user name
|
||||||
fk::Patch::nops(pe.Offset(0x00054935), 11); // useless sleep when connecting to server
|
wk::Patch::nops(exe.Offset(0x00054935), 11); // useless sleep when connecting to server
|
||||||
fk::Patch::nops(pe.Offset(0x00054993), 5); // prevent overriding IP with NAT IP
|
wk::Patch::nops(exe.Offset(0x00054993), 5); // prevent overriding IP with NAT IP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---- Main ----
|
// ---- Main ----
|
||||||
|
|
||||||
|
int getVersion(DWORD timeDateStamp)
|
||||||
|
{
|
||||||
|
int id = wk::getGameID(timeDateStamp);
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case wk::GAMEID_W2_1_05_BR:
|
||||||
|
case wk::GAMEID_W2_1_05_EN:
|
||||||
|
case wk::GAMEID_W2_1_05_GE:
|
||||||
|
case wk::GAMEID_W2_1_05_NA:
|
||||||
|
case wk::GAMEID_W2_1_05_SA:
|
||||||
|
case wk::GAMEID_W2_1_07_TRY:
|
||||||
|
return id;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOL WINAPI DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
BOOL WINAPI DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
{
|
{
|
||||||
switch (fdwReason)
|
switch (fdwReason)
|
||||||
{
|
{
|
||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
{
|
{
|
||||||
PEInfo pe;
|
wk::Exe exe;
|
||||||
int version = fk::getGameVersion(pe.FH->TimeDateStamp);
|
int version = getVersion(exe.FileHeader->TimeDateStamp);
|
||||||
if (version == fk::GAME_VERSION_NONE)
|
if (version)
|
||||||
|
{
|
||||||
|
configure();
|
||||||
|
patch(exe, version);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
MessageBox(NULL, "fkNetcode is incompatible with your game version. Please run the 1.05 patch or 1.07 "
|
MessageBox(NULL, "fkNetcode is incompatible with your game version. Please run the 1.05 patch or 1.07 "
|
||||||
"release of Worms 2. Otherwise, you can delete the module to remove this warning.", "fkNetcode",
|
"release of Worms 2. Otherwise, you can delete the module to remove this warning.", "fkNetcode",
|
||||||
MB_ICONWARNING);
|
MB_ICONWARNING);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
configure();
|
|
||||||
patch(pe, version);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
100
src/tool/wkUnlimiter/main.cpp
Normal file
100
src/tool/wkUnlimiter/main.cpp
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <Windows.h>
|
||||||
|
#include "wkConfig.h"
|
||||||
|
#include "wkExe.h"
|
||||||
|
#include "wkPatch.h"
|
||||||
|
#include "wkUtils.h"
|
||||||
|
|
||||||
|
// ---- Configuration ----
|
||||||
|
|
||||||
|
BOOL cfgEnableAllControls;
|
||||||
|
BOOL cfgUnlockCamera;
|
||||||
|
BOOL cfgUnlockCursor;
|
||||||
|
|
||||||
|
void configure()
|
||||||
|
{
|
||||||
|
wk::Config config("wkUnlimiter.ini");
|
||||||
|
|
||||||
|
// Load INI settings.
|
||||||
|
config.get("Frontend", "EnableAllControls", cfgEnableAllControls, TRUE);
|
||||||
|
config.get("Game", "UnlockCamera", cfgUnlockCamera, TRUE);
|
||||||
|
config.get("Game", "UnlockCursor", cfgUnlockCursor, TRUE);
|
||||||
|
|
||||||
|
// Ensure INI file has been created with default setting.
|
||||||
|
config.set("Frontend", "EnableAllControls", cfgEnableAllControls);
|
||||||
|
config.set("Game", "UnlockCamera", cfgUnlockCamera);
|
||||||
|
config.set("Game", "UnlockCursor", cfgUnlockCursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---- Patch ----
|
||||||
|
|
||||||
|
void patch(wk::Exe& exe, int gameVersion)
|
||||||
|
{
|
||||||
|
if (cfgEnableAllControls)
|
||||||
|
{
|
||||||
|
wk::Patch patch(exe.Offset(0x001C5D26), 4);
|
||||||
|
patch.write(0x9090016A); // CWnd::EnableWindow(bEnable) -> CWnd::EnableWindow(TRUE)
|
||||||
|
}
|
||||||
|
if (cfgUnlockCamera)
|
||||||
|
{
|
||||||
|
wk::Patch::nops(exe.Offset(0x00142A89), 2); // X- axis
|
||||||
|
wk::Patch::nops(exe.Offset(0x00142A91), 2); // X+ axis
|
||||||
|
wk::Patch::nops(exe.Offset(0x00142AA7), 3); // Y- axis
|
||||||
|
wk::Patch::nops(exe.Offset(0x00142A9C), 3); // Y+ axis
|
||||||
|
}
|
||||||
|
if (cfgUnlockCursor)
|
||||||
|
{
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159EAD), 6); // X- axis 1
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159A72), 6); // X- axis 2
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159ECA), 6); // X+ axis 1
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159A8F), 6); // X+ axis 2
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159B00), 10); // Y- axis 1 cave
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159F02), 10); // Y- axis 2 cave
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159B19), 6); // Y- axis 1 island
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159F1B), 6); // Y- axis 2 island
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159AE5), 6); // Y+ axis 1
|
||||||
|
wk::Patch::nops(exe.Offset(0x00159EE7), 6); // Y+ axis 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---- Main ----
|
||||||
|
|
||||||
|
int getVersion(DWORD timeDateStamp)
|
||||||
|
{
|
||||||
|
int id = wk::getGameID(timeDateStamp);
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case wk::GAMEID_WA_3_8_CD:
|
||||||
|
return id;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL WINAPI DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
|
{
|
||||||
|
switch (fdwReason)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
{
|
||||||
|
wk::Exe exe;
|
||||||
|
int version = getVersion(exe.FileHeader->TimeDateStamp);
|
||||||
|
if (version)
|
||||||
|
{
|
||||||
|
configure();
|
||||||
|
patch(exe, version);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox(NULL, "wkUnlimiter is incompatible with your game version. Please run the 3.8 CD release of "
|
||||||
|
"Worms Armageddon. Otherwise, you can delete the module to remove this warning.", "wkUnlimiter",
|
||||||
|
MB_ICONWARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
39
src/tool/wkUnlimiter/wkConfig.cpp
Normal file
39
src/tool/wkUnlimiter/wkConfig.cpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include "wkConfig.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
namespace wk
|
||||||
|
{
|
||||||
|
Config::Config(LPCSTR fileName)
|
||||||
|
{
|
||||||
|
GetModuleFileName(NULL, _filePath, MAX_PATH);
|
||||||
|
char* sepIdx = strrchr(_filePath, '\\') + 1;
|
||||||
|
strcpy_s(sepIdx, MAX_PATH - (int)(sepIdx - _filePath), fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::get(LPCSTR category, LPCSTR key, BOOL& result, UINT fallback) const
|
||||||
|
{
|
||||||
|
result = GetPrivateProfileInt(category, key, fallback, _filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::get(LPCSTR category, LPCSTR key, UINT& result, UINT fallback) const
|
||||||
|
{
|
||||||
|
result = GetPrivateProfileInt(category, key, fallback, _filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::get(LPCSTR category, LPCSTR key, LPSTR result, INT resultLength, LPCSTR fallback) const
|
||||||
|
{
|
||||||
|
GetPrivateProfileString(category, key, fallback, result, resultLength, _filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::set(LPCSTR category, LPCSTR key, UINT value) const
|
||||||
|
{
|
||||||
|
CHAR buffer[32];
|
||||||
|
sprintf_s(buffer, "%d", value);
|
||||||
|
WritePrivateProfileString(category, key, buffer, _filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::set(LPCSTR category, LPCSTR key, LPCSTR value) const
|
||||||
|
{
|
||||||
|
WritePrivateProfileString(category, key, value, _filePath);
|
||||||
|
}
|
||||||
|
}
|
20
src/tool/wkUnlimiter/wkConfig.h
Normal file
20
src/tool/wkUnlimiter/wkConfig.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <Windows.h>
|
||||||
|
|
||||||
|
namespace wk
|
||||||
|
{
|
||||||
|
class Config
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Config(LPCSTR fileName);
|
||||||
|
|
||||||
|
void get(LPCSTR category, LPCSTR key, BOOL& result, UINT fallback) const;
|
||||||
|
void get(LPCSTR category, LPCSTR key, UINT& result, UINT fallback) const;
|
||||||
|
void get(LPCSTR category, LPCSTR key, LPSTR result, INT resultLength, LPCSTR fallback = NULL) const;
|
||||||
|
void set(LPCSTR category, LPCSTR key, UINT value) const;
|
||||||
|
void set(LPCSTR category, LPCSTR key, LPCSTR value) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
CHAR _filePath[MAX_PATH];
|
||||||
|
};
|
||||||
|
}
|
103
src/tool/wkUnlimiter/wkUnlimiter.vcxproj
Normal file
103
src/tool/wkUnlimiter/wkUnlimiter.vcxproj
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" 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>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{cded4b7c-91df-45d3-9704-db8750bdaf5b}</ProjectGuid>
|
||||||
|
<RootNamespace>wkUnlimiter</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v142</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>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
<OutDir>bin\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>obj\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<OutDir>bin\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>obj\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;WKUNLIMITER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\WormKitTools\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;WKUNLIMITER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\WormKitTools\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="wkConfig.cpp" />
|
||||||
|
<ClCompile Include="main.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="wkConfig.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\WormKitTools\FrontendKitLib.vcxproj">
|
||||||
|
<Project>{068a8647-0a66-4e39-983b-43aceac5c937}</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
30
src/tool/wkUnlimiter/wkUnlimiter.vcxproj.filters
Normal file
30
src/tool/wkUnlimiter/wkUnlimiter.vcxproj.filters
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?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;c++;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;h++;hm;inl;inc;ipp;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="main.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="wkConfig.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="wkConfig.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
Loading…
x
Reference in New Issue
Block a user