![]() |
kthook
x86 библиотека для хуков с полной поддержкой функторов, лямбд с захватами и прочих Примеры кода: C++: Код:
intC++: Код:
intОстальные примеры можно найти на гитхабе Download & Source: GitHub - kin4stat/kthook Contribute to kin4stat/kthook development by creating an account on GitHub. github.com |
Обновил.
Теперь есть обычные хуки, получение адреса возврата, и прочие фишки |
Обновил, добавил контекст, обычные хуки
Также теперь есть поддержка x64 windows, x64 linux, x86 windows x86 linux WIP |
Теперь production ready.
x86 windows, x86 linux, x64 linux, x64 windows. Остался одна недоработка на x64 windows, пофикшу в ближайшем будущем UPD: недоработкой оказался антитампер гта 5 |
Цитата:
|
Цитата:
антитампер ГТА5, на которой мы тестили гнобил :D. В ктхуке багов не было |
Обновил, добавил naked(x86/x64) хуки. Документацию потом как-нибудь обновлю.
Пока представлю короткую сводку, ну и пример из тестов: Интерфейс как у Код:
kthook_simpleКод:
set_destКод:
set_cbТип коллбэка - Код:
void(const kthook_naked&)Код:
get_contextКод:
get_return_addressКод:
get_contextТип возвращаемого значения - Код:
cpu_ctx&Код:
get_return_addressТип возвращаемого значения - Код:
std::uintptr_t&kthook/tests/simple_test.cpp at ead0aff128ce2158875354b9173da4eeddc5b70c · kin4stat/kthook Contribute to kin4stat/kthook development by creating an account on GitHub. github.com kthook/tests/simple_test.cpp at ead0aff128ce2158875354b9173da4eeddc5b70c · kin4stat/kthook Contribute to kin4stat/kthook development by creating an account on GitHub. github.com |
Киня, вот создал ты библиотеку свою, может сделаешь уроки, как самому делать хуки? А то грустно наверное пользоваться готовым кодом.
Мысли людей скорее всего "Эххх, я вот не умею хуки создавать, пользуюсь чужим кодом(((". И грустно для самого себя использовать чужой код, то есть понимать, что ты так не умеешь и за тебя это сделал другой человек. |
Цитата:
|
Цитата:
Уххх, я вообще реверсинг не понимаю. Да и уроков по нему единицы в интернете, думаю. Может, сделаешь урок по реверсу? Да и чтобы реверсить, тут программист нервно курит в стороне, наверное, ибо тут надо быть реверс-инженером. |
Цитата:
Хотел продолжить первый гайд, но понял что нужно объяснить что такое хуки Создание ASI-плагина с нуля Хуки – что это такое и как с ними работать Безопасная инициализация и работа с SAMP Работа с рендером и Directx9 Обработка событий окна + ImGui В этом гайде я расскажу что такое хуки, как... www.blast.hk Исходник - Гайд - Мини-гайд по хукам. [Теория + Практика] Всем привет. В последнее время я стал замечать, что абсолютное большинство использует всякие готовые библиотеки для хуков, и даже не заморачиваются о строении функций, типах хуков и прочим. Как таковых гайдов очень мало, а если и есть - на английском языке. В этой теме я расскажу обо всем просто... www.blast.hk |
Обновил, пофиксил баг с выравниванием стека на x64
|
Устроим сегодня день обнов, хули :D
Проверка Код:
check_is_executableТакже добавил опцию на заморозку потоков. Чтобы ктхук заморозил потоки прежде чем установить хук - второй шаблонный аргумент нужно выставить в Код:
kthook_option::kFreezeThreads(Теоретически ктхук работает и на макос, но я не проверял. Если работает, то заморозка потоков на макос не работает) |
Кинь, твой ктхук для всех игр подойдёт или онли samp?
|
Цитата:
Ответили на вопрос 4 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов. qna.habr.com |
Цитата:
|
Хайповая обнова мужики зацените.
Из мелочей: фикс бага на naked хуках, фикс установки хука на call опкод. Ну, а теперь к крутым новостям. Добавил враппер на коллбэки с большим количество аргументов. Допустим мы хотим захукать такую функцию: C++: Код:
usingИ из этого всего списка нам нужен только параметр fadeSpeed. Если использовать хуки по обычному, тогда придется описывать все аргументы, и это неудобно. И приходилось делать это вот так: C++: Код:
register_corona_hookПоэтому теперь можно сделать так: C++: Код:
register_corona_hookТ.е. неиспользуемые первые 18 аргументов закидываются в v18, fade_speed закидывается по обычному, и последние 2 аргумента закидываются в v20_v21. Заметно меньше ручной писанины, сразу видно что происходит, ну и следовательно меньше шанс ошибки. Круто же? Ну и чтобы вызвать трамплин, нужно вызвать call_trampoline и передать туда все заглушки. В обычных хуках call_trampoline вызвать тоже можно, но компиляция замедлится. Ну и пока вы побежали ставить лайки и звездочки на гитхаб, я расскажу об ограничениях. Коллбэк к хуку не может быть шаблонным. Только первый ее аргумент(т.е. объект хука). Попробую это обойти в ближайшее время конечно, но не факт что выйдет Ну а еще, не забывайте указывать && у kthook::take, иначе все сломается |
Я просто в ахуе, как это сложно... 😣
А ещё я в этих хуках и реверсе нихуя не понимаю, это просто пиздец. 😕 Где можно научиться? 🙄 Хочется плакать... 🙁😐 |
Цитата:
|
Цитата:
А если и есть единицы результатов, то это пиздец сложно и непонятно... |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
The different ways of hooking - Explore the world of programming and reversing with our array of essential tools and insights! Join our dynamic community and equip yourself with resources like reverse engineering tools, debugging aids, scripting languages, exploit development techniques... www.unknowncheats.me https://brokencore.club/threads/8242/ *****бол получается)0))xd) |
Цитата:
Цитата:
Да ну нафиг эти хуи и реверс, тьфу блин! Хуки и реверс. Пойду в Far Cry 5 поиграю... |
| Время: 00:49 |