diff options
author | p0358 <p0358@users.noreply.github.com> | 2021-12-31 22:25:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-31 22:25:40 +0100 |
commit | dcba96bcc4b02639e859b0dcdc863391cb54684f (patch) | |
tree | 99d129460365774ae011d83b3765e7d9388c44a7 /LauncherInjector/main.cpp | |
parent | 4f7c3d02943a38941b79a638c5607b2b7f668956 (diff) | |
parent | d658c0c8374f8491e062fabe031f79185169c414 (diff) | |
download | NorthstarLauncher-dcba96bcc4b02639e859b0dcdc863391cb54684f.tar.gz NorthstarLauncher-dcba96bcc4b02639e859b0dcdc863391cb54684f.zip |
Merge pull request #1 from geniiii/p0358-refactor-fixes
Fixes, removal of fallback linear allocator
Diffstat (limited to 'LauncherInjector/main.cpp')
-rw-r--r-- | LauncherInjector/main.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/LauncherInjector/main.cpp b/LauncherInjector/main.cpp index 1eca067a..761f443e 100644 --- a/LauncherInjector/main.cpp +++ b/LauncherInjector/main.cpp @@ -18,7 +18,7 @@ HMODULE hHookModule; HMODULE hTier0Module; wchar_t exePath[4096]; -wchar_t buffer[8196]; +wchar_t buffer[8192]; DWORD GetProcessByName(std::wstring processName) { @@ -173,24 +173,18 @@ bool LoadNorthstar() int main(int argc, char* argv[]) { // checked to avoid starting origin, Northstar.dll will check for -dedicated as well on its own - bool isDedicated = false; - for (int i = 0; i < argc; i++) - if (!strcmp(argv[i], "-dedicated")) - isDedicated = true; - bool noOriginStartup = false; for (int i = 0; i < argc; i++) - if (!strcmp(argv[i], "-noOriginStartup")) + if (!strcmp(argv[i], "-noOriginStartup") || !strcmp(argv[i], "-dedicated")) noOriginStartup = true; - if (!isDedicated && !noOriginStartup) + if (!noOriginStartup) { EnsureOriginStarted(); } { - - if (!GetExePathWide(exePath, 4096)) + if (!GetExePathWide(exePath, sizeof(exePath))) { MessageBoxA(GetForegroundWindow(), "Failed getting game directory.\nThe game cannot continue and has to exit.", "Northstar Launcher Error", 0); return 1; @@ -198,6 +192,15 @@ int main(int argc, char* argv[]) { PrependPath(); + printf("[*] Loading tier0.dll\n"); + swprintf_s(buffer, L"%s\\bin\\x64_retail\\tier0.dll", exePath); + hTier0Module = LoadLibraryExW(buffer, 0, LOAD_WITH_ALTERED_SEARCH_PATH); + if (!hTier0Module) + { + LibraryLoadError(GetLastError(), L"tier0.dll", buffer); + return 1; + } + bool loadNorthstar = ShouldLoadNorthstar(argc, argv); if (loadNorthstar) { @@ -210,23 +213,12 @@ int main(int argc, char* argv[]) { printf("[*] Loading launcher.dll\n"); swprintf_s(buffer, L"%s\\bin\\x64_retail\\launcher.dll", exePath); - hLauncherModule = LoadLibraryExW(buffer, 0i64, 8u); + hLauncherModule = LoadLibraryExW(buffer, 0, LOAD_WITH_ALTERED_SEARCH_PATH); if (!hLauncherModule) { LibraryLoadError(GetLastError(), L"launcher.dll", buffer); return 1; } - - printf("[*] Loading tier0.dll\n"); - // this makes zero sense given tier0.dll is already loaded via imports on launcher.dll, but we do it for full consistency with original launcher exe - // and to also let load callbacks in Northstar work for tier0.dll - swprintf_s(buffer, L"%s\\bin\\x64_retail\\tier0.dll", exePath); - hTier0Module = LoadLibraryW(buffer); - if (!hTier0Module) - { - LibraryLoadError(GetLastError(), L"tier0.dll", buffer); - return 1; - } } printf("[*] Launching the game...\n"); |