Replace Tadah.DLL references with Kiseki.Patcher

This commit is contained in:
rjindael 2023-07-13 18:31:17 -07:00
parent bdb3968fed
commit dceac141bf
No known key found for this signature in database
GPG Key ID: D069369C906CCF31
33 changed files with 1845 additions and 1894 deletions

View File

@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.0.32014.148 VisualStudioVersion = 17.0.32014.148
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tadah.DLL", "Tadah.DLL\Tadah.DLL.vcxproj", "{9D232642-FB2F-43DC-B0AC-C56E3B691233}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kiseki.Patcher", "Kiseki.Patcher\Kiseki.Patcher.vcxproj", "{9D232642-FB2F-43DC-B0AC-C56E3B691233}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -56,7 +56,7 @@ BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this)
#ifdef SERVER #ifdef SERVER
if (!hasAuthenticationUrl || !hasAuthenticationTicket || !hasJoinScriptUrl || !hasJobId) if (!hasAuthenticationUrl || !hasAuthenticationTicket || !hasJoinScriptUrl || !hasJobId)
{ {
ShellExecute(0, 0, L"https://tadah.rocks/games", 0, 0, SW_SHOW); ShellExecute(0, 0, L"https://kiseki.lol/games", 0, 0, SW_SHOW);
return FALSE; return FALSE;
} }
#endif #endif

View File

@ -4,10 +4,10 @@
// #define SERVER // #define SERVER
// #define PLAYER // #define PLAYER
#define BASE_URL "https://tadah.rocks" #define BASE_URL "https://kiseki.lol"
#define DISCORD_APP_ID 923705431543668736 #define DISCORD_APP_ID 923705431543668736
#define ALLOWED_WILDCARD_DOMAINS "tadah.rocks", "rbxcdn.com", "roblox.com" #define ALLOWED_WILDCARD_DOMAINS "kiseki.lol", "rbxcdn.com", "roblox.com"
#define ALLOWED_DOMAINS #define ALLOWED_DOMAINS
#define ALLOWED_SCHEMES "http", "https" #define ALLOWED_SCHEMES "http", "https"
#define ALLOWED_EMBEDDED_SCHEMES "javascript", "jscript", "res" #define ALLOWED_EMBEDDED_SCHEMES "javascript", "jscript", "res"

View File

@ -67,12 +67,12 @@ BEGIN
BEGIN BEGIN
BLOCK "040904b0" BLOCK "040904b0"
BEGIN BEGIN
VALUE "CompanyName", "Tadah" VALUE "CompanyName", "Kiseki"
VALUE "FileDescription", "Client Functionality Library" VALUE "FileDescription", "Client Functionality Library"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "Tadah.dll" VALUE "InternalName", "Kiseki.Patcher.dll"
VALUE "LegalCopyright", "Copyright (C) Tadah and Project Polygon 2022" VALUE "LegalCopyright", "Copyright (C) Kiseki 2022-2023"
VALUE "OriginalFilename", "Tadah.dll" VALUE "OriginalFilename", "Kiseki.Patcher.dll"
VALUE "ProductName", "Client Functionality Library" VALUE "ProductName", "Client Functionality Library"
VALUE "ProductVersion", "1.0.0.0" VALUE "ProductVersion", "1.0.0.0"
END END

View File

@ -14,7 +14,7 @@
<VCProjectVersion>16.0</VCProjectVersion> <VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<ProjectGuid>{9d232642-fb2f-43dc-b0ac-c56e3b691233}</ProjectGuid> <ProjectGuid>{9d232642-fb2f-43dc-b0ac-c56e3b691233}</ProjectGuid>
<RootNamespace>Tadah.DLL</RootNamespace> <RootNamespace>Kiseki.Patcher</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -46,14 +46,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild> <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
<TargetName>Tadah</TargetName>
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
<IntDir>obj\$(Configuration)\</IntDir> <IntDir>obj\$(Configuration)\</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild> <EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
<TargetName>Tadah</TargetName>
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
<IntDir>obj\$(Configuration)\</IntDir> <IntDir>obj\$(Configuration)\</IntDir>
</PropertyGroup> </PropertyGroup>
@ -72,7 +70,7 @@
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;TADAHDLL_EXPORTS;_WINDOWS;_USRDLL;$(TadahCIDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;KISEKIPATCHER_EXPORTS;_WINDOWS;_USRDLL;$(CIDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@ -98,7 +96,7 @@
</FunctionLevelLinking> </FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions> <IntrinsicFunctions>false</IntrinsicFunctions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;TADAHDLL_EXPORTS;_WINDOWS;_USRDLL;$(TadahCIDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;KISEKIPATCHER_EXPORTS;_WINDOWS;_USRDLL;$(CIDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@ -157,7 +155,7 @@
<ClCompile Include="Hooks\Crypt.cpp" /> <ClCompile Include="Hooks\Crypt.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="Tadah.DLL.rc" /> <ResourceCompile Include="Kiseki.DLL.rc" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@ -106,7 +106,7 @@
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="Tadah.DLL.rc"> <ResourceCompile Include="Kiseki.DLL.rc">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</ResourceCompile> </ResourceCompile>
</ItemGroup> </ItemGroup>

View File

@ -15,7 +15,7 @@ std::string Server::HttpLogPath;
void Server::Initialize(const std::wstring jobId) void Server::Initialize(const std::wstring jobId)
{ {
std::string _jobId = Helpers::ws2s(jobId); std::string _jobId = Helpers::ws2s(jobId);
std::string signature = "Tadah.DLL v1.0.0"; std::string signature = "Kiseki.Patcher v1.0.0";
#ifdef _DEBUG #ifdef _DEBUG
signature += " (compiled as Debug)"; signature += " (compiled as Debug)";

View File

@ -1,52 +1,5 @@
# Tadah.DLL # Kiseki.Patcher
DLL used for extending game client/server functionality DLL used for extending client/server functionality
Fork of [ProjectPolygon/PolygonDLL](https://github.com/ProjectPolygon/PolygonDLL), which is based off of [ndoesstuff/JoinScriptUrlImpl](https://github.com/ndoesstuff/JoinScriptUrlImpl) as per the MIT license
## CI/CD
Tadah.DLL is available on the Tadah CI. All builds are compiled as release, and a build occurs per push.
- [player-win-x86](https://ci.tadah.sipr/buildConfiguration/Tadah_DLL_PlayerWinX86)
- [studio-win-x86](https://ci.tadah.sipr/buildConfiguration/Tadah_DLL_StudioWinX86)
- [server-win-x86](https://ci.tadah.sipr/buildConfiguration/Tadah_DLL_ServerWinX86)
## Build
Tadah.DLL requires [vcpkg](https://github.com/microsoft/vcpkg) to manage package installation such with libcurl, detours, and rapidjson. Here's a quick way to install vcpkg;
```
> cd <path where vcpkg should be kept; such as C:\vcpkg>
> git clone https://github.com/microsoft/vcpkg
> .\vcpkg\bootstrap-vcpkg.bat
> .\vcpkg\vcpkg integrate install
> .\vcpkg\vcpkg integrate project
```
Tadah.DLL only builds under Win32 for x86 architecture.
## Usage
The DLL is imported with StudPE under the `import` function name for server builds. Otherwise, the DLL should be imported into the executable via VMProtect.
Several preprocessor flags are available that modify how the DLL operates. They are specific to the executable being compiled for. You may read the code for further information.
## Testing
Test trust check:
1. Insert a new brick with decal
2. Try setting decal ID to `http://tadah.rocks` - Should succeed
3. Try setting decal ID to `http://tadah.rocks@example.com` - Should fail
Test extended signature check:
- Run `loadfile("rbxasset://invalid-signature.txt")()` - Should throw an exception
- Run `loadfile("rbxasset://overflow-signature.txt")()` - Should throw an exception
- Run `loadfile("https://polygon.pizzaboxer.xyz/Game/Visit.ashx")()` - Should succeed (if compiled with the Project Polygon public key)
Test command line parameter reimplementation:
- `> RobloxApp.exe -a http://polygondev.pizzaboxer.xyz/Login/Negotiate.ashx -t 0 -j http://polygondev.pizzaboxer.xyz/Game/Visit.ashx`
Test asset redirection:
- Run `game:Load("https://www.roblox.com/Asset?id=1818&version=1")` - Should succeed
1. Insert a new brick with decal
2. Try setting decal ID to `https://www.roblox.com/Thumbs/Asset.ashx?id=1818&x=768&y=432` - Should succeed
3. Try setting decal ID to `https://www.roblox.com/Thumbs/Avatar.ashx?id=1&x=768&y=432` - Should succeed
## License ## License
Copyright (c) Tadah and Project Polygon 2022. All rights reserved. Not for public use. Copyright (c) Kiseki 2022-2023. All rights reserved. Not for public use.