Skip to content

Latest commit

 

History

History
619 lines (454 loc) · 155 KB

README.md

File metadata and controls

619 lines (454 loc) · 155 KB

GABB

Simple project to make your own GT internal!

This source has been compiled with visual studio 2017 so i prefer you to use 2017 release of visual studio ide.

#include <string.h>
#include <string>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <d3d9.h>
#include <time.h>  
#include <cstdlib>
#include <functional> 
#include <algorithm>  


using namespace std;

void saveLog() {

	ofstream myfile;
	myfile.open("loader_log.txt");
	myfile << "�INJECTION_SUCCESS!";
	myfile.close();
}

void MemSprayString(long addrToInject) {
	LPVOID getPRoce = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + addrToInject);
	HANDLE internalHandleShit = GetCurrentProcess();
	WriteProcessMemory(internalHandleShit, getPRoce, "", sizeof(""), NULL);
}
void HelloWorld()
{
	MessageBox(0, "Grabb Internal\nThanks for downloading...\nHirako Shiniji", "Grabb - Beta", MB_ICONINFORMATION);
}
void printL(const char*print) {
	MessageBox(0, print, "Grabb - Alert", MB_ICONINFORMATION);

}
void clear() {
	// CSI[2J clears screen, CSI[H moves the cursor to top-left corner
	std::cout << "\x1B[2J\x1B[H";
}
void nop(int nopLength,long offset) {
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + offset);
	HANDLE a = GetCurrentProcess();
	BYTE nop[] = { 0x90 };
	nop+nopLength;
	WriteProcessMemory(a, entry, nop, sizeof(nop), NULL);
}
void memSpray(long address,BYTE* offsets) {
	//Internal Memory Hack secure asf
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + address);
	HANDLE a = GetCurrentProcess();
	WriteProcessMemory(a, entry, offsets, 2, NULL);

}
void memSpray32(long address,  int offsets) {
	//Internal Memory Hack secure asf
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + address);
	HANDLE a = GetCurrentProcess();
	WriteProcessMemory(a, entry, LPCVOID(offsets), sizeof(offsets), NULL);

}
void PrintLastErrorMsg() {
	LPTSTR pTmp = NULL;
	DWORD errnum = GetLastError();
	FormatMessage(
		FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY,
		NULL,
		errnum,
		LANG_NEUTRAL,
		(LPTSTR)&pTmp,
		0,
		NULL
	);

	cout << "Error(" << errnum << "): " << pTmp << endl;
}
std::string GetLastErrorAsString()
{
	//Get the error message, if any.
	DWORD errorMessageID = ::GetLastError();
	if (errorMessageID == 0)
		return std::string(); //No error message has been recorded

	LPSTR messageBuffer = nullptr;
	size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
		NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL);

	std::string message(messageBuffer, size);

	//Free the buffer.
	LocalFree(messageBuffer);

	return message;
}
int PAGE_MENU = 1;
std::string random_string(size_t length)
{
	auto randchar = []() -> char
	{
		const char charset[] =
			"0123456789"
			"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
			"abcdefghijklmnopqrstuvwxyz";
		const size_t max_index = (sizeof(charset) - 1);
		return charset[rand() % max_index];
	};
	std::string str(length, 0);
	std::generate_n(str.begin(), length, randchar);
	return str;
}
void DrawMenu(BYTE* offsets) {
	
	//Internal Draw Menu using simple menu pattern.
	//Pattern Hardcoded By Hirako Shiniji
	//Menu Pattern : 60 34 47 72 61 62 62 20 4D 65 6E 75 20 76 31 2E 34 0D 0A 60 30 46 31 20 2D 20 41 6E 74 69 62 6F 75 6E 63 65 0D 0A 46 32 20 2D 20 4D 6F 64 20 46 6C 79 0D 0A 5B 2A 5D 20 43 72 65 64 69 74 73 0D 0A 5B 2A 5D 20 4D 61 64 65 20 42 79 20 48 69 72 61 6B 6F
	
	if (PAGE_MENU == 1) {
		HWND hwnd = FindWindowA(NULL, "");
		LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
		DWORD procID;
		HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
		OpenProce;
		HANDLE a = GetCurrentProcess();
		DWORD oldProtect = 0;
		DWORD OLDPROTECT;
		rand() % 6;
		const char* MenuPattern = "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] ";
		//VirtualAlloc(entry, sizeof("`4Grabb Beta 1.0\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce"), PAGE_EXECUTE_READWRITE, MEM_FREE);
		VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `" +random_string(1) + "Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);
		string dram="fps: %d - M : %.2f, T : %.2f A : %.2f F : %.2f\n\n `" + random_string(1) + "Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] ";
		WriteProcessMemory(a, entry, &dram, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] "), NULL);
		BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu] "), NULL);
		VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\nPAGE - 1 [Player Menu]  "), PAGE_READONLY, &OLDPROTECT);
	}
	if (PAGE_MENU == 2) {
		HWND hwnd = FindWindowA(NULL, "");
		LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
		DWORD procID;
		HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
		OpenProce;
		HANDLE a = GetCurrentProcess();
		DWORD oldProtect = 0;
		DWORD OLDPROTECT;
		const char* MenuPattern = "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4_______________________\n|`0Grabb Menu Beta 1.6`4|\n`4___________________\n`0[*] F4 - Empty\n[*] F5 - Empty\n[*] F6 - Empty\n PAGE - 2 ";
		//VirtualAlloc(entry, sizeof("`4Grabb Beta 1.0\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce"), PAGE_EXECUTE_READWRITE, MEM_FREE);
		VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

		WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] "), NULL);
		BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] "), NULL);
		VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0[*] F4 - Snow Particles\n[*] F5 - Fart Particles\n[*] F6 - Aura Particles\nPAGE - 2 [Visuals Menu] "), PAGE_READONLY, &OLDPROTECT);
	}
	if (PAGE_MENU == 3) {

	}
	else {
		if (GetAsyncKeyState(VK_NUMPAD6)) {
			PAGE_MENU++;
		}
	}
	
	if (PAGE_MENU == 1) {

	}
	else {
		if (GetAsyncKeyState(VK_NUMPAD4)) {
			PAGE_MENU--;
		}
	}
	
	//lets relief our cpu for a while or it will die lmao :D
    Sleep(50);
	


}
void ToggleDrawMenu(BYTE* offsets,string hack1) {
	//Internal Draw Menu using simple menu pattern.
	//Pattern Hardcoded By Hirako Shiniji
	//Menu Pattern : 60 34 47 72 61 62 62 20 4D 65 6E 75 20 76 31 2E 34 0D 0A 60 30 46 31 20 2D 20 41 6E 74 69 62 6F 75 6E 63 65 0D 0A 46 32 20 2D 20 4D 6F 64 20 46 6C 79 0D 0A 5B 2A 5D 20 43 72 65 64 69 74 73 0D 0A 5B 2A 5D 20 4D 61 64 65 20 42 79 20 48 69 72 61 6B 6F
	HWND hwnd = FindWindowA(NULL, "");
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
	DWORD procID;
	HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
	OpenProce;
	HANDLE a = GetCurrentProcess();
	DWORD oldProtect = 0;
	DWORD OLDPROTECT;

	//VirtualAlloc(entry, sizeof("`4Grabb Beta 1.0\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce"), PAGE_EXECUTE_READWRITE, MEM_FREE);
	VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly\n[*] F2 - Antibounce\n[*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji\n [#] Supported by Commander Kaan   "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

	WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji\n [#] Supported by Commander Kaan  ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4GGrabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji\n [#] Supported by Commander Kaan "), NULL);
	BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji\n [#] Supported by Commander Kaan  ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji\n [#] Supported by Commander Kaan  "), NULL);






}void DebugMode()
{
	if (!AllocConsole()) {
		// Add some error handling here.
		// You can call GetLastError() to get more info about the error.
		return;
	}

	// std::cout, std::clog, std::cerr, std::cin
	FILE* fDummy;
	freopen_s(&fDummy, "CONOUT$", "w", stdout);
	freopen_s(&fDummy, "CONOUT$", "w", stderr);
	freopen_s(&fDummy, "CONIN$", "r", stdin);
	std::cout.clear();
	std::clog.clear();
	std::cerr.clear();
	std::cin.clear();

	// std::wcout, std::wclog, std::wcerr, std::wcin
	HANDLE hConOut = CreateFile(("CONOUT$"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	HANDLE hConIn = CreateFile(("CONIN$"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	SetStdHandle(STD_OUTPUT_HANDLE, hConOut);
	SetStdHandle(STD_ERROR_HANDLE, hConOut);
	SetStdHandle(STD_INPUT_HANDLE, hConIn);
	std::wcout.clear();
	std::wclog.clear();
	std::wcerr.clear();
	std::wcin.clear();
}
bool mfly = false;
bool av = false;

FILE *fDummy;

void abhack()
{
	BYTE avON[] = { 0x90,0x90 };
	BYTE avOFF[] = { 0x75,0x10 };
	if (GetAsyncKeyState(VK_F2)) {

		if (av == true) {


			memSpray(0x2D313A, avON);

			std::cout << "Antibounce > ON" << std::endl;

			av = false;
		}
		else if (av == false) {
			memSpray(0x2D313A, avOFF);
			std::cout << "Antibounce > OFF" << std::endl;


			av = true;
		}

	}

}
bool nv = false;
void snow_mp()
{
	BYTE snON[] = { 0x84 };
	BYTE snOFF[] = { 0x85 };
	if (GetAsyncKeyState(VK_F4)) {

		if (nv == true) {


			memSpray(0xA3D0C, snON);
		
			

			nv = false;
		}
		else if (nv == false) {
			memSpray(0xA3D0C, snOFF);
	
		


			nv = true;
		}

	}

}
bool fr = false;
void fart_mp()
{
	BYTE snON[] = { 0x84 };
	BYTE snOFF[] = { 0x85 };
	if (GetAsyncKeyState(VK_F5)) {

		if (fr == true) {


			memSpray(0x9C324, snON);



			fr = false;
		}
		else if (fr == false) {
			memSpray(0x9C324, snOFF);




			fr = true;
		}

	}

}
bool aru = false;
void aura_mp()
{
	BYTE snsON[] = {0x7A};
	BYTE snsOFF[] = {0x75};
	if (GetAsyncKeyState(VK_F6)) {

		if (aru == true) {


			memSpray(0x9C43F, snsON);
			


			aru = false;
		}
		else if (aru == false) {
			memSpray(0x9C43F, snsOFF);
	



			aru = true;
		}

	}

}
void MemRelocate(string size,long address) {
	HWND hwnd = FindWindowA(NULL, "");
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + address);
	DWORD procID;
	HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
	OpenProce;
	HANDLE a = GetCurrentProcess();
	DWORD oldProtect = 0;
	DWORD OLDPROTECT;


	VirtualProtectEx(a, entry, sizeof(size), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

}
void arhack()
{
	//Autorespawn
	BYTE avON[] = { 0x90};
	BYTE avOFF[] = { 0x80, 0x79, 0x12, 0x00 };
	if (GetAsyncKeyState(VK_F3)) {

		if (av == true) {
			HWND hwnd = FindWindowA(NULL, "");
			LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
			DWORD procID;
			HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
			OpenProce;
			HANDLE a = GetCurrentProcess();
			DWORD oldProtect = 0;
			DWORD OLDPROTECT;
			MemRelocate("/////////////////////////////", 0x2C236A);

			memSpray(0x2C236A, avON);
			VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `7[+] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

			WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `7[+] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);
			BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `7[+] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji  ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `7[+] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);

		

			av = false;
		}
		else if (av == false) {
			MemRelocate("/////////////////////////////", 0x2C236A);

			memSpray(0x2C236A, avOFF);
			HWND hwnd = FindWindowA(NULL, "");
			LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
			DWORD procID;
			HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
			OpenProce;
			HANDLE a = GetCurrentProcess();
			DWORD oldProtect = 0;
			DWORD OLDPROTECT;

			
			VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `0[*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

			WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `0[*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);
			BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `0[*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji  ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n `0[*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);




			av = true;
		}

	}

}
DWORD WINAPI LoopFunction(LPVOID lpParam)
{
	while (1) {
		
		BYTE drawPattern[] = { 0x60, 0x34, 0x47, 0x72, 0x61, 0x62, 0x62, 0x20, 0x4D, 0x65, 0x6E, 0x75, 0x20, 0x76, 0x31, 0x2E, 0x34, 0x0D, 0x0A, 0x60, 0x30, 0x46, 0x31, 0x20, 0x2D, 0x20, 0x41, 0x6E, 0x74, 0x69, 0x62, 0x6F, 0x75, 0x6E, 0x63, 0x65, 0x0D, 0x0A, 0x46, 0x32, 0x20, 0x2D, 0x20, 0x4D, 0x6F, 0x64, 0x20, 0x46, 0x6C, 0x79, 0x0D, 0x0A, 0x5B, 0x2A, 0x5D, 0x20, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x0D, 0x0A, 0x5B, 0x2A, 0x5D, 0x20, 0x4D, 0x61, 0x64, 0x65, 0x20, 0x42, 0x79, 0x20, 0x48, 0x69, 0x72, 0x61, 0x6B, 0x6F };
		arhack(); //Autorespawn
		abhack(); //Antibounce 
		snow_mp(); //Snow Particles
		fart_mp(); //Fart Particles
		aura_mp(); //Aura Particles
		DrawMenu(drawPattern); //Menu Pattern Renderer
		HWND conwin = ::FindWindow(0,("Growtopia"));
		RECT conrect;
		

	
		
		BYTE btLdrLoadDll[] = { 0x90,0x90 };

		memSpray(0x1C40A5, btLdrLoadDll);
		BYTE mflyON[] = { 0x90,0x90 };
		BYTE mflyOFF[] = { 0x84,0xC0 };
		BYTE avON[] = { 0x90,0x90 };
		BYTE avOFF[] = { 0x75,0x10 };
		//nopping still needs some work on it.
		//nop(4, 0x1C40A5);
	

		if (GetAsyncKeyState(VK_F1)) {

			if (mfly == true) {


				memSpray(0x2D28F5, mflyON);
				
				std::cout << "Mod fly > ON" << std::endl;
				HWND hwnd = FindWindowA(NULL, "");
				LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
				DWORD procID;
				HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
				OpenProce;
				HANDLE a = GetCurrentProcess();
				DWORD oldProtect = 0;
				DWORD OLDPROTECT;

				//VirtualAlloc(entry, sizeof("`4Grabb Beta 1.0\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce"), PAGE_EXECUTE_READWRITE, MEM_FREE);
				VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`7 [+] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

				WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`7 [+] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`7 [+] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);
				BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`7 [+] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`7 [+] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);



				//DrawText(wdc, "F1 - Mod Fly ON", -1, &rectx, DT_SINGLELINE | DT_NOCLIP);
				

				mfly = false;
			}
			else if (mfly == false) {
				memSpray(0x2D28F5, mflyOFF);
				std::cout << "Mod fly > OFF" << std::endl;
				HWND hwnd = FindWindowA(NULL, "");
				LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + 0x3F7148);
				DWORD procID;
				HANDLE OpenProce = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
				OpenProce;
				HANDLE a = GetCurrentProcess();
				DWORD oldProtect = 0;
				DWORD OLDPROTECT;

				//VirtualAlloc(entry, sizeof("`4Grabb Beta 1.0\n`0[*] F1 - Mod Fly\n[*] F2 - Antibounce"), PAGE_EXECUTE_READWRITE, MEM_FREE);
				VirtualProtectEx(a, entry, sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), PAGE_EXECUTE_READWRITE, &OLDPROTECT);

				WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);
				BOOL patternInıt = WriteProcessMemory(a, entry, "fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji ", sizeof("fps: %d - M: %.2f, T: %.2f A: %.2f F: %.2f\n\n `4Grabb Menu Beta 1.6\n`0 [*] F1 - Mod Fly`0\n [*] F2 - Antibounce\n [*] F3 - AutoRespawn\n`0 [-] Made By Hirako Shiniji "), NULL);

			    
				
				mfly = true;
			}
			else if (GetAsyncKeyState(VK_F2)) {

				if (av == true) {


					memSpray(0x2D313A, avON);
					
					std::cout << "Antibounce > ON" << std::endl;

					av = false;
				}
				else if (av == false) {
					memSpray(0x2D313A, avOFF);
					std::cout << "Antibounce > OFF" << std::endl;


					av = true;
				}


			}
		}
	}
	
	Sleep(50);
	return 0;
}
void CreateConsole()
{

	




	

}
void Check(long address ,BYTE*scan) {
	LPVOID entry = (LPVOID)((uintptr_t)GetModuleHandle(NULL) + address);
	HANDLE a = GetCurrentProcess();
	BYTE byte[2];
	ReadProcessMemory(a, entry, byte, sizeof(byte), NULL);
	
	if ((char)scan != (char)byte) {
		std::cout << "Hacks Not Patched!"<< std::endl;

	}
	else {
		std::cout << "Hacks Patched!"  << std::endl;

	}
	
}
#define MST (-7)
#define UTC (0)

#define CCT (+8)
bool debugging = false;
BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwAttached, LPVOID lpvReserved)
{
	time_t rawtime;
	struct tm * ptm;

	time(&rawtime);

	
	if (dwAttached == DLL_PROCESS_ATTACH) {
		CreateThread(NULL, 0, &LoopFunction ,&abhack, 0, NULL);
		

	
		saveLog();

		//Debug mode is helpful for the dev to interact with exceptions.
		if (debugging == true) {
			DebugMode();
		}
		else {

		}
		
		INPUT ip;
		ip.type = INPUT_KEYBOARD;
		ip.ki.wScan = 0;
		ip.ki.time = 0;
		ip.ki.dwExtraInfo = 0;
		ip.ki.wVk = 0x46 + VK_CONTROL;
		//For key press Flag=0
		ip.ki.dwFlags = 0;
		SendInput(1, &ip, sizeof(INPUT));
		//For key relese Flag = KEYEVENTF_KEYUP
		ip.ki.dwFlags = KEYEVENTF_KEYUP;
		SendInput(1, &ip, sizeof(INPUT));

		INPUT ips;
		ips.type = INPUT_KEYBOARD;
		ips.ki.wScan = 0;
		ips.ki.time = 0;
		ips.ki.dwExtraInfo = 0;
		ips.ki.wVk = VK_CONTROL;
		//For key press Flag=0
		ips.ki.dwFlags = 0;
		SendInput(1, &ips, sizeof(INPUT));
		//For key relese Flag = KEYEVENTF_KEYUP
		ips.ki.dwFlags = KEYEVENTF_KEYUP;
		SendInput(1, &ips, sizeof(INPUT));
	    //HelloWorld();
		
		

		
	
		BYTE mflyOFF[] = { 0x84,0xC0 };
		Check(0x2D28F5, mflyOFF);
	
	
	}
	return 1;
}