Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.
Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
40 lines
1 KiB
C++
40 lines
1 KiB
C++
#include "Client/Application/Launcher.h"
|
|
|
|
#include <cstring>
|
|
#include <windows.h>
|
|
|
|
// OFFSET: 0x00E58820
|
|
// FUNCTION: fn_24363
|
|
bool RestartFromCommandLine(char* commandLine) {
|
|
char* marker = std::strstr(commandLine, "/launcherRESTART:");
|
|
if (!marker) {
|
|
return false;
|
|
}
|
|
|
|
STARTUPINFOA startup = {};
|
|
startup.cb = sizeof(startup);
|
|
startup.dwFlags = STARTF_USESHOWWINDOW;
|
|
startup.wShowWindow = SW_SHOWNORMAL;
|
|
PROCESS_INFORMATION process;
|
|
|
|
CreateProcessA(nullptr, marker + std::strlen("/launcherRESTART:"), nullptr, nullptr, FALSE, 0, nullptr, nullptr, &startup, &process);
|
|
CloseHandle(process.hProcess);
|
|
CloseHandle(process.hThread);
|
|
|
|
return true;
|
|
}
|
|
|
|
// OFFSET: 0x00E5D390
|
|
// FUNCTION: fn_24380
|
|
void ExitForProtectionCheck(const char* commandLine) {
|
|
if (std::strstr(commandLine, "/check_themida")) {
|
|
ExitProcess(0);
|
|
}
|
|
}
|
|
|
|
// OFFSET: 0x00E5D390
|
|
// FUNCTION: fn_24380
|
|
bool AcquireInstanceMutex(HANDLE* mutex) {
|
|
*mutex = CreateMutexA(nullptr, TRUE, "MutexInit");
|
|
return GetLastError() != ERROR_ALREADY_EXISTS;
|
|
}
|