Показать сообщение отдельно

  #6629  
Старый 24.11.2022, 01:21
AdCKuY_DpO4uLa
Постоянный
Регистрация: 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
(
)
;
 
Ответить с цитированием