|
Познающий
Регистрация: 22.12.2018
Сообщений: 72
С нами:
3890632
Репутация:
63
|
|
Сообщение от fuflexxxx
Открывай иду, options -> General -> number of opcode bytes пиши 10.
Переходи к своей инструкции в асме и ищи там число 263. Смотри сколько до него байт и делай addr + n. Крашит оно как раз в cmp edx, 263 ибо там для них выставлен addr + 1, а надо addr + 2 тоже исходя из скрина.
говнокод, для тестов:
Код:
void
removeVehicleLimits
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40D
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
1
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits2
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F43F
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits3
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F46A
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits4
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5460
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits5
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5500
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits6
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA55A0
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits7
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5640
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits8
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xB2D2E
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
+
2
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
перепроверил везде, теперь должно стоять верно по байтам, но все равно зависает
(спасибо что научил смотреть байты)
|