
22.03.2021, 23:41
|
|
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами:
4598023
Репутация:
183
|
|
Сообщение от Разраб ИИ
Спасибо за ответ , я вам очень признателен , теперь буду юзать VirtualProtectEx ну или просто переделаю ReadProcessMemory c встроенным VirtualProtectEx в нее🥸🤠 это должно уменьшить код ) .
[S]Про стиль общения это маска дабы общение было приятным[/S] ( 🥷[S]я не такой[/S]🥷 ) . 🤩 🥰 😀
Вот такое есть готовое решение с использованием шаблонов (template). Просто в начало кода закинуть эти функции.
C++:
Код:
template
T
readMem
(
DWORD address
)
{
T buffer
;
DWORD oldProtect
=
0
;
VirtualProtectEx
(
process
,
(
void
*
)
address
,
sizeof
(
buffer
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
ReadProcessMemory
(
process
,
(
void
*
)
address
,
&
buffer
,
sizeof
(
buffer
)
,
0
)
;
VirtualProtectEx
(
process
,
(
void
*
)
address
,
sizeof
(
buffer
)
,
oldProtect
,
NULL
)
;
return
buffer
;
}
template
void
writeMem
(
DWORD address
,
T value
)
{
DWORD oldProtect
=
0
;
VirtualProtectEx
(
process
,
(
void
*
)
address
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
WriteProcessMemory
(
process
,
(
void
*
)
address
,
&
value
,
sizeof
(
value
)
,
0
)
;
VirtualProtectEx
(
process
,
(
void
*
)
address
,
sizeof
(
value
)
,
oldProtect
,
NULL
)
;
}
Использовать его вот так:
C++:
Код:
auto
money
=
readMem
(
0xB6F5F0
)
;
// int – тип данных. обязательно надо указывать
(этот код запишет в moneyтвоё состояние, в смысле сколько денег)
Или вот так:
C++:
Код:
auto
CPed
=
readMem
(
0xB6F5F0
)
;
// DWORD указывать, чтобы знать какой тип данных надо считать.
float
health
=
55.0
;
writeMem
(
CPed
+
0x540
,
health
)
;
// float так же обязательно надо указывать.
(а этот изменит твоё здоровье до 55 единиц)
Сообщение от Спойлер
Просто и со вкусом
|
|
|