
24.11.2022, 01:21
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от papercut
Вместо того, чтобы умничать, могли бы объяснить как работают новые хуки, про которые ни слова нигде не написано. В readme и "гайде" описаны методы, которые были больше года назад актуальны.
Вместо методов из примера есть set_cb, который чтобы использовать, надо преисполнится в плюсах. Код с reset remove, выглядит как заклинание, написанное insane'ом(безумцем)
C++:
Код:
window_init_hook
.
set_cb
(
[
this
]
(
const
auto
&
hook
,
auto
&&
hinst
)
Я, конечно, понимаю, что лямбда функции это супер удобно. Но вариант из гайда явно проще и понятнее. А объяснение почему функция принимает ссылку на хук и, как я понимаю, ссылку на ссылку на адрес ,который указан при инициализации хука?
если тебе нужен пример того, как ставить хуки, то вот, когда-то че-то хукал, не помню когда и что, мейби разберешься
C++:
Код:
kthook
::
kthook_simple
unkHook
{
}
;
unsigned
__int8
*
*
__fastcall
Unk_HOOKED
(
const
decltype
(
unkHook
)
&
hook
,
unsigned
__int64
*
param_1
)
{
printf
(
"0x%llX\n"
,
(
std
::
uintptr_t
)
param_1
)
;
return
hook
.
get_trampoline
(
)
(
param_1
)
;
}
//install
std
::
uintptr_t UnkAddrHook
=
0x10B1B60
;
unkHook
.
set_dest
(
UnkAddrHook
)
;
unkHook
.
set_cb
(
&
Unk_HOOKED
)
;
unkHook
.
install
(
)
;
|
|
|