![]() |
Братва, здарова. Как находить оффсеты для написания хуков ? Вот типо у меня есть samp.dll в IDA Free, что мне дальше делать чтобы получить оффсет ?
https://forum.antichat.xyz/attachments/28548922/ |
во-первых, удали иду фри и скачай кряк иды про, во-вторых, скачай готовые базы сампа и гта, и в-третьих, ктхуки
|
Цитата:
|
Цитата:
|
Поставим хук на добавление сообщений в чат на SAMP 0.3.7 R3 без готовой базы, а на основе только отсканированого samp.dll
1. Найдём место где отправляется любое сообщение в чат, проще всего будет взять какой-то статический текст по типу текста при скриншоте. Для этого генерируем строки с помощью нажатия Shift + F12, нас перекидывает в окно "Strings" https://forum.antichat.xyz/attachments/28551168/ Тут нажимаем на любую строку после чего Ctrl + F и ищем текст связаный с скриншотом. Нам нужна строка Цитата:
Нажимаем левой кнопкой мыши по выделеному на скриншоте тексту https://forum.antichat.xyz/attachments/28551168/ После чего нажимаем X ( икс ), и смотрим где в samp.dll вызывается данная строка. https://forum.antichat.xyz/attachments/28551168/ Видим что строка вызывается только один раз, это очень сильно облегчает нам задачу. Переходим к месту вызова нажав "OK" Нас перекидывает на смещение 10074FC7 где мы видим такую картину https://forum.antichat.xyz/attachments/28551168/ Код идёт как всегда сверху в низ и это значит что всё что сверху это параметры для функции sub_100678F0, значит эта функция отправляет сообщение о скриншоте в чат, посмотрим её в псевдокоде C нажав на F5 https://forum.antichat.xyz/attachments/28551168/ Тут видим что эта функция вызывается с параметрами ArgList, Текст формата сообщения, и значение для формата, в нашём случае значение формата это номер скриншота, а ArgList это указатель на CChat. Назовём пока что эту функцию SendDebugMessage, и двойным нажатием на её название перейдём в её псевдокод. https://forum.antichat.xyz/attachments/28551168/ Тут мы видим что функция форматирует строку которая передается вторым параметром и потом передает её в другую функцию, с другими параметрами. Значит эта функция занимается только форматированием, и передачей параметров в другую функцию sub_10067460, переименуем её в AddMessageToChat, перейдём в неё и посмотрим её псевдокод https://forum.antichat.xyz/attachments/28551168/ Тут видим сигнатуру функции Цитата:
https://forum.antichat.xyz/attachments/28551168/ Нас кидает сюда. Первым делом укажем возвращаемый тип данных void ( Потому что если мы перейдем по вызовам функции то увидим что функции которые её вызывают на самом деле не должны ничего возвращать. Дальше изменим int this на void* this, char* Source изменим на const char* szText, int a5 изменим на unsigned int nColor ( Потому что если полазить по вызовам функции то увидим что в функции sub_100679F0 она вызывается с параметром 0xFF000000, что скорее всего может являться цветом сообщения ) На выходе мы получаем сигнатуру Цитата:
https://forum.antichat.xyz/attachments/28551168/ |
Цитата:
|
Цитата:
|
Цитата:
|
| Время: 07:29 |