mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-11-06 07:32:03 +00:00
test dll changes
This commit is contained in:
28
thirdparty/hijackkit/source/memory.cpp
vendored
Normal file
28
thirdparty/hijackkit/source/memory.cpp
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#include "memory.h"
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
void hijack::memory::Protect(size_t address, size_t size, std::function<void()> function) {
|
||||
DWORD oldProtect;
|
||||
VirtualProtect((void*)address, size, PAGE_EXECUTE_READWRITE, &oldProtect);
|
||||
|
||||
function();
|
||||
|
||||
VirtualProtect((void*)address, size, oldProtect, &oldProtect);
|
||||
}
|
||||
|
||||
void* hijack::memory::Read(size_t address, size_t size) {
|
||||
void* returnData = malloc(size);
|
||||
|
||||
Protect(address, size, [&]() {
|
||||
memcpy(returnData, (void*)address, size);
|
||||
});
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
void hijack::memory::Patch(size_t address, size_t size, void* data) {
|
||||
Protect(address, size, [&]() {
|
||||
memcpy((void*)address, data, size);
|
||||
});
|
||||
}
|
||||
45
thirdparty/hijackkit/source/utils.cpp
vendored
Normal file
45
thirdparty/hijackkit/source/utils.cpp
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "utils.h"
|
||||
|
||||
#include <Windows.h>
|
||||
#include <TlHelp32.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
uintptr_t hjiack::utils::GetModuleBaseAddress(const wchar_t* moduleName) {
|
||||
uintptr_t modBaseAddr = 0;
|
||||
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, GetCurrentProcessId());
|
||||
|
||||
if (hSnap != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
MODULEENTRY32 modEntry;
|
||||
modEntry.dwSize = sizeof(modEntry);
|
||||
if (Module32First(hSnap, &modEntry))
|
||||
{
|
||||
do
|
||||
{
|
||||
auto a = std::wstring((wchar_t*)modEntry.szModule);
|
||||
if (!_wcsicmp(a.c_str(), moduleName))
|
||||
{
|
||||
modBaseAddr = (uintptr_t)modEntry.modBaseAddr;
|
||||
break;
|
||||
}
|
||||
} while (Module32Next(hSnap, &modEntry));
|
||||
}
|
||||
}
|
||||
|
||||
CloseHandle(hSnap);
|
||||
|
||||
return modBaseAddr;
|
||||
}
|
||||
|
||||
void hjiack::utils::AllocateConsole() {
|
||||
AllocConsole();
|
||||
|
||||
|
||||
freopen_s((FILE**)__acrt_iob_func(1), "CONOUT$", "w", __acrt_iob_func(1));
|
||||
freopen_s((FILE**)__acrt_iob_func(2), "CONOUT$", "w", __acrt_iob_func(2));
|
||||
freopen_s((FILE**)__acrt_iob_func(0), "CONIN$", "r", __acrt_iob_func(0));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user