From 3d68312d63cd62cf85f731cfb0ee260a4dd85e5c Mon Sep 17 00:00:00 2001 From: pizzaboxer <41478239+pizzaboxer@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:38:56 +0000 Subject: [PATCH] Fix trust check for embedded IE resources in popup windows --- PolygonClientUtilities/Config.h | 1 + PolygonClientUtilities/RobloxMFCHooks.cpp | 10 ++++++++++ PolygonClientUtilities/dllmain.cpp | 6 +++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/PolygonClientUtilities/Config.h b/PolygonClientUtilities/Config.h index c19b1c3..ed60efc 100644 --- a/PolygonClientUtilities/Config.h +++ b/PolygonClientUtilities/Config.h @@ -1,6 +1,7 @@ #pragma once #define MFC2010 +#define PLAYERBUILD #define ARBITERBUILD // when ARBITERBUILD is defined, the following changes occur: diff --git a/PolygonClientUtilities/RobloxMFCHooks.cpp b/PolygonClientUtilities/RobloxMFCHooks.cpp index f0c43bd..e2ae5a2 100644 --- a/PolygonClientUtilities/RobloxMFCHooks.cpp +++ b/PolygonClientUtilities/RobloxMFCHooks.cpp @@ -39,6 +39,16 @@ CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam = (CRobl BOOL __fastcall Http__trustCheck_hook(const char* url) { + if (strlen(url) == 7) + { + // so the client does this really fucking stupid thing where if it opens an ie window, + // it passes a char**, and not a char* + // no idea if thats a detours quirk or if thats how its just actually handled + // practically no url is ever going to be seven characters long so it doesn't really matter + + url = *(char**)url; + } + LUrlParser::ParseURL parsedUrl = LUrlParser::ParseURL::parseURL(url); if (!parsedUrl.isValid()) diff --git a/PolygonClientUtilities/dllmain.cpp b/PolygonClientUtilities/dllmain.cpp index b8cee05..108b79a 100644 --- a/PolygonClientUtilities/dllmain.cpp +++ b/PolygonClientUtilities/dllmain.cpp @@ -24,9 +24,9 @@ END_PATCH_LIST() // DLLs for release will be loaded with VMProtect, so this isn't necessary // Arbiter will still use Stud_PE for ease in swapping DLLs however -#ifdef ARBITERBUILD -void __declspec(dllexport) doNothing() {} -#endif +// #ifdef ARBITERBUILD +void __declspec(dllexport) import() {} +// #endif BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {