Перейти к содержанию
Опубликовано
comment_2668

Как сделать скрытый VMT Hook?! 

Скрытый он только от проверки целостности файла. Например в Warface есть такая защита!

 

Это дополнение к теме https://fanhack.ru/index.php/topic/849-kak-sdelat-vmt-hook-i-pochemu-luchshe-ne-ispolzovat-vmt-dl/

 

 

Для того чтобы после хука не изменился хеш файла игры нам нужно установить хук только в динамической памяти

Для этого мы скопируем оригинальную таблицу VMT к себе в буфер и там установим хук то есть уже в динамической памяти

Потом в классе где будет хук меняем адресс VMT на нашу копию

Мы получим установленный хук без изменения хеша игры

LPVOID HideHookVMT(LPVOID pClass, int MaxCount, LPVOID pHookFunc, int dwOffset)
{
	LPVOID pVTable = *(LPVOID*)pClass;// Получаем vmt
	char* buf_vmt = new char[MaxCount*8];// Создаем буфер под копию оригинала vmt
	memcpy(buf_vmt, pVTable, MaxCount * 8);// Записываем оригинал vmt ы буфер

	LPVOID pAdressInTable = (LPVOID)((DWORD64)buf_vmt + dwOffset * 8);//Вычисляем адресс функции в таблице по ее порядковому номеру (ставим хук в буфере)

	DWORD dwOldProtection;
	VirtualProtect((LPVOID)pAdressInTable, sizeof(pAdressInTable), PAGE_READWRITE, &dwOldProtection);// меняем параметры страницы установка флага чтение запись 
	memcpy(pAdressInTable, pHookFunc, 8);//Записываем наш адресс хука 
	VirtualProtect((LPVOID)pAdressInTable, sizeof(pAdressInTable), dwOldProtection, &dwOldProtection);// Восстановили параметры страницы

	memcpy(pClass, &buf_vmt, 8);//Перезаписываем адресс vmt на наш буфер

	return (LPVOID)pAdressInTable;// Вернули адресс из таблицы где установили хук
}

Результат в скринах:

Оригинал класса https://prnt.sc/jH3myG1PIF88

Оригинал VMT https://prnt.sc/XNJnkqnDNlLU

После установки меняется адресс VMT на наш https://prnt.sc/rVLn1xp88La-

Хук установлен https://prnt.sc/ej3iKhwcsAM6

 

 

Ну а в оригинальном коде все как должно быть https://prnt.sc/nRNSd2R4c938

Хеш игры не изменен античит не будет ругаться. Но хук работает)

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

Нет сообщений для отображения
Гость
Эта тема закрыта для публикации ответов.