Add project files.
This commit is contained in:
35
InjectionLibrary/Injector.cpp
Normal file
35
InjectionLibrary/Injector.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "pch.h"
|
||||
#include "Injector.h"
|
||||
|
||||
namespace InjectLibrary
|
||||
{
|
||||
HHOOK Injector::_hookHandle = nullptr;
|
||||
|
||||
Injector::Injector(const std::string& mutexName, int windowsMessage) : _mutexName(mutexName), _windowsMessage(windowsMessage)
|
||||
{
|
||||
}
|
||||
|
||||
void Injector::SetHook(const HINSTANCE moduleHandle)
|
||||
{
|
||||
if (moduleHandle) {
|
||||
// <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
HANDLE mutexHandle = CreateMutexA(nullptr, false, _mutexName.c_str());
|
||||
if (GetLastError() != ERROR_ALREADY_EXISTS) {
|
||||
_hookHandle = SetWindowsHookExA(_windowsMessage, (HOOKPROC)HookMessageProcedure, moduleHandle, 0);
|
||||
_mutexHandle = mutexHandle;
|
||||
}
|
||||
else if (mutexHandle) {
|
||||
CloseHandle(mutexHandle);
|
||||
}
|
||||
}
|
||||
else {
|
||||
UnhookWindowsHookEx(_hookHandle);
|
||||
CloseHandle(_mutexHandle);
|
||||
}
|
||||
}
|
||||
|
||||
const LRESULT Injector::HookMessageProcedure(const DWORD code, const DWORD wParam, const DWORD lParam)
|
||||
{
|
||||
return CallNextHookEx(_hookHandle, code, wParam, lParam);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user