Как сделать хук

Добавил пользователь Владимир З.
Обновлено: 05.10.2024

Плагин Паутинка в CS:GO, Hook Grab

Позволяет администраторам (или всем игрокам) зацепиться за стены, захватить других игроков и управлять ими качать по веревке.

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

Команды и Cvars

Команды
+hook Стреляйте в крючок и скользите туда, где он приземляется
+grab Возьмите игрока или предмет и передвиньте его
+rope Прикрепите веревку и качайте ее
+push Возьмите крючок и оттолкните от него.

Команды
hook_toggle Переключает крюк вкл / выкл
grab_toggle Переключает захватить вкл / выкл
rope_toggle Переключает канате вкл / выкл
push_toggle Переключает нажать вкл / выкл

Команды администратора (ADMFLAG_GENERIC)

sm_hgr_givehook Предоставляет доступ к игроку или группе игроков.
sm_hgr_takehook Удаляет доступ к крюку от игрока или группы игроков.
sm_hgr_givegrab Предоставляет доступ к игроку или группе игроков.
sm_hgr_takegrab Удаляет захват доступа от игрока или группы игроков.
sm_hgr_giverope Предоставляет доступ к канату игроку или группе игроков.
sm_hgr_takerope Удаляет доступ к канату от игрока или группы игроков.

Плагин паутинка(хук) для CS 1.6

Все мы смотрели фильм “человек-паук”, и хоть раз то хотели обладать суперсилой главного героя. Ведь с помощью паутины можно очень быстро перемещаться и быть практически неуязвимым. В КС 1.6 такая возможность есть. Вам всего лишь нужно скачать плагин паутинка(хук) для CS 1.6 и установить на свой сервер. Вероятно, вы уже сталкивались с некачественными, нерабочими или однообразными паутинками? Это явно не про наш плагин! Он был хорошо проработан и у него имеется множество различных настроек. Например, такие как:

  1. Изменение цвета паутинки(стандартный, красный, желтый, оранжевый, зеленый, голубой, синий, фиолетовый)
  2. Возможность настройки вида паутинки(ток, радуга, буквы, майнкрафт, цепь, сердце, вирус, молния, супер хук, ультра хук)
  3. Много разных размеров(обычный, маленький, средний, большой)
  4. Куча разных звуков, выбирайте любой понравившийся.

Благодаря этим настройкам вы сможете настроить себе желаемую паутинку, а потом если захотите, сменить ее на другую. К тому же, чтобы корректировать параметры, не нужно лезть куда-то в код, просто нужно прописать в консоле команду tokmenu и у вас откроется интуитивно понятное меню настройки.

Да, естественно пользоваться паутинкой смогут не все, а только те, кому вы решите дать такую возможность. Чтобы узнать, как это сделать, а также другую информацию о данной паутинке для CS 1.6, вам нужно посмотреть видео, в котором все подробно рассказывается. Подойдет данная паутинка для любого сервера, например, Public или Jail.

Как прописать себе хук?

Зайдите в папку cstrike/addons/amxmodx/configs/hook и откройте файл hook_user.ini с помощью блокнота. Затем впишите свой ник/steam id/ip адрес в поле, где написано "Свой ник". Далее можете изменить значения в остальных скобочках на "0 или 1", которые разрешают или запрещают настраивать хук.

  1. Срок действия (пустое значение - навсегда)
  2. Смена цвета.
  3. Смена вида.
  4. Смена размера.
  5. Смена звука.

Бинды:

  • “bind любая клавиша +tok” – бинд самой паутинки.
  • “bind любая клавиша tokmenu” – бинд меню для настройки хука.

Инструкция

Как установить плагины на сервер CS 1.6? - инструкция для новичков

Как делать хук

  • - зал бокса;
  • - перчатки;
  • - бинты;
  • - груша;
  • - скакалка;
  • - партнер;
  • - тренер.

Проведите тщательную разминку перед тренировкой. Пробегите 1-2 километра по залу или по улице. Возьмите скакалку и попрыгайте минут 5-10. Обязательно хорошо разомните конечности, а также выполните наклоны и повороты туловища. Поскольку хук делается всем корпусом, важно,чтобы все мышцы были как следует разогреты, иначе можно запросто получить травму.

