ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   re_virtualtable (https://forum.antichat.xyz/showthread.php?t=1380447)

Receiver 28.02.2021 17:02

Описание:Хукер вируальных таблиц. Тестировался только на DirectX 9.

Исходный код: https://github.com/Receiver1/re_virtualtable

Пример использования:

C++:





Код:

clVirtualTable

endSceneHook
;
clVirtualTable

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 28.02.2021 17:09

Не вижу this в коллбеке, без него это прокатит только для COM-объектов

Receiver 28.02.2021 17:12

Цитата:

Сообщение от SR_team

Не вижу this в коллбеке, без него это прокатит только для COM-объектов

Видимо всё таки придётся добавлять в шаблон соглашение о вызове.

ALF 08.03.2021 01:18

В call варнинг C4715, по хорошему нужно за switch вернуть значения по стандарту (или в default).

Install и Remove возвращают неправильный результат, ибо VirtualProtect проверяется на true, а должен на false


Время: 06:20