HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.10.2024, 17:43
NOOBDEV
Новичок
Регистрация: 27.09.2024
Сообщений: 2
С нами: 858979

Репутация: 1
По умолчанию

Всем привет! Подскажите пожалуйста, пишу 1 плагин и пытаюсь разобраться с чего начать.

Ссылка на готовый проект с плагином ASI: https://www.blast.hk/threads/219800/

Взял за основу его. Что делать дальше не пойму.

Как обратиться к адресам и заменить их на свое, и чтобы игра закрывалась если не совпадает ип

Цитата:
Сообщение от Спойлер  

1728826934690.pngNOOBDEV · 13 Окт 2024 в 16:43' data-fancybox="lb-post-1548634" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/254079/" style="cursor: pointer;" title="1728826934690.png">


Я так понял это момент подключения серверу, как сделать чтобы вместо SAMP Started - писало мой текст, видел украинский исходник асишник, но не получается его запустить
 
Ответить с цитированием

  #2  
Старый 13.10.2024, 18:19
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от NOOBDEV  

Всем привет! Подскажите пожалуйста, пишу 1 плагин и пытаюсь разобраться с чего начать.

Ссылка на готовый проект с плагином ASI: https://www.blast.hk/threads/219800/
Взял за основу его. Что делать дальше не пойму.
Как обратиться к адресам и заменить их на свое, и чтобы игра закрывалась если не совпадает ип
Цитата:
Сообщение от Спойлер  


Я так понял это момент подключения серверу, как сделать чтобы вместо SAMP Started - писало мой текст, видел украинский исходник асишник, но не получается его запустить
Для начала укажи, под какую версию сампа ты делаешь плагин (можно и под несколько, но если делаешь клиент проекта, то зачастую лучше остановиться на 1, ибо расширение функционала будет боль)

Чтобы заменить надпись в чате, тебе надо найти, где samp.dll берет указатель на эту надпись. На R3 это 0xB7C5 (команда push состоит из 5 байт, первый обозначает саму команду, а остальные адрес строки, поэтому 0xB7C4 + 0x1)1728827852170.pngвайега52 · 13 Окт 2024 в 17:19' data-fancybox="lb-post-1548675" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/254083/" style="cursor: pointer;" title="1728827852170.png">

Для работы с памятью я буду использовать memwrapper:

C++:





Код:
// будем использовать функцию, которая будет копировать строку из плагина в адресное пространство gta_sa.exe
// это поможет в случае выгрузки плагина не крашнуть игру
void
write_allocate_string
(
std
::
string str
,
std
::
uintptr_t address
)
{
void
*
allocAddress
=
VirtualAlloc
(
nullptr
,
str
.
size
(
)
,
MEM_COMMIT
,
PAGE_READWRITE
)
;
memcpy
(
allocAddress
,
str
.
c_str
(
)
,
str
.
size
(
)
)
;
// при этом, нам никто не мешает использовать сразу запись по адресу нашей строки, находящейся внутри памяти нашего плагина
memwrapper
::
write_memory
(
address
,
allocAddress
)
;
}
auto
samp_base
=
reinterpret_cast

(
GetModuleHandleA
(
"samp.dll"
)
)
;
write_allocate_string
(
samp_base
+
0xB7C5
,
"Моя *****тая надпись1336"
)
;


Для проверки на айпи сервера тебе надо ставить хук на какую-то из функций сампа, отвечающую за коннект, к примеру RakClient::Connect (r3: 0x339F0). Для этого можешь использовать библиотеки по типу kthook
 
Ответить с цитированием

  #3  
Старый 14.10.2024, 00:14
kudr_van
Новичок
Регистрация: 15.11.2021
Сообщений: 7
С нами: 2366020

Репутация: 3
По умолчанию

Цитата:
Сообщение от whyega52  

Для начала укажи, под какую версию сампа ты делаешь плагин (можно и под несколько, но если делаешь клиент проекта, то зачастую лучше остановиться на 1, ибо расширение функционала будет боль)
Чтобы заменить надпись в чате, тебе надо найти, где samp.dll берет указатель на эту надпись. На R3 это 0xB7C5 (команда push состоит из 5 байт, первый обозначает саму команду, а остальные адрес строки, поэтому 0xB7C4 + 0x1) Для работы с памятью я буду использовать memwrapper:

C++:





Код:
// будем использовать функцию, которая будет копировать строку из плагина в адресное пространство gta_sa.exe
// это поможет в случае выгрузки плагина не крашнуть игру
void
write_allocate_string
(
std
::
string str
,
std
::
uintptr_t address
)
{
void
*
allocAddress
=
VirtualAlloc
(
nullptr
,
str
.
size
(
)
,
MEM_COMMIT
,
PAGE_READWRITE
)
;
memcpy
(
allocAddress
,
str
.
c_str
(
)
,
str
.
size
(
)
)
;
// при этом, нам никто не мешает использовать сразу запись по адресу нашей строки, находящейся внутри памяти нашего плагина
memwrapper
::
write_memory
(
address
,
allocAddress
)
;
}
auto
samp_base
=
reinterpret_cast

(
GetModuleHandleA
(
"samp.dll"
)
)
;
write_allocate_string
(
samp_base
+
0xB7C5
,
"Моя *****тая надпись1336"
)
;


Для проверки на айпи сервера тебе надо ставить хук на какую-то из функций сампа, отвечающую за коннект, к примеру RakClient::Connect (r3: 0x339F0). Для этого можешь использовать библиотеки по типу kthook
браток, а как еще можно находить адреса ?) оффсеты ?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...