Simple MemoryMgr Class

Posts 1622 of 22 · Page 2 of 2
Quote Originally Posted by D-Vid the DBag View Post


Lolz. I don't give a shit if he steals anyone else's, but not my little buddy, CodeDemon's avatar. He BETTER not steal mine tho.
I will take yours.
Quote Originally Posted by CodeDemon View Post
I was bored, pretty much it easily allows you to manage all your addresses.

There are some things you can do to easily make this better(Get the original bytes for the addresses automatically), but hey its for the public

Credits: mmbob, nubzgetskillz

Code:
/*===============================|
|Simple MemoryMgr Class			 |
|								 |
|By CodeDemon					 |
|Credits: mmbob, nubzgetskillz	 |
|===============================*/
#include <Windows.h>

#define ON true
#define OFF false
#define ingamecheck 0x37829B4C

struct memory{
	char * name;
	bool enabled;
	int address;
	int size;
	char * original;
	char * newbytes;
};

class MemoryMgr{
	public:
		memory mem[99]; //change 99 to however many addresses you have as to not allocate too much memory

		void AddOffset(char * name, int address, char * original, char * newbytes , int size);
		void UnPatchAll();
		void PatchBytes(char * name, bool onoff);
	private:
		int adrcount;
};

void MemoryMgr::AddOffset(char * name, int address, char * original, char * newbytes, int size)
{
	mem[adrcount].address = address;
	mem[adrcount].name = name;
	mem[adrcount].size = size;
	mem[adrcount].original = original;
	mem[adrcount].newbytes = newbytes;
	mem[adrcount].enabled = false;
	adrcount++;
}

void MemoryMgr::UnPatchAll()
{
	for(int i = 0; i<(sizeof(mem)/sizeof(memory)); i++){
		memcpy((LPVOID)mem[i].address,mem[i].original,mem[i].size);
		mem[i].enabled = false;
	}
}


void MemoryMgr::PatchBytes(char * name, bool onoff)
{
	for(int i = 0; i<(sizeof(mem)/sizeof(memory)); i++){
		if(mem[i].name == name){
			if(*(int*)ingamecheck == 1){
				if(onoff == true){
					memcpy((LPVOID)mem[i].address,mem[i].newbytes,mem[i].size);
					mem[i].enabled = true;
				} else {
					memcpy((LPVOID)mem[i].address,mem[i].original,mem[i].size);
					mem[i].enabled = false;
				}
			} else {
				memcpy((LPVOID)mem[i].address,mem[i].original,mem[i].size);
			}
		}
	}
}
How to use:

Paste the code into a new header file.

Create a new instance of the class, preferably where your DLL main function is, or where your hacks are. You can also extern it if that will be easier for you.
Code:
MemoryMgr mempatch
In your DLL main, initiate the addresses, this is done, so that you dont initiate addresses more than once.

Code:
bool APIENTRY DllMain(HMODULE hMod, DWORD pReason, LPVOID lpReserved)
{
	if (pReason == DLL_PROCESS_ATTACH)
	{

		mempatch.AddOffset("NoReload", 0x374BB8F4, "\x0F\x84\xB1\x01\x00\x00", "\x90\x90\x90\x90\x90\x90", 6);
		mempatch.AddOffset("SuperBullets", 0x374B65D6, "\x0F\x94\xC0", "\x90\x90\x90", 3);
	}

	return true;

}
Use:

Code:
 mempatch.PatchBytes("HACKNAME",ON);
or

Code:
 mempatch.PatchBytes("HACKNAME",OFF);
The function automatically checks if bytes can be patched(patches only if in game), and patches them accordingly.
PrettySimple. Iused to use this with my hotkeys till i simplified it. Cuz I realized this wasn't really necessary for anything lol.
Does the game status address still work? cause i d/c whenever i use it...
Nice work =D

When I saw the thread title I thought it was another CLR-like implementation. (As in, the memory management like gcnew etc)
Quote Originally Posted by freedompeace View Post
Nice work =D

When I saw the thread title I thought it was another CLR-like implementation. (As in, the memory management like gcnew etc)
GTFO! haha you never on anymore Where are your hacks my viet bro!
Quote Originally Posted by Nubzgetkillz View Post
GTFO! haha you never on anymore Where are your hacks my viet bro!
he doesn't have the game so how will he make hacks?
Quote Originally Posted by NOOB View Post


he doesn't have the game so how will he make hacks?
He creates all his hacks without testing himself he has little mexican bitches doing it for him! hehe he gets kicked for high network latency.. stupid Australian connection
Posts 1622 of 22 · Page 2 of 2
This thread is closed for replies.

Tags for this Thread

None

Need help?