aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LauncherInjector/LauncherInjector.vcxproj1
-rw-r--r--LauncherInjector/LauncherInjector.vcxproj.filters3
-rw-r--r--LauncherInjector/memalloc.cpp90
-rw-r--r--LauncherInjector/memalloc.h24
-rw-r--r--loader_launcher_proxy/framework.h4
-rw-r--r--loader_launcher_proxy/loader_launcher_proxy.vcxproj2
-rw-r--r--loader_launcher_proxy/loader_launcher_proxy.vcxproj.filters6
-rw-r--r--loader_launcher_proxy/pch.h2
8 files changed, 3 insertions, 129 deletions
diff --git a/LauncherInjector/LauncherInjector.vcxproj b/LauncherInjector/LauncherInjector.vcxproj
index 289d66ae..30fa690e 100644
--- a/LauncherInjector/LauncherInjector.vcxproj
+++ b/LauncherInjector/LauncherInjector.vcxproj
@@ -88,7 +88,6 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
- <ClCompile Include="memalloc.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="memalloc.h" />
diff --git a/LauncherInjector/LauncherInjector.vcxproj.filters b/LauncherInjector/LauncherInjector.vcxproj.filters
index 2e935b08..449381ca 100644
--- a/LauncherInjector/LauncherInjector.vcxproj.filters
+++ b/LauncherInjector/LauncherInjector.vcxproj.filters
@@ -18,9 +18,6 @@
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="memalloc.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource1.h">
diff --git a/LauncherInjector/memalloc.cpp b/LauncherInjector/memalloc.cpp
deleted file mode 100644
index af334acf..00000000
--- a/LauncherInjector/memalloc.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-#include "memalloc.h"
-#include <stdio.h>
-
-extern HMODULE hTier0Module;
-IMemAlloc** g_ppMemAllocSingleton;
-
-void LoadTier0Handle()
-{
- if (!hTier0Module) hTier0Module = GetModuleHandleA("tier0.dll");
- if (!hTier0Module) return;
-
- g_ppMemAllocSingleton = (IMemAlloc**)GetProcAddress(hTier0Module, "g_pMemAllocSingleton");
-}
-
-const int STATIC_ALLOC_SIZE = 16384;
-
-size_t g_iStaticAllocated = 0;
-void* g_pLastAllocated = nullptr;
-char pStaticAllocBuf[STATIC_ALLOC_SIZE];
-
-// they should never be used here, except in LibraryLoadError // haha not true
-
-void* malloc(size_t n)
-{
- //printf("NorthstarLauncher malloc: %llu\n", n);
- // allocate into static buffer
- if (g_iStaticAllocated + n <= STATIC_ALLOC_SIZE)
- {
- void* ret = pStaticAllocBuf + g_iStaticAllocated;
- g_iStaticAllocated += n;
- g_pLastAllocated = ret;
- return ret;
- }
- else
- {
- // try to fallback to g_pMemAllocSingleton
- if (!hTier0Module || !g_ppMemAllocSingleton) LoadTier0Handle();
- if (g_ppMemAllocSingleton && *g_ppMemAllocSingleton)
- return (*g_ppMemAllocSingleton)->m_vtable->Alloc(*g_ppMemAllocSingleton, n);
- else
- throw "Cannot allocate";
- }
-}
-
-void free(void* p)
-{
- //printf("NorthstarLauncher free: %p\n", p);
- // if it was allocated into the static buffer, just do nothing, safest way to deal with it
- if (p >= pStaticAllocBuf && p <= pStaticAllocBuf + STATIC_ALLOC_SIZE)
- return;
-
- if (g_ppMemAllocSingleton && *g_ppMemAllocSingleton)
- (*g_ppMemAllocSingleton)->m_vtable->Free(*g_ppMemAllocSingleton, p);
-}
-
-void* realloc(void* old_ptr, size_t size) {
- // it was allocated into the static buffer
- if (old_ptr >= pStaticAllocBuf && old_ptr <= pStaticAllocBuf + STATIC_ALLOC_SIZE)
- {
- if (g_pLastAllocated == old_ptr)
- {
- // nothing was allocated after this
- size_t old_size = g_iStaticAllocated - ((size_t)g_pLastAllocated - (size_t)pStaticAllocBuf);
- size_t diff = size - old_size;
- if (diff > 0)
- g_iStaticAllocated += diff;
- return old_ptr;
- }
- else
- {
- return malloc(size);
- }
- }
-
- if (g_ppMemAllocSingleton && *g_ppMemAllocSingleton)
- return (*g_ppMemAllocSingleton)->m_vtable->Realloc(*g_ppMemAllocSingleton, old_ptr, size);
- return nullptr;
-}
-
-void* operator new(size_t n)
-{
- return malloc(n);
-}
-
-void operator delete(void* p)
-{
- free(p);
-}
diff --git a/LauncherInjector/memalloc.h b/LauncherInjector/memalloc.h
deleted file mode 100644
index c983966c..00000000
--- a/LauncherInjector/memalloc.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-class IMemAlloc
-{
-public:
- struct VTable
- {
- void* unknown[1]; // alloc debug
- void* (*Alloc) (IMemAlloc* memAlloc, size_t nSize);
- void* unknown2[1]; // realloc debug
- void* (*Realloc)(IMemAlloc* memAlloc, void* pMem, size_t nSize);
- void* unknown3[1]; // free #1
- void (*Free) (IMemAlloc* memAlloc, void* pMem);
- void* unknown4[2]; // nullsubs, maybe CrtSetDbgFlag
- size_t(*GetSize) (IMemAlloc* memAlloc, void* pMem);
- void* unknown5[9]; // they all do literally nothing
- void (*DumpStats) (IMemAlloc* memAlloc);
- void (*DumpStatsFileBase) (IMemAlloc* memAlloc, const char* pchFileBase);
- void* unknown6[4];
- int (*heapchk) (IMemAlloc* memAlloc);
- };
-
- VTable* m_vtable;
-};
diff --git a/loader_launcher_proxy/framework.h b/loader_launcher_proxy/framework.h
index 54b83e94..d1b49600 100644
--- a/loader_launcher_proxy/framework.h
+++ b/loader_launcher_proxy/framework.h
@@ -1,5 +1,7 @@
#pragma once
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+#define WIN32_EXTRA_LEAN
+#define VC_EXTRALEAN
// Windows Header Files
-#include <windows.h>
+#include <Windows.h>
diff --git a/loader_launcher_proxy/loader_launcher_proxy.vcxproj b/loader_launcher_proxy/loader_launcher_proxy.vcxproj
index 32d2e44c..24cdabc0 100644
--- a/loader_launcher_proxy/loader_launcher_proxy.vcxproj
+++ b/loader_launcher_proxy/loader_launcher_proxy.vcxproj
@@ -92,12 +92,10 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
- <ClInclude Include="Memory.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
- <ClCompile Include="Memory.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
diff --git a/loader_launcher_proxy/loader_launcher_proxy.vcxproj.filters b/loader_launcher_proxy/loader_launcher_proxy.vcxproj.filters
index 519ed674..1e57c7b1 100644
--- a/loader_launcher_proxy/loader_launcher_proxy.vcxproj.filters
+++ b/loader_launcher_proxy/loader_launcher_proxy.vcxproj.filters
@@ -21,9 +21,6 @@
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="Memory.h">
- <Filter>Header Files</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
@@ -32,8 +29,5 @@
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="Memory.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/loader_launcher_proxy/pch.h b/loader_launcher_proxy/pch.h
index 30257bb2..885d5d62 100644
--- a/loader_launcher_proxy/pch.h
+++ b/loader_launcher_proxy/pch.h
@@ -7,8 +7,6 @@
#ifndef PCH_H
#define PCH_H
-#include "Memory.h"
-
// add headers that you want to pre-compile here
#include "framework.h"