also leute ich bin jetzt ordentlich weiter gekommen.
Functions:
Code:
#include <iostream>
#include <Windows.h>
#include <tlhelp32.h>
#include <Psapi.h>
void MsgBoxAddy(DWORD addy)
{
char szBuffer[1024];
sprintf(szBuffer, "Addy:", addy);
MessageBox(NULL, szBuffer, "Title", MB_OK);
}
void WriteToMemory(uintptr_t addressToWrite, char* valueToWrite, int byteNum)
{
unsigned long OldProtection;
VirtualProtect((LPVOID)(addressToWrite), byteNum, PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy( (LPVOID)addressToWrite, valueToWrite, byteNum);
VirtualProtect((LPVOID)(addressToWrite), byteNum, OldProtection, NULL);
}
DWORD FindPattern(PVOID base, SIZE_T regionssize, char *pattern, char *mask)
{
DWORD base1 = (DWORD)base;
DWORD size1 = (DWORD)regionssize;
DWORD patternLength = (DWORD)strlen(mask);
for(DWORD i = 0; i < size1 - patternLength; i++)
{
bool found = true;
for(DWORD j = 0; j < patternLength; j++)
{
found &= mask[j] == '?' || pattern[j] == *(char*)(base1 + i + j);
}
if(found)
{
return base1 + i;
}
}
return NULL;
}
Source:
#include <Windows.h>
#include <iostream>
#include "Functions.h"
using namespace std;
char AmmoOpCode[] = "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90";
void InitiateHooks()
{
MEMORY_BASIC_INFORMATION memInfo;
for (DWORD queryAddress = 0; queryAddress < 0x80000000;
queryAddress += memInfo.RegionSize)
{
if (!VirtualQuery(reinterpret_cast<LPCVOID>(queryAddress), &memInfo, sizeof(memInfo)))
break;
if (memInfo.Protect != 0x01)
{
DWORD ammoAddy = FindPattern(memInfo.BaseAddress,memInfo.RegionSize,
"\x89\x82\x00\x00\x00\x00\x8B\x4D\xF8\x8B\x01\x8B\x80\x00\x00\x00\x00\xFF\x50\x00\x89\x45\xF4\x8B\x45\xF8\x8B\x88\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x89\x45\xF0\x8B\x4D\xF4\x8B\x55\xF0\x8B\x01\x8B\x40\x50\xFF\x10\x90\x90\x90\x8B\xE5\x5D\xC2\x04\x00\x00\x00\x00\x00\x00\xD0\x23\x32", "xx????xxxxxxx????xx?xxxxxxxx????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
if (ammoAddy != 00)
{
MsgBoxAddy(ammoAddy);
WriteToMemory(ammoAddy, AmmoOpCode, 70);
break;
}
}
}
}
#pragma endregion
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
//MessageBoxA(NULL, "Erfolgreich!", "", 0);
InitiateHooks();
break;
}
return TRUE;
}
jetzt dachte ich: Yeah wird funktionieren.
Habe auch nochmal alles nach Fehler durchgeschaut und keine gefunden. leider wird keine Messagebox angezeigt ,was soviel heißt wie: Das Pattern wurde nicht gefunden.
Kann mir da jemand weiterhelfen? ich hab alles versucht, aber weiter komme ich nicht.
Danke :)