Skip to content

Commit

Permalink
Force HTTPS. Finally.
Browse files Browse the repository at this point in the history
  • Loading branch information
RubberDuckShobe committed Jun 5, 2023
1 parent dd39d07 commit 192ccf7
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 2 deletions.
2 changes: 2 additions & 0 deletions Wavebreaker-Hook/Wavebreaker-Hook.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);wininet.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -104,6 +105,7 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>$(CoreLibraryDependencies);%(AdditionalDependencies);wininet.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand Down
44 changes: 42 additions & 2 deletions Wavebreaker-Hook/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@

SafetyHookInline g_getserverunicode_hook{};
SafetyHookInline g_getserver_hook{};
SafetyHookInline g_internetconnecta_hook{};
SafetyHookInline g_httpopenrequesta_hook{};


mINI::INIFile file("Wavebreaker-Hook.ini");
mINI::INIStructure ini;
Expand All @@ -29,18 +32,55 @@ char* __fastcall GetTargetServerHook(void* thisptr, uintptr_t edx)
return rewriteTargetServer(server);
}

HINTERNET WINAPI InternetConnectHook(HINTERNET hInternet,
LPCSTR lpszServerName,
INTERNET_PORT nServerPort,
LPCSTR lpszUserName,
LPCSTR lpszPassword,
DWORD dwService,
DWORD dwFlags,
DWORD_PTR dwContext)
{
if (nServerPort == 80)
nServerPort = 443;
return g_internetconnecta_hook.stdcall<HINTERNET>(hInternet, lpszServerName, nServerPort, lpszUserName, lpszPassword, dwService, dwFlags, dwContext);
}

HINTERNET WINAPI OpenRequestHook(HINTERNET hConnect,
LPCSTR lpszVerb,
LPCSTR lpszObjectName,
LPCSTR lpszVersion,
LPCSTR lpszReferrer,
LPCSTR* lplpszAcceptTypes,
DWORD dwFlags,
DWORD_PTR dwContext)
{
if (!dwFlags)
dwFlags = INTERNET_FLAG_SECURE;
return g_httpopenrequesta_hook.stdcall<HINTERNET>(hConnect,
lpszVerb,
lpszObjectName,
lpszVersion,
lpszReferrer,
lplpszAcceptTypes,
dwFlags,
dwContext);
}

uint32_t __stdcall init(void* args) {
while (!GetModuleHandleA("HTTP_Fetch_Unicode.dll") || !GetModuleHandleA("17C5B19F-4273-423C-A158-CA6F73046D43.dll")) Sleep(100);

file.read(ini);
if (ini["Config"].has("server")) newServer = ini.get("Config").get("server");
else MessageBoxA(nullptr, "Wavebreaker hook config error!", "Error", MB_OK | MB_ICONERROR);

FARPROC targetServerUnicodeHandle = GetProcAddress(GetModuleHandleA("HTTP_Fetch_Unicode.dll"), "?GetTargetServer@HTTP_Fetch_Unicode@@UAEPADXZ");
FARPROC targetServerHandle = GetProcAddress(GetModuleHandleA("17C5B19F-4273-423C-A158-CA6F73046D43.dll"), "?GetTargetServer@Aco_HTTP_Fetch@@UAEPADXZ");
g_getserverunicode_hook = safetyhook::create_inline((uintptr_t)targetServerUnicodeHandle, (uintptr_t)GetTargetServerUnicodeHook);
g_getserver_hook = safetyhook::create_inline((uintptr_t)targetServerHandle, (uintptr_t)GetTargetServerHook);
if (!g_getserver_hook || !g_getserverunicode_hook)
g_internetconnecta_hook = safetyhook::create_inline((uintptr_t)InternetConnectA, (uintptr_t)InternetConnectHook);
g_httpopenrequesta_hook = safetyhook::create_inline((uintptr_t)HttpOpenRequestA, (uintptr_t)OpenRequestHook);
if (!g_getserver_hook || !g_getserverunicode_hook || !g_internetconnecta_hook || !g_httpopenrequesta_hook)
{
MessageBoxA(nullptr, "Wavebreaker hook failed!", "Error", MB_OK | MB_ICONERROR);
return 1;
Expand Down
1 change: 1 addition & 0 deletions Wavebreaker-Hook/framework.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@

// Windows headers
#include <windows.h>
#include <WinInet.h>

0 comments on commit 192ccf7

Please sign in to comment.