warn if steam registry doesn't exists

This commit is contained in:
m 2022-08-14 16:56:23 -05:00
parent 78c2477cdb
commit 53f053a2e9
6 changed files with 34 additions and 7 deletions

View File

@ -162,7 +162,6 @@ namespace auth
if (xuid != key.get_hash()) if (xuid != key.get_hash())
{ {
//MessageBoxA(nullptr, steam_id.data(), std::to_string(key.get_hash()).data(), 0);
network::send(*from, "error", network::send(*from, "error",
utils::string::va("XUID doesn't match the certificate: %llX != %llX", xuid, key.get_hash()), '\n'); utils::string::va("XUID doesn't match the certificate: %llX != %llX", xuid, key.get_hash()), '\n');
return; return;

View File

@ -101,7 +101,7 @@ namespace exception
utils::thread::suspend_other_threads(); utils::thread::suspend_other_threads();
show_mouse_cursor(); show_mouse_cursor();
MessageBoxA(nullptr, error_str.data(), "H1-Mod ERROR", MB_ICONERROR); MSG_BOX_ERROR(error_str.data());
TerminateProcess(GetCurrentProcess(), exception_data.code); TerminateProcess(GetCurrentProcess(), exception_data.code);
} }

View File

@ -90,9 +90,8 @@ namespace system_check
if (!is_valid()) if (!is_valid())
{ {
MessageBoxA(nullptr, "Your game files are outdated or unsupported.\n" MSG_BOX_INFO("Your game files are outdated or unsupported.\n"
"Please get the latest officially supported Call of Duty: Modern Warfare Remastered files, or you will get random crashes and issues.", "Please get the latest officially supported Call of Duty: Modern Warfare Remastered files, or you will get random crashes and issues.");
"Invalid game files!", MB_ICONINFORMATION);
} }
} }
}; };

View File

@ -152,7 +152,7 @@ void loader::load_exception_table(const utils::nt::library& target, const utils:
if (!RtlAddFunctionTable(function_list, entry_count, DWORD64(target.get_ptr()))) if (!RtlAddFunctionTable(function_list, entry_count, DWORD64(target.get_ptr())))
{ {
MessageBoxA(nullptr, "Setting exception handlers failed.", "Error", MB_OK | MB_ICONERROR); MSG_BOX_ERROR("Setting exception handlers failed.");
} }
{ {

View File

@ -81,6 +81,26 @@ void get_aslr_patched_binary(std::string* binary, std::string* data)
*binary = patched_binary; *binary = patched_binary;
} }
bool is_steam_registry_found()
{
static bool is_steam_installed = false;
static bool is_steam_installed_set = false;
if (!is_steam_installed_set)
{
HKEY key = nullptr;
if (RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Valve\\Steam", 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS)
{
is_steam_installed = true;
RegCloseKey(key);
}
is_steam_installed_set = true;
}
return is_steam_installed;
}
FARPROC load_binary(const launcher::mode mode, uint64_t* base_address) FARPROC load_binary(const launcher::mode mode, uint64_t* base_address)
{ {
loader loader; loader loader;
@ -91,6 +111,11 @@ FARPROC load_binary(const launcher::mode mode, uint64_t* base_address)
if (library == "steam_api64.dll" if (library == "steam_api64.dll"
&& function != "SteamAPI_GetSteamInstallPath") // Arxan requires one valid steam api import - maybe SteamAPI_Shutdown is better? && function != "SteamAPI_GetSteamInstallPath") // Arxan requires one valid steam api import - maybe SteamAPI_Shutdown is better?
{ {
if (!is_steam_registry_found())
{
MSG_BOX_WARN("Could not find Steam in the registry. If Steam is not installed, you must install it for H1-Mod to work.");
}
return self.get_proc<FARPROC>(function); return self.get_proc<FARPROC>(function);
} }
else if (function == "ExitProcess") else if (function == "ExitProcess")
@ -234,7 +259,7 @@ int main()
} }
catch (std::exception& e) catch (std::exception& e)
{ {
MessageBoxA(nullptr, e.what(), "ERROR", MB_ICONERROR); MSG_BOX_ERROR(e.what());
return 1; return 1;
} }
} }

View File

@ -59,6 +59,10 @@
#undef min #undef min
#endif #endif
#define MSG_BOX_INFO(message) MessageBoxA(nullptr, message, "H1-Mod: WARNING", MB_ICONINFORMATION);
#define MSG_BOX_WARN(message) MessageBoxA(nullptr, message, "H1-Mod: WARNING", MB_ICONWARNING);
#define MSG_BOX_ERROR(message) MessageBoxA(nullptr, message, "H1-Mod: ERROR", MB_ICONERROR);
#include <map> #include <map>
#include <atomic> #include <atomic>
#include <vector> #include <vector>