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

  #1  
Старый 17.06.2019, 00:58
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

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

Здравствуйте) Хотелось бы посоветовать использовать след. WinAPI ф-ции
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa
Пример использования в собейте
https://github.com/BlastHackNet/mod...6f567b5391b0b2a6dc8/src/cheat_funcs.cpp#L3102
https://github.com/BlastHackNet/mod...b6325e566f567b5391b0b2a6dc8/src/samp.cpp#L178

Только не забывайте, что такая арифметика в языке С иногда не работает так, как предполагается: арифметика указателей в C всегда автоматически масштабируется под размер объектов, на которые ссылается указатель
Спасибо за всё, но я так нифига и не понял.

Объясняю свою ситуацию. Я прочитал на различных форумах, как искать базовый адрес (ну + смещения и указатели) и начал искать базовый адрес информации игрока (SAMP), чтобы он него оттолкнуться и найти твой текущий ID (и я его нашёл). Выглядит оно примерно так (в кавычках БА): [samp.dll + 0x151434] + 0x2F1C -> указатель на ID. Теперь хочу написать на С++ программу, которая будет искать мой ID и сохранять его в какую-либо переменную (через ReadProcessMemory). Суть в том, что надо искать смещение для "samp.dll". Пожалуйста, покажите какой-либо готовый код (он же там не длинный), либо функцию, которая, зная хэндл ГТАшки, кидает мне БА сампа.длл. Буду очень благодарен =)
 
Ответить с цитированием

  #2  
Старый 17.06.2019, 19:28
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

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

Спасибо за всё, но я так нифига и не понял.

Объясняю свою ситуацию. Я прочитал на различных форумах, как искать базовый адрес (ну + смещения и указатели) и начал искать базовый адрес информации игрока (SAMP), чтобы он него оттолкнуться и найти твой текущий ID (и я его нашёл). Выглядит оно примерно так (в кавычках БА): [samp.dll + 0x151434] + 0x2F1C -> указатель на ID. Теперь хочу написать на С++ программу, которая будет искать мой ID и сохранять его в какую-либо переменную (через ReadProcessMemory). Суть в том, что надо искать смещение для "samp.dll". Пожалуйста, покажите какой-либо готовый код (он же там не длинный), либо функцию, которая, зная хэндл ГТАшки, кидает мне БА сампа.длл. Буду очень благодарен =)
UP
 
Ответить с цитированием

  #3  
Старый 17.06.2019, 14:28
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

как можно изменить 3dText c какимто айдишником?
 
Ответить с цитированием

  #4  
Старый 17.06.2019, 14:40
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

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

как можно изменить 3dText c какимто айдишником?
C++:





Код:
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
ID
]
 
Ответить с цитированием

  #5  
Старый 17.06.2019, 14:45
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

C++:





Код:
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
ID
]

я так делал, не выходит, это просто информация
 
Ответить с цитированием

  #6  
Старый 17.06.2019, 14:53
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

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

я так делал, не выходит, это просто информация
Я не понял, что ты хочешь
 
Ответить с цитированием

  #7  
Старый 17.06.2019, 16:42
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

Я не понял, что ты хочешь
У меня есть айди 3d текста который пришел с сервера, мне нужно изменить в нём текст, и установить другую максимальную дальность видимости текста, хукать RPC и изменять данные RPC пакета не вариант потому что плагин могут загрузить когда RPC уже придет, поэтому я прохожусь по всем 3dtext там и ищу нужній мне и после того когда я нашел нужнужный я хочу изменить в нём текст, и установить другую максимальную дальность видимости текста
 
Ответить с цитированием

  #8  
Старый 17.06.2019, 18:36
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

C++:





Код:
bool
CALLBACK
incomingRPC
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrClientMessage
)
{
size_t len
;
DWORD color
;
char
zq_message
[
256
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
len
)
;
params
->
bitStream
->
Read
(
zq_message
,
len
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
zq_message
[
len
]
=
'\0'
;
// strstr(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!")
if
(
!
strcmp
(
zq_message
,
"[Информация] {FFFFFF}Поздравляю! Теперь этот дом"
)
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Вы купили дом за 1.3124 мс."
)
;
}
}
;
return
true
;
}


не работает, сообщение 100% правильное
 
Ответить с цитированием

  #9  
Старый 17.06.2019, 18:44
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

C++:





Код:
bool
CALLBACK
incomingRPC
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
ScriptRPCEnumeration
::
RPC_ScrClientMessage
)
{
size_t len
;
DWORD color
;
char
zq_message
[
256
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
color
)
;
params
->
bitStream
->
Read
(
len
)
;
params
->
bitStream
->
Read
(
zq_message
,
len
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
zq_message
[
len
]
=
'\0'
;
// strstr(zq_message, "[Информация] {FFFFFF}Поздравляю! Теперь этот бизнес ваш!")
if
(
!
strcmp
(
zq_message
,
"[Информация] {FFFFFF}Поздравляю! Теперь этот дом"
)
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"Вы купили дом за 1.3124 мс."
)
;
}
}
;
return
true
;
}


не работает, сообщение 100% правильное
замени !strcmp на strstr
 
Ответить с цитированием

  #10  
Старый 17.06.2019, 18:46
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

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

замени !strcmp на strstr
Не работает
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.