
28.03.2019, 20:13
|
|
Постоянный
Регистрация: 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
)
;
адрес
,
количество нопов
|
|
|