#include "Windows.h" #include "tlhelp32.h" #include "String.h" #include "Shlwapi.h" #include "iostream" using namespace std; HANDLE hProcess; LPVOID lp_address; LPVOID lp_ret_value_address; DWORD lp_ret_jmp; DWORD lp_to_jmp; template <typename T> T Read(LPVOID Address) { T Data; ReadProcessMemory(hProcess, (LPVOID)Address, &Data, sizeof(T), nullptr); return Data; } uintptr_t FindPattern(uintptr_t start, uintptr_t length, const unsigned char* pattern, const char* mask) { size_t pos = 0; auto maskLength = strlen(mask) - 1; auto startAdress = start; for (auto it = startAdress; it < startAdress + length; ++it) { if (Read<unsigned char>(LPVOID(it)) == pattern[pos] || mask[pos] == '?') { if (mask[pos + 1] == '