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

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

Репутация: 3


По умолчанию

если кто-то подменяет вмт условного ракклиента, то я смогу вызвать виртуальный метод, по указателю на ракклиент (CNetGame + 0x3C9)?
 
Ответить с цитированием

  #2  
Старый 30.08.2023, 11:37
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Цитата:
Сообщение от why ega  

если кто-то подменяет вмт условного ракклиента, то я смогу вызвать виртуальный метод, по указателю на ракклиент (CNetGame + 0x3C9)?
Ну да ты просто сам хук вызовешь
 
Ответить с цитированием

  #3  
Старый 06.09.2023, 21:41
Z3roKwq
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами: 2315345

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

Помогите переписать no gears с луа

Lua:





Код:
if
isCharInAnyCar
(
PLAYER_PED
)
then
header
=
getCarModel
(
storeCarCharIsInNoSave
(
PLAYER_PED
)
)
header
=
memory
.
getint32
(
header
*
0x4
+
0xA9B0C8
,
false
)
header
=
memory
.
getint16
(
header
+
0x4A
,
false
)
memory
.
setint8
(
header
*
0xE0
+
0xC2B9DC
+
0x74
,
1
,
false
)
end


пробовал

C++:





Код:
typedef
unsigned
long
Uint
;
inline
Uint
bit_set
(
Uint number
,
Uint n
)
{
return
number
|
(
(
Uint
)
1

getSAMP
(
)
->
getVehicles
(
)
->
sampVehicle
[
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
localPlayerInfo
.
data
->
inCarData
.
vehicleId
]
->
gtaVehicle
->
base
.
model_alt_id
;
car_model
=
readUInt32FromMemory
(
reinterpret_cast

(
car_model
*
0x4
+
0xA9B0C8
)
)
;
car_model
=
readUInt16FromMemory
(
reinterpret_cast

(
car_model
+
0x4A
)
)
;
bit_set
(
(
car_model
*
0xE0
+
0xC2B9DC
+
0x74
)
,
1
)
;
}


но результата не дало
 
Ответить с цитированием

  #4  
Старый 06.09.2023, 22:27
Digger Man52
Познавший АНТИЧАТ
Регистрация: 14.07.2019
Сообщений: 1,097
С нами: 3596877

Репутация: 183


По умолчанию

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

Помогите переписать no gears с луа

Lua:





Код:
if
isCharInAnyCar
(
PLAYER_PED
)
then
header
=
getCarModel
(
storeCarCharIsInNoSave
(
PLAYER_PED
)
)
header
=
memory
.
getint32
(
header
*
0x4
+
0xA9B0C8
,
false
)
header
=
memory
.
getint16
(
header
+
0x4A
,
false
)
memory
.
setint8
(
header
*
0xE0
+
0xC2B9DC
+
0x74
,
1
,
false
)
end


пробовал

C++:





Код:
typedef
unsigned
long
Uint
;
inline
Uint
bit_set
(
Uint number
,
Uint n
)
{
return
number
|
(
(
Uint
)
1

getSAMP
(
)
->
getVehicles
(
)
->
sampVehicle
[
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
localPlayerInfo
.
data
->
inCarData
.
vehicleId
]
->
gtaVehicle
->
base
.
model_alt_id
;
car_model
=
readUInt32FromMemory
(
reinterpret_cast

(
car_model
*
0x4
+
0xA9B0C8
)
)
;
car_model
=
readUInt16FromMemory
(
reinterpret_cast

(
car_model
+
0x4A
)
)
;
bit_set
(
(
car_model
*
0xE0
+
0xC2B9DC
+
0x74
)
,
1
)
;
}


но результата не дало
а че за readUInt16FromMemory , покажи реализацию
 
Ответить с цитированием

  #5  
Старый 06.09.2023, 22:32
Z3roKwq
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами: 2315345

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

Цитата:
Сообщение от Digger Man  

а че за readUInt16FromMemory , покажи реализацию
C++:





Код:
uint16_t
readUInt16FromMemory
(
void
*
address
)
{
uint16_t
value
;
std
::
memcpy
(
&
value
,
address
,
sizeof
(
uint16_t
)
)
;
return
value
;
}
uint32_t
readUInt32FromMemory
(
void
*
address
)
{
uint32_t
value
;
std
::
memcpy
(
&
value
,
address
,
sizeof
(
uint32_t
)
)
;
return
value
;
}


с чтением и "сложением" проблем нету, как я понял дело имени в записи "итогового" адреса
 
Ответить с цитированием

  #6  
Старый 07.09.2023, 09:25
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

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

C++:





Код:
uint16_t
readUInt16FromMemory
(
void
*
address
)
{
uint16_t
value
;
std
::
memcpy
(
&
value
,
address
,
sizeof
(
uint16_t
)
)
;
return
value
;
}
uint32_t
readUInt32FromMemory
(
void
*
address
)
{
uint32_t
value
;
std
::
memcpy
(
&
value
,
address
,
sizeof
(
uint32_t
)
)
;
return
value
;
}


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

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

Помогите переписать no gears с луа

Lua:





Код:
if
isCharInAnyCar
(
PLAYER_PED
)
then
header
=
getCarModel
(
storeCarCharIsInNoSave
(
PLAYER_PED
)
)
header
=
memory
.
getint32
(
header
*
0x4
+
0xA9B0C8
,
false
)
header
=
memory
.
getint16
(
header
+
0x4A
,
false
)
memory
.
setint8
(
header
*
0xE0
+
0xC2B9DC
+
0x74
,
1
,
false
)
end


пробовал

C++:





Код:
typedef
unsigned
long
Uint
;
inline
Uint
bit_set
(
Uint number
,
Uint n
)
{
return
number
|
(
(
Uint
)
1

getSAMP
(
)
->
getVehicles
(
)
->
sampVehicle
[
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
localPlayerInfo
.
data
->
inCarData
.
vehicleId
]
->
gtaVehicle
->
base
.
model_alt_id
;
car_model
=
readUInt32FromMemory
(
reinterpret_cast

(
car_model
*
0x4
+
0xA9B0C8
)
)
;
car_model
=
readUInt16FromMemory
(
reinterpret_cast

(
car_model
+
0x4A
)
)
;
bit_set
(
(
car_model
*
0xE0
+
0xC2B9DC
+
0x74
)
,
1
)
;
}


но результата не дало
мб твоя функа isLocalPlayerInCar ***ня?
 
Ответить с цитированием

  #7  
Старый 07.09.2023, 10:51
Z3roKwq
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами: 2315345

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

Цитата:
Сообщение от F0RQU1N and  

нихуя чо ты придумал а зачем

мб твоя функа isLocalPlayerInCar ***ня?
Пхах, неа, функа нормально работает, чтение из памяти тоже, проблема именно с записью
 
Ответить с цитированием

  #8  
Старый 07.09.2023, 23:46
al3x_
Участник форума
Регистрация: 29.12.2016
Сообщений: 124
С нами: 4931888

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

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

Помогите переписать no gears с луа

Lua:





Код:
if
isCharInAnyCar
(
PLAYER_PED
)
then
header
=
getCarModel
(
storeCarCharIsInNoSave
(
PLAYER_PED
)
)
header
=
memory
.
getint32
(
header
*
0x4
+
0xA9B0C8
,
false
)
header
=
memory
.
getint16
(
header
+
0x4A
,
false
)
memory
.
setint8
(
header
*
0xE0
+
0xC2B9DC
+
0x74
,
1
,
false
)
end


пробовал

C++:





Код:
typedef
unsigned
long
Uint
;
inline
Uint
bit_set
(
Uint number
,
Uint n
)
{
return
number
|
(
(
Uint
)
1

getSAMP
(
)
->
getVehicles
(
)
->
sampVehicle
[
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
localPlayerInfo
.
data
->
inCarData
.
vehicleId
]
->
gtaVehicle
->
base
.
model_alt_id
;
car_model
=
readUInt32FromMemory
(
reinterpret_cast

(
car_model
*
0x4
+
0xA9B0C8
)
)
;
car_model
=
readUInt16FromMemory
(
reinterpret_cast

(
car_model
+
0x4A
)
)
;
bit_set
(
(
car_model
*
0xE0
+
0xC2B9DC
+
0x74
)
,
1
)
;
}


но результата не дало
C++:





Код:
auto
car
{
*
reinterpret_cast

(
0xBA18FC
)
}
;
if
(
car
)
{
auto
model_id
{
*
reinterpret_cast

(
car
+
0x22
)
}
;
auto
model
{
*
reinterpret_cast

(
model_id
*
0x4
+
0xA9B0C8
)
}
;
auto
handling_id
{
*
reinterpret_cast

(
model
+
0x4A
)
}
;
*
reinterpret_cast

(
handling_id
*
0xE0
+
0xC2B9DC
+
0x74
)
=
1
;
}
 
Ответить с цитированием

  #9  
Старый 10.09.2023, 14:34
Z3roKwq
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами: 2315345

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

В какой то момент появилась проблема с компиляцией, искал в инете, ответов не нашел

Собственно сама проблема:



Использую: CLion + Visual Studio (компилер) + Ninja + CMake
 
Ответить с цитированием

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

Репутация: 3


По умолчанию

На что лучше стоит ставить хук по мимо конструкторов, чтобы проверить, что доступны методы ракпира? CHud:rawRadar вызывается уже после того, как персонаж заспавнился, а проверка на CNetGame в CTimer::Update и последующая установка хука после первого вызова не хочет работать на методе RakPeer:Receive (тупо крашит, даже если юзать задержку)
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.