- 287
- 477
если тебе нужен пример того, как ставить хуки, то вот, когда-то че-то хукал, не помню когда и что, мейби разберешьсяВместо того, чтобы умничать, могли бы объяснить как работают новые хуки, про которые ни слова нигде не написано. В readme и "гайде" описаны методы, которые были больше года назад актуальны.
Вместо методов из примера есть set_cb, который чтобы использовать, надо преисполнится в плюсах. Код с reset remove, выглядит как заклинание, написанное insane'ом(безумцем)
Я, конечно, понимаю, что лямбда функции это супер удобно. Но вариант из гайда явно проще и понятнее. А объяснение почему функция принимает ссылку на хук и, как я понимаю, ссылку на ссылку на адрес ,который указан при инициализации хука?C++:window_init_hook.set_cb([this](const auto& hook, auto&& hinst)
C++:
kthook::kthook_simple<unsigned __int8** (__fastcall*)(unsigned __int64*)> 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();