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

  #23  
Старый 28.03.2019, 20:13
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

Полезные функции для работы с памятью:

C++:





Код:
void
WriteMemory
(
void
*
address
,
void
*
bytes
,
int
byteSize
)
{
DWORD NewProtection
;
VirtualProtect
(
address
,
byteSize
,
PAGE_EXECUTE_READWRITE
,
&
NewProtection
)
;
memcpy
(
address
,
bytes
,
byteSize
)
;
VirtualProtect
(
address
,
byteSize
,
NewProtection
,
&
NewProtection
)
;
}


C++:





Код:
void
nop_
(
PVOID address
,
int
bytes
)
{
DWORD NewProtection
;
VirtualProtect
(
address
,
bytes
,
PAGE_EXECUTE_READWRITE
,
&
NewProtection
)
;
memset
(
address
,
0x90
,
bytes
)
;
VirtualProtect
(
address
,
bytes
,
NewProtection
,
&
NewProtection
)
;
}


пример:

C++:





Код:
WriteMemory
(
(
void
*
)
0x004BA3B9
,
(
uint8_t
*
)
"\xE9\xA7\x03\x00\x00"
,
5
)
;
// адрес в котором будем изменять память, какие байты пойдут туда, размер(количество байт)
nop_
(
(
void
*
)
(
0x004BA3B9
)
,
1
)
;
адрес
,
количество нопов
 
Ответить с цитированием