Научитесь правильно зажимать кулак. Сожмите пальцы настолько сильно, насколько можете. Теперь прислоните кулак к стене. Если все косточки полностью прижались к ней и составили ровную поверхность, тогда вы все выполнили правильно. Помните о том, что хук и все другие удары нужно наносить только первыми двумя косточками указательного и среднего пальцев.

Отработайте нанесение хука по воздуху. Итак, теперь пришло время изучить технику бокового удара. Немного согните ноги и правую руку в локте. Левая же рука находится около лица для защиты.

Сделайте небольшой поворот правым бедром и выбросьте руку немного вперед без сильного замаха. Хук наносится только на ближней и средней дистанции. Повторите то же самое движение и левой рукой. Правая рука находится на защите лица, делается скрутка левого бедра, а левая рука наносит боковой удар.

Закрепите приобретенный навык. После нескольких десятков разминочных ударов по воздуху приступите к отработке хука на груше. Обязательно намотайте на руки бинты и наденьте перчатки. Встаньте лицом перед грушей (мешком) и повторите то же самое движение, что и на разминке. Делайте поочередно боковые удары левой и правой рукой без замаха.

Начните применять этот удар в спаррингах и боях. Помните, что самые эффективные места поражения для хука – челюсть и печень. Поэтому когда вы будете работать с партнером, старайтесь в ближнем бою пользоваться именно этими уязвимыми местами и отработать данный боковой удар.


Реальная задача

Совсем чуть-чуть теории


Суть хукинга — заставить программу поверить, что нужная ей функция находится в другом месте.


Пару слов о Microsoft Detours

Закрыта
Стоит приличных денег для коммерческого использования или х64-архитектуры

В целом, я бы посоветовал начинать изучение хуков именно с Detours — если это будет всего лишь вашим разовым развлечением, то этого вполне хватит, у вас быстро всё получится и вам понравится. Если же хуки понадобятся в серьёзном проекте — вы легко переключитесь на бесплатные и открытые (но чуть более сложные) библиотеки типа mhook, купите Detours или напишете свой велосипед (для последних двух решений нужны весьма веские причины).
О том где взять и как собрать Detours я писал вот тут.

Хитрый план

  1. Понять, на какую функцию ставить хук.
  2. Сделать свою библиотеку с функцией, которая будет заменять исходную и делать нужные нам вещи.
  3. Установить хук (загрузить библиотеку в память нужного процесса и переставить указатель на нужную нам функцию).
  4. PROFIT!

Куда ставить хук

  1. Вместо SendMessage может использоваться PostMessage или что-то еще
  2. SendMessage может быть вообще не функцией, а макросом, ссылающимся на другую функцию (в дальнейшем мы увидим, что так оно и есть)
  3. Firefox, как некоторые кроссплатформенные приложения, может вообще не использовать функции Windows для рисования стандартных элементов окна, используя вместо этого какие-то собственные кросплатформенные элементы GUI (к счастью, это не так — но вдруг!)

Переходим в Firefox, открываем Хабр, дожидаемся изменения заголовка на нужный и возвращаемся в Api Monitor чтобы остановить мониторинг. Скорее всего, вы будете удивлены количеством вызванных функций — их могут быть сотни тысяч буквально за несколько секунд мониторинга. А мы ведь еще и следим далеко не за всем. Да-да, это всё реально происходит внутри безобидного открытия всего одного сайта в браузере! А вы еще жалуетесь, что эта пара секунд — слишком долго. :)


Делаем свою библиотеку


5. Компилируем проект: Build -> Build Solution. На выходе получаем длл-ку (пусть будет называться hooktest.dll)

Давайте разберем исходник. В начале мы подключаем заголовочные файлы Windows (чтобы пользоваться функцией SendMessageW) и Detours (чтобы иметь возможность ставить\снимать хуки).
В сложной на первый взгляд строке №3 мы всего лишь сохраняем реальный указатель на функцию SendMessageW в переменную TrueSendMessageW. Это нам понадобиться для двух целей:

Функция DllMain вызывается операционной системой в определенных случаях — например, в моменты аттача\детача библиотеки к процессу. Тут тоже всё просто. В момент аттача нам нужно установить хуки, в момент детача — снять. Библиотека Detour требует делать это транзакциями, и в этом есть смысл — представьте себе что будет, если сразу несколько желающих захотят поставить хуки в один процесс. Самое важное в этом коде это строка

Читайте также: