Перейти к содержанию

Управление памятью процесса - изнутри (.dll)


RockHammer

Рекомендуемые сообщения

LPVOID - это такой тип. Расшифровывается как Long Pointer to VOID. То есть, указатель неопределенного типа. Следовательно, в функцию нужно передать указатель на что-то. Но на что именно - смотри в реализации своей функции.

 

Решил проблему. Убрал LPVOID из списка аргументов. Сделал универсальный прототип записи в память.

DWORD WINAPI MemoryHook(int Size, int address, char ourByte[]){	DWORD oldProtect = 0;	VirtualProtect((void*)address, Size, PAGE_EXECUTE_READWRITE, &oldProtect);	memcpy((void*)address, (PBYTE) ourByte, Size);	VirtualProtect((void*)address, Size, oldProtect, &oldProtect);	return true;}

И воткнул в поток:

MemoryHook(5, 0xA04E96, "\x90\x90\x90\x90\x90");

Предварительно объявив вначале:

DWORD WINAPI MemoryHook(int Size, int address, char ourByte[]);

(это чтобы он не кричал: "идентификатор не найден")

 

Вообще - мне понравилось) Это единственный, наверно, участок кода во всем проекте, который я написал сам)))

Теперь думаю создать структуру, где будут хранится все адреса (для удобства).

 

 

Еще они вопросик: как воткнуть в поток... Условно. Т.е. в моей менюшке есть чек боксы с булевыми переменными. Если чекбокс включен - переменная true.

Нужно воткнуть в поток условие: 

if (func_Status == true) MemoryHook(5, 0xA04E96, "\x90\x90\x90\x90\x90");

Однако в DLL_PROCESS_ATTACH это не работает.

BOOL WINAPI DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved){	if (dwReason == DLL_PROCESS_ATTACH) 	{ 		new_My_Thread(D3d9_Hook); 		if (Recoil_Status == true) MemoryHook(5, 0xA04E96, "\x90\x90\x90\x90\x90");		ProtectHacker(5);	}	return TRUE;}
Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Хорошая привычка - "нашел решение проблемы - опиши его". Форум для этого и существует.

Прописать условие с мемхаком можно прямо в менюшке. Втыкать в поток не обязательно. Т.к. по сути условие с мемхаком - это часть менюшки.
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.