Skip to content

Commit

Permalink
dont hardcode da paths
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenretriverYT committed Apr 13, 2024
1 parent 93e0420 commit 52e79bd
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 27 deletions.
24 changes: 12 additions & 12 deletions DontTerminate/DontTerminate.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,15 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -99,7 +99,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
Expand All @@ -108,8 +108,8 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -120,15 +120,15 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -141,7 +141,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
Expand All @@ -150,8 +150,8 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>C:\Users\franc\source\repos\DontTerminate\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(SolutionDir)\packages\minhook.1.3.3\lib\native\lib\libMinHook-x64-v141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down
35 changes: 23 additions & 12 deletions DontTerminate/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,23 @@
#include <psapi.h>
#include <winternl.h>

wchar_t selfDllPath[MAX_PATH];

std::string to_narrow(const std::wstring& wide) {
std::string narrow;
narrow.reserve(wide.size());
for (auto wc : wide) {
narrow.push_back(static_cast<char>(wc)); // Naive conversion, only safe for ASCII
}
return narrow;
}

void LogMessage(const char* message) {
std::ofstream logFile("C:\\Users\\franc\\source\\repos\\DontTerminate\\x64\\Release\\output.txt", std::ios::app);
LPCWSTR path = L"%USERPROFILE%\\AppData\\Local\\Temp\\DontTerminate.log";
WCHAR dest[MAX_PATH];
ExpandEnvironmentStringsW(path, dest, MAX_PATH);

std::ofstream logFile(dest, std::ios::app);
logFile << message << std::endl;
logFile.close();
}
Expand Down Expand Up @@ -156,15 +171,6 @@ BOOL WINAPI hkProcess32Next(HANDLE hSnapshot, LPPROCESSENTRY32 lppe) {
return result;
}

std::string to_narrow(const std::wstring& wide) {
std::string narrow;
narrow.reserve(wide.size());
for (auto wc : wide) {
narrow.push_back(static_cast<char>(wc)); // Naive conversion, only safe for ASCII
}
return narrow;
}

BOOL WINAPI hkCreateProcessW(
LPCWSTR lpApplicationName,
LPWSTR lpCommandLine,
Expand Down Expand Up @@ -210,7 +216,7 @@ BOOL WINAPI hkCreateProcessW(
lpStartupInfo, lpProcessInformation);

// Inject self into the new process
InjectDLL(lpProcessInformation->dwProcessId, "C:\\Users\\franc\\source\\repos\\DontTerminate\\x64\\Release\\DontTerminate.dll");
InjectDLL(lpProcessInformation->dwProcessId, to_narrow(selfDllPath).c_str());

return TRUE;
}
Expand Down Expand Up @@ -245,7 +251,7 @@ BOOL WINAPI hkCreateProcessA(
lpStartupInfo, lpProcessInformation);

// Inject self into the new process
InjectDLL(lpProcessInformation->dwProcessId, "C:\\Users\\franc\\source\\repos\\DontTerminate\\x64\\Release\\DontTerminate.dll");
InjectDLL(lpProcessInformation->dwProcessId, to_narrow(selfDllPath).c_str());

return TRUE;
}
Expand Down Expand Up @@ -357,6 +363,11 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserv
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
GetTempPathW(MAX_PATH, selfDllPath);
wcscat_s(selfDllPath, L"DontTerminate.dll");
LogMessage("Attached.");
LogMessage(std::format("DLL attached. Is copied to: {}", to_narrow(selfDllPath)).c_str());

SetupHooks();
break;
case DLL_THREAD_ATTACH:
Expand Down
23 changes: 20 additions & 3 deletions PolytoriaDontTerminate/PolytoriaDontTerminate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
#include <tlhelp32.h>
#include <stdio.h>
#include <vector>
#include <string>

std::string to_narrow(const std::wstring& wide) {
std::string narrow;
narrow.reserve(wide.size());
for (auto wc : wide) {
narrow.push_back(static_cast<char>(wc)); // Naive conversion, only safe for ASCII
}
return narrow;
}

BOOL InjectDLL(DWORD dwProcessId, const char* dllPath) {
printf("Injecting DLL into process: %lu\n", dwProcessId);
Expand Down Expand Up @@ -87,13 +97,20 @@ void FindAndInject(const wchar_t* processName, const char* dllPath) {
}

int main() {
const char* dllPath = "C:\\Users\\franc\\source\\repos\\DontTerminate\\x64\\Release\\DontTerminate.dll"; // Use an absolute path
const char* dllPath = "DontTerminate.dll";
const wchar_t* processName = L"Polytoria.exe";
const wchar_t* clientProcessName = L"Polytoria Client.exe";

// copy dll to %TEMP&/DontTerminate.dll
wchar_t expandedPath[MAX_PATH];
GetTempPathW(MAX_PATH, expandedPath);
wcscat_s(expandedPath, L"DontTerminate.dll");

CopyFileW(L"DontTerminate.dll", expandedPath, FALSE);

while (1) {
FindAndInject(processName, dllPath);
FindAndInject(clientProcessName, dllPath);
FindAndInject(processName, to_narrow(expandedPath).c_str());
FindAndInject(clientProcessName, to_narrow(expandedPath).c_str());
Sleep(250);
}

Expand Down

0 comments on commit 52e79bd

Please sign in to comment.