Исходник Гайд re_virtualtable <update: 01.03.20>

Receiver

🥩 Передай meat, всё в скип, я в темпе
Автор темы
Проверенный
597
812
Описание: Хукер вируальных таблиц. Тестировался только на DirectX 9.
Исходный код: https://github.com/Receiver1/re_virtualtable
Пример использования:
C++:
clVirtualTable<HRESULT, LPDIRECT3DDEVICE9> endSceneHook;
clVirtualTable<HRESULT, LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*> resetHook;

HRESULT __stdcall endSceneHooked(LPDIRECT3DDEVICE9 pDevice)
{
    // Some actions...
    return endSceneHook.call(eConvention::stdcall, pDevice);
}

HRESULT __stdcall resetHooked(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pParams)
{
    // Some actions...
    return resetHook.call(eConvention::stdcall, pDevice, pParams); 
}

// Entry point
const UINT hookAddress{ 0xC97C28U };
endSceneHook.install(hookAddress, 42, &endSceneHooked)
resetHook.install(hookAddress, 16, &resetHooked);
 
Последнее редактирование:

SR_team

like pancake
BH Team
4,707
6,347
Не вижу this в коллбеке, без него это прокатит только для COM-объектов
 

ALF

Известный
Проверенный
320
534
В call варнинг C4715, по хорошему нужно за switch вернуть значения по стандарту (или в default).
Install и Remove возвращают неправильный результат, ибо VirtualProtect проверяется на true, а должен на false
 
  • Нравится
Реакции: Receiver