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

  #6  
Старый 15.10.2024, 00:33
moreveal
Постоянный
Регистрация: 01.08.2020
Сообщений: 988
С нами: 3043831

Репутация: 163


По умолчанию

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

плюсы:





Код:
const
uintptr_t address_vehicle
=
reinterpret_cast

(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40D
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
6
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast

(
address_vehicle
)
=
20000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
6
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;


попытался захавать твою инфу с объяснением, попытался че то сделать с чтобы поменять 611 -> 20000 но дальше краша не ушел
ты меняешь значение 263, это "63 02 00 00" (числа хранятся в обратном порядке, поэтому так - с десяткой было попроще), адрес 0xE040D начинается с "3D 63 02 00", т.е ты инструкцию перезатрешь, а тебе нужно 1 байт отступить:

0x0E40D + 0x01 (0x0E40E)

ну и точно также снять защиту с 4 байт, а не с 6, но это особо роли не сыграет
 
Ответить с цитированием