Показать сообщение отдельно

  #3  
Старый 18.09.2021, 15:25
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

Цитата:
Сообщение от #Northn  

последний аргумент -- false, соответственно протекцию снимать не нужно.
Значит, тебе достаточно просто использовать это:

C++:





Код:
*
reinterpret_cast

(
0x969152
)
=
1
;


А так, если ты хочешь повторить код как на луа:

C++:





Код:
template

void
writeMem
(
uintptr_t address
,
T value
,
bool
unprotect
=
false
)
{
DWORD old_protection
;
auto
address_
=
reinterpret_cast

(
address
)
;
if
(
unprotect
)
VirtualProtect
(
address_
,
sizeof
(
value
)
,
PAGE_EXECUTE_READWRITE
,
&
old_protection
)
;
memcpy
(
&
value
,
address_
,
sizeof
(
value
)
)
;
if
(
unprotect
)
VirtualProtect
(
address_
,
sizeof
(
value
)
,
old_protection
,
&
old_protection
)
;
}

Ты в value записуешь байты из _address?
 
Ответить с цитированием