![]() |
Цитата:
|
найти его адресс и поставить на него хук. Плагин SDK в помощь.
|
Цитата:
— Покупаешь хлеб и жаришь. Сварочный аппарат в помощь. |
так оно и есть. Ты сказал что ты хочешь игровое событие словить, а их херовая туча и хорошо они описаны в плагин SDK
|
Цитата:
|
Цитата:
|
Цитата:
А как получить объекты, которые приходят в эту функцию? |
Цитата:
|
Цитата:
|
Могу тебе кинуть пример хука на urmem DoBulletImpact. По логике вещей должен код работать, но 100 процентной гарантии не даю ибо пишу не со своего компа и пишу без компилятора. Скажу сам, я сам до сих пор не особо в хуках разбираюсь.
C++: Код:
#include "urmem.hpp"Ссылка на urmem Ссылка на опредление метода DoBulletImpact и его адресс Скажу от себя еще. Этой либой я лично не ставил хуки на thiscall и все делал исключительно на свой глаз и код может быть не рабочим. |
Цитата:
Цитата:
Всем привет. В последнее время я стал замечать, что абсолютное большинство использует всякие готовые библиотеки для хуков, и даже не заморачиваются о строении функций, типах хуков и прочим. Как таковых гайдов очень мало, а если и есть - на английском языке. В этой теме я расскажу обо всем просто... www.blast.hk |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Код:
void |
Цитата:
kin4stat - Overview 20 y.o. student :). kin4stat has 55 repositories available. Follow their code on GitHub. github.com |
Цитата:
C++: Код:
//Убран код с подключением библиотек и mainloop().При каждом вызове перехватываемой функции должно отправляться сообщение в чат. В итоге игра запускается, другие функции (не хуки) из этого плагина работают, но сообщений в чате нет. Что я делаю неправильно? |
Цитата:
|
Цитата:
|
Цитата:
__fastcall на обе функции нужен |
Цитата:
Код:
//Убран код с подключением библиотек и mainloop().Вот так сделал, не работает. |
Цитата:
|
Цитата:
C++: Код:
urmemБез соглашения __fastcall тоже ничего. |
Цитата:
|
Цитата:
Код:
typedefC++: Код:
MH_CreateHook |
Цитата:
|
Насколько я понимаю, тебе для начала нужно понять как подключать статические/динамические библиотеки в целом.
Нашёл один гайдик на msdn, он как раз под твой случай, разве что он ориентирован на подключение библиотеки динамической компоновки (DLL). - Факин msdn (для начала стоит по нему пробежаться) Вроде бы я понял, что тебя именно надо, так что можешь попробовать следовать этому гайдику: 1) Сперва тебе надо получить .lib библиотеку для включения в проект, а также заголовки этой библиотеки (.h). 2) Дальше я попытаюсь объяснить как их получить, но потом ты должен их по своему желанию распределить в проекте по папкам. Например создашь папку sdk (ужасная практика, но пусть будет так). Далее в ней создашь папочку MinHook и туда вставишь заголовочные файлы и файл библиотеки по папкам (includes и Libs соответственно). Опять же подмечу - это ужасная практика, я ее не рекомендую даже знать. Желательно так всё распределить, чтобы при подключении можно было видеть откуда эта шняга, к примеру: #include Ниче сложного нет, но ты наверное потеряешь связь с реальностью после этого. Да и тем более проект не крупный. Так что мое предложение сойдет. 3) Давно не юзал минхук, но вроде помню, что изначально там нету файла либы (.lib). Тебе её надо получить. Идёшь в их репо на github, клонируешь его к себе. Берешь утилитку Cmake, фигачишь туда путь до CMakeList.txt и ставишь output каталог, можешь, к примеру, назвать как build2.0 (практика еще ужаснее, чем прошлая). По итогу: https://forum.antichat.xyz/attachments/27706104/ p.s: (это всё примеры, я на самом деле ниче не собирал, т.к мне лень. По памяти буду писать) Тыкаешь Configure с дефолт пресетами, если у тебя жизнь мёдом, то всё будет ок, а если будут траблы, то гугли. Помочь с пониманием того, какая у тебя жизнь, поможет лог снизу. Если там всё ДАН, то идешь дальше. https://forum.antichat.xyz/attachments/27706104/ 4) Идешь в папку build2.0, открываешь солюшн нашего минхука. Вроде minhook.sln или чёт такое, не помню. Собираешь солюшн (решение). Решений там дохуя наскок я помню. Все тебе их собирать вроде не нужно. Но т.к я не помню, что там за решения - собирай всё. Либо ищи minhook project, если он есть там, и собирай его. Шлёпаешь в папку под названием... ... Если ты нихуя не менял, то она должна называться как конфигурация, под которой ты всё билдил. Debug там, release и вся эта шняга. Вуаля, там лежит файл либы (статической). Копируешь этот файл в свой проект в папку sdk\MinHook\Libs\Этотфайл.lib 5) Где ты на*** будешь брать определения функций, если у тебя их нет. Идёшь как Херлок Шолмс искать файл заголовка/ов от минхука в той же папке, куда ты отдельно должен был склонировать их репо с github. Ищешь там папку include, в ней лежит MinHook.h. Копируешь его в свой проект: \свой проект\sdk\MinHook\includes\MinHook.h. Готово. 6) Тепешь идешь в проект -> Свойства проекта. Тут у нас есть отдельный котёл для наших либ. Для всего допотопного говна мелкомягкие (microsoft) предусмотрели отдельные 2 раздела в иерархии свойств проекта, специально для линковки ДОПОЛНИТЕЛЬНЫХ либ! Там всё тоже самое, но с оговоркой: либы тут ДОПОЛНИТЕЛЬНЫЕ. Грубо говоря это и есть те самые 2 котла для наших дополнительных: - Включаемых каталогов - Каталогов либ Они только имеют в названии "допольнительных"! Расположение: Доп.каталоги включаемых файлов: C/C++ -> Общие (General) (Сюда ты пихаешь путь sdk\MinHook\includes) Доп.каталоги либ: Компоновщик (Linker) -> Общие (General) (Сюды пихаешь sdk\MinHook\Libs) Далее тебе надо задать в Additional Dependency (я *** знает раздел, т.к вс не открыта). Поищи. Добавляешь название либы, которую ты получил с окончанием .lib 7) Идешь в файл с энтри поинтом или куда тебе там надо. В main.h может быть, я *** знает. И добавляешь MinHook.h Плюсом через прагма комментируешь объектный файл (про объектник тебе знать не надо, но ты делаешь именно это, эта препроцессорная директива оставит коммент для объектника о том: какое название либы, юзер коммент (то самое название либы), версия компилятора, опции для линкера и т.п) (#pragma comment(lib, "название_либы.lib")). И всё, можешь юзать всё из минхуков. Хочу подметить. Собирая это всё через gcc, он тебя пошлёт на***, т.к pragma comment - это фишка МелкоМягких. 8) Этот гайд написан новичком для новичка с целью осветить некоторые моменты, и самому въебать время на написание этой статьи. Но прийдется погуглить местами, т.к я наверное не всё описал. Хочу чтобы меня крутые дяди по 15 лет, которые шарят больше, чем я, и могут что-то дополнить, - сделать это. Хочу посмотреть чего я не знаю и просветиться. upd: по итогу я решил её собрать и подключить... BTW, эта d после разрядки - це debug версия значит. https://forum.antichat.xyz/attachments/27706104/ А ваще юзайте детур от мелкомягких, чё вы как лопухи. p.s: объезд.lib топ! src: - github minhook - кодпроджект (тут можно глянуть как в коде выглядит комментирование либы для объектника и юзание) - факин гуд тред о минхуке (старый вроде, p.s: забыл глянуть дату поста, перед тем как закрыть вкладку) |
Цитата:
|
Цитата:
2) Ты не так разбил по папкам. Надо иначе, ниже объяснил. Проект с гитхаба тебе нужно просто распаковать в любую другою папку. Но не в проект! И уж тем более не в SDK. SDK - это софт для разработки. Грубо говоря зависимости. Эта папка для зависимостей. А уже в ней есть папки MinHook и в ней Libs и includes. Ты должен собрать либу, которая у тебя должна быть абсолютно в другой папке. После чего ты получаешь файл либы и ищешь в папке github проекта хидер файлы .h. Их ты раскидываешь УЖЕ В СВОЙ проект в папку зависимостей - в нашем случае SDK/MinHook/Libs (для .lib), а SDK/MinHook/includes (для .h). Почему в build2.0 не появилось файла sln? Перепроверьте то, как вы указали пути в Cmake. Там где source - там должен быть путь до папки github проекта. Там где папка для сбилженых бинарников - там указываешь тот же путь, но создаешь новую папку (но она вроде и сама должна создаться). Например build2.0. Далее конфигурируешь через кнопку configure, там выбираешь версию vs которая у тебя стоит. После конфигурации нажимаешь Generate. Смотришь в лог снизу, чтобы было всё окей. Далее идешь в папку и там ищешь sln. Всё, дальше всё в гайде. |
Цитата:
|
Цитата:
|
Код:
Код:
urmem::hook urmemHookAimingCoords;так же посмотри какой там пролог, по стандарту должен быть 5 |
Цитата:
|
Цитата:
Цитата:
|
| Время: 05:55 |