Fixed project

This commit is contained in:
Bagietka 2024-09-22 12:17:19 +02:00
parent 4219a62fbe
commit f1e0047277
4 changed files with 41 additions and 105 deletions

View File

@ -21,14 +21,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kernelx", "dlls\kernelx\ker
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfplat", "dlls\mfplat\mfplat.vcxproj", "{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfplat", "dlls\mfplat\mfplat.vcxproj", "{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winrt_x", "dlls\winrt_x\winrt_x.vcxproj", "{23FA421F-DC63-40BB-8188-2F4B26D7023B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xg_x", "dlls\xg_x\xg_x.vcxproj", "{61147792-3E17-4013-B289-8F7D99BA510F}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xg_x", "dlls\xg_x\xg_x.vcxproj", "{61147792-3E17-4013-B289-8F7D99BA510F}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XboxIntegratedMultiplayer", "dlls\XboxIntegratedMultiplayer\XboxIntegratedMultiplayer.vcxproj", "{4EFBB336-7E24-4AA2-B02F-6C014F5BB7E7}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XboxIntegratedMultiplayer", "dlls\XboxIntegratedMultiplayer\XboxIntegratedMultiplayer.vcxproj", "{4EFBB336-7E24-4AA2-B02F-6C014F5BB7E7}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AcpHal", "dlls\AcpHal\AcpHal.vcxproj", "{A89A1631-2013-4642-B8A1-7AFE05D5A46B}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AcpHal", "dlls\AcpHal\AcpHal.vcxproj", "{A89A1631-2013-4642-B8A1-7AFE05D5A46B}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winrt_x", "dlls\winrt_x\winrt_x.vcxproj", "{93628D69-C7A5-43E0-A6E7-AE920C666EB4}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM Debug|ARM = Debug|ARM
@ -273,38 +273,6 @@ Global
{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x64.Build.0 = Release|x64 {A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x64.Build.0 = Release|x64
{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x86.ActiveCfg = Release|x64 {A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x86.ActiveCfg = Release|x64
{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x86.Build.0 = Release|x64 {A67D1CEC-9F56-4D53-97C2-88BADEDDB22D}.ReleaseMD|x86.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|ARM.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|ARM.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|ARM64.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|ARM64.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|x64.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|x64.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|x86.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Debug|x86.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|ARM.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|ARM.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|ARM64.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|ARM64.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|x64.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|x64.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|x86.ActiveCfg = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.DebugMDd|x86.Build.0 = Debug|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|ARM.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|ARM.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|ARM64.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|ARM64.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|x64.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|x64.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|x86.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.Release|x86.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|ARM.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|ARM.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|ARM64.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|ARM64.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|x64.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|x64.Build.0 = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|x86.ActiveCfg = Release|x64
{23FA421F-DC63-40BB-8188-2F4B26D7023B}.ReleaseMD|x86.Build.0 = Release|x64
{61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM.ActiveCfg = Debug|x64 {61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM.ActiveCfg = Debug|x64
{61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM.Build.0 = Debug|x64 {61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM.Build.0 = Debug|x64
{61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM64.ActiveCfg = Debug|x64 {61147792-3E17-4013-B289-8F7D99BA510F}.Debug|ARM64.ActiveCfg = Debug|x64
@ -401,6 +369,38 @@ Global
{A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x64.Build.0 = Release|x64 {A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x64.Build.0 = Release|x64
{A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x86.ActiveCfg = Release|Win32 {A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x86.ActiveCfg = Release|Win32
{A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x86.Build.0 = Release|Win32 {A89A1631-2013-4642-B8A1-7AFE05D5A46B}.ReleaseMD|x86.Build.0 = Release|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|ARM.ActiveCfg = Debug|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|ARM.Build.0 = Debug|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|ARM64.Build.0 = Debug|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|x64.ActiveCfg = Debug|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|x64.Build.0 = Debug|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|x86.ActiveCfg = Debug|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Debug|x86.Build.0 = Debug|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|ARM.ActiveCfg = Debug|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|ARM.Build.0 = Debug|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|ARM64.ActiveCfg = Debug|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|ARM64.Build.0 = Debug|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|x64.ActiveCfg = Debug|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|x64.Build.0 = Debug|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|x86.ActiveCfg = Debug|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.DebugMDd|x86.Build.0 = Debug|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|ARM.ActiveCfg = Release|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|ARM.Build.0 = Release|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|ARM64.ActiveCfg = Release|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|ARM64.Build.0 = Release|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|x64.ActiveCfg = Release|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|x64.Build.0 = Release|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|x86.ActiveCfg = Release|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.Release|x86.Build.0 = Release|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|ARM.ActiveCfg = Release|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|ARM.Build.0 = Release|ARM
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|ARM64.ActiveCfg = Release|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|ARM64.Build.0 = Release|ARM64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|x64.ActiveCfg = Release|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|x64.Build.0 = Release|x64
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|x86.ActiveCfg = Release|Win32
{93628D69-C7A5-43E0-A6E7-AE920C666EB4}.ReleaseMD|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -413,10 +413,10 @@ Global
{F9420BF5-A0E3-41C4-8EB0-DB81A54CF6D8} = {BF759166-26A8-4B46-8423-8091158F2EA5} {F9420BF5-A0E3-41C4-8EB0-DB81A54CF6D8} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{94127830-3A6C-4861-BBD2-20C0D289802D} = {BF759166-26A8-4B46-8423-8091158F2EA5} {94127830-3A6C-4861-BBD2-20C0D289802D} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{A67D1CEC-9F56-4D53-97C2-88BADEDDB22D} = {BF759166-26A8-4B46-8423-8091158F2EA5} {A67D1CEC-9F56-4D53-97C2-88BADEDDB22D} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{23FA421F-DC63-40BB-8188-2F4B26D7023B} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{61147792-3E17-4013-B289-8F7D99BA510F} = {BF759166-26A8-4B46-8423-8091158F2EA5} {61147792-3E17-4013-B289-8F7D99BA510F} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{4EFBB336-7E24-4AA2-B02F-6C014F5BB7E7} = {BF759166-26A8-4B46-8423-8091158F2EA5} {4EFBB336-7E24-4AA2-B02F-6C014F5BB7E7} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{A89A1631-2013-4642-B8A1-7AFE05D5A46B} = {BF759166-26A8-4B46-8423-8091158F2EA5} {A89A1631-2013-4642-B8A1-7AFE05D5A46B} = {BF759166-26A8-4B46-8423-8091158F2EA5}
{93628D69-C7A5-43E0-A6E7-AE920C666EB4} = {BF759166-26A8-4B46-8423-8091158F2EA5}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {30EA489C-CFA4-4816-BE12-8BCE129039C5} SolutionGuid = {30EA489C-CFA4-4816-BE12-8BCE129039C5}

View File

@ -11,14 +11,10 @@
// //
using namespace Microsoft::WRL; using namespace Microsoft::WRL;
typedef HRESULT(*DllGetActivationFactoryFunc) (HSTRING, IActivationFactory**);
DllGetActivationFactoryFunc pDllGetActivationFactory = nullptr;
HMODULE hModule; HMODULE hModule;
SYSTEM_BASIC_INFORMATION systemBasicInfo; SYSTEM_BASIC_INFORMATION systemBasicInfo;
HRESULT(WINAPI* pRoGetActivationFactory)(HSTRING classId, REFIID iid, void** factory) = RoGetActivationFactory;
HRESULT(WINAPI* TrueRoGetActivationFactory)(HSTRING classId, REFIID iid, void** factory) = RoGetActivationFactory;
typedef HRESULT(__fastcall* FuncDllGetActivationFactory)(void*, void**); typedef HRESULT(__fastcall* FuncDllGetActivationFactory)(void*, void**);
@ -43,44 +39,15 @@ void debug_printf(const char *format, ...) {
HRESULT WINAPI RoGetActivationFactory_Hook(HSTRING classId, REFIID iid, void** factory) HRESULT WINAPI RoGetActivationFactory_Hook(HSTRING classId, REFIID iid, void** factory)
{ {
auto hr = TrueRoGetActivationFactory(classId, iid, factory);
const std::wstring message = std::wstring(L"classId: ") +
WindowsGetStringRawBuffer(classId, nullptr);
=======
const wchar_t* classIdStr = WindowsGetStringRawBuffer(classId, nullptr); const wchar_t* classIdStr = WindowsGetStringRawBuffer(classId, nullptr);
int result = pRoGetActivationFactory(classId, iid, factory); int result = pRoGetActivationFactory(classId, iid, factory);
// Failed, redirect to our winrt component // Failed, redirect to our winrt component
if (result < 0) { if (result < 0) {
debug_printf("[DEBUG] Forwarding activationFactory of %ls to our dll!", classIdStr); debug_printf("[DEBUG] Forwarding activationFactory of %ls to our dll!", classIdStr);
/*// That means we redirect this to already existing dll which has been implemented by Microsoft
if (wcscmp(classIdStr, L"Windows.Xbox.Media.GameTransportControls") == 0) {
HMODULE gtcLib = LoadLibraryEx(L"gametransportcontrols.dll", NULL, 0);
debug_printf("[DEBUG] gtcLib: %i\n", gtcLib);
if (!gtcLib)
return result;
FuncDllGetActivationFactory gtcLibActivationFactory = (FuncDllGetActivationFactory)GetProcAddress(gtcLib, "DllGetActivationFactory");
debug_printf("[DEBUG] gtcLibActivationFactory: %i\n", gtcLibActivationFactory);
if (!gtcLibActivationFactory)
return result;
Microsoft::WRL::ComPtr<IActivationFactory> _factory;
result = gtcLibActivationFactory(classId, (void**)_factory.GetAddressOf());
HRESULT returnvalue = _factory.CopyTo(iid, factory);
if (returnvalue < 0)
return result;
return returnvalue;
}*/
// Checks if we initalized pointer to our DllGetActivationFactory // Checks if we initalized pointer to our DllGetActivationFactory
if (!pDllGetActivationFactory) { if (!pDllGetActivationFactory) {
HMODULE winrtLib = LoadLibraryA("Windows_Xbox_Achievement.dll"); HMODULE winrtLib = LoadLibraryA("winrt_x.dll");
debug_printf("[DEBUG] winrtLib: %i\n", winrtLib); debug_printf("[DEBUG] winrtLib: %i\n", winrtLib);
if (!winrtLib) if (!winrtLib)
return result; return result;
@ -99,34 +66,7 @@ HRESULT WINAPI RoGetActivationFactory_Hook(HSTRING classId, REFIID iid, void** f
return result; return result;
} }
>>>>>>> Stashed changes return result;
if (FAILED(hr))
{
auto library = LoadPackagedLibrary(L"winrt_x.dll", 0);
if (!library) library = LoadLibraryW(L"winrt_x.dll");
if (!library) return hr;
auto error = GetLastError();
pDllGetActivationFactory = reinterpret_cast<DllGetActivationFactoryFunc>
(GetProcAddress(library, "DllGetActivationFactory"));
if (!pDllGetActivationFactory)
return hr;
ComPtr<IActivationFactory> _factory;
hr = pDllGetActivationFactory(classId, _factory.GetAddressOf());
if (FAILED(hr)) return hr;
return _factory.CopyTo(iid, factory);
}
return hr;
} }
LPTOP_LEVEL_EXCEPTION_FILTER RtlSetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter) LPTOP_LEVEL_EXCEPTION_FILTER RtlSetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter)
@ -143,7 +83,7 @@ BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReser
DetourRestoreAfterWith(); DetourRestoreAfterWith();
DetourTransactionBegin(); DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread()); DetourUpdateThread(GetCurrentThread());
DetourAttach(&reinterpret_cast<PVOID&>(TrueRoGetActivationFactory), RoGetActivationFactory_Hook); DetourAttach(&reinterpret_cast<PVOID&>(pRoGetActivationFactory), RoGetActivationFactory_Hook);
DetourTransactionCommit(); DetourTransactionCommit();
if (NtQuerySystemInformation(SystemBasicInformation, &systemBasicInfo, 0x40u, 0i64) >= 0) if (NtQuerySystemInformation(SystemBasicInformation, &systemBasicInfo, 0x40u, 0i64) >= 0)
@ -171,7 +111,7 @@ BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReser
{ {
DetourTransactionBegin(); DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread()); DetourUpdateThread(GetCurrentThread());
DetourDetach(&reinterpret_cast<PVOID&>(TrueRoGetActivationFactory), RoGetActivationFactory_Hook); DetourDetach(&reinterpret_cast<PVOID&>(pRoGetActivationFactory), RoGetActivationFactory_Hook);
DetourTransactionCommit(); DetourTransactionCommit();
//CleanupResources(hinstDLL, fdwReason, lpReserved); Incomplete //CleanupResources(hinstDLL, fdwReason, lpReserved); Incomplete
} }

View File

@ -489,7 +489,7 @@ __int64 ConfigureLocaleSettings()
FreeLibrary(libraryHandle); FreeLibrary(libraryHandle);
// Free heap memory allocated for locale data // Free heap memory allocated for locale data
RtlFreeHeap(NtCurrentPeb()->ProcessHeap, 0, localeDataPointer); //RtlFreeHeap(NtCurrentPeb()->ProcessHeap, 0, localeDataPointer);
P = 0i64; P = 0i64;
// Return error code 87 (ERROR_INVALID_PARAMETER) // Return error code 87 (ERROR_INVALID_PARAMETER)

View File

@ -4,11 +4,7 @@
#include "framework.h" #include "framework.h"
#include "kernelx.h" #include "kernelx.h"
<<<<<<< Updated upstream
#include "../src/detours.h" #include "../src/detours.h"
=======
#include "../../thirdparty/Detours/src/detours.h"
>>>>>>> Stashed changes
#include <intrin.h> #include <intrin.h>
#include <winternl.h> #include <winternl.h>