 |
|

03.01.2025, 21:16
|
|
Познающий
Регистрация: 22.12.2018
Сообщений: 72
С нами:
3890632
Репутация:
63
|
|
говнокод, для тестов:
Код:
void
removeVehicleLimits
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40E
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits2
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F440
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits3
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F46B
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits4
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5461
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits5
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5501
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits6
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA55A1
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits7
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5641
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
void
removeVehicleLimits8
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xB2D2F
)
;
DWORD dwOldProtect_veh
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect_veh
)
;
*
reinterpret_cast
(
address_vehicle
)
=
30000
;
VirtualProtect
(
(
LPVOID
)
address_vehicle
,
4
,
dwOldProtect_veh
,
&
dwOldProtect_veh
)
;
}
(я знаю что код ***ня, не пишите, это ток для тестов)
ида:
Код:
0x0E40E
cmp eax
,
263
h
0x9F3AE
cmp ax
,
263
h
0x9F440
cmp ax
,
263
h
0x9F46B
cmp ax
,
263
h
0xA5461
cmp edx
,
263
h
0xA5501
cmp edx
,
263
h
0xA55A1
cmp edx
,
263
h
0xA5641
cmp edx
,
263
h
0xB2D2F
cmp ax
,
263
h
0xB752F
cmp ax
,
263
h
(в адресах уже есть смещение на 1байт)
нашел все конструкции через ida pro под самп р3, которые содержат 263h (611) и решил прост заменить их на 30000 тем самым обойдя проверку тачек больше, чем 611, но игра прост виснет про спавне тачки вне 611, 12503 допустим, дело в том что я чет нахуячил в памяти или нет?
|
|
|

03.01.2025, 22:45
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
При случае cmp eax, 263h ты затираешь байты инструкции cmp, надо патчить байты на address_vehicle + 1.
При случае cmp ax, 263h там вообще ужас будет, там вся инструкция ломается, т.к ax - регистр размером 2 байта, а ты указываешь int32_t.
И вообще зачем все места трогать? Найди одно нужное и меняй там.
|
|
|

03.01.2025, 22:56
|
|
Познающий
Регистрация: 22.12.2018
Сообщений: 72
С нами:
3890632
Репутация:
63
|
|
При случае cmp eax, 263h ты затираешь байты инструкции cmp, надо патчить байты на address_vehicle + 1.
Код:
Код:
*reinterpret_cast(address_vehicle+1) = 30000;
?
При случае cmp ax, 263h там вообще ужас будет, там вся инструкция ломается, т.к ax - регистр размером 2 байта, а ты указываешь int32_t.
int16_t?
И вообще зачем все места трогать? Найди одно нужное и меняй там.
пару адресов действительно были лишними, а так по большей части тут не один нужен, а несколько
|
|
|

03.01.2025, 23:01
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
Сообщение от nonelike
Код:
Код:
*reinterpret_cast(address_vehicle+1) = 30000;
?
int16_t?
пару адресов действительно были лишними, а так по большей части тут не один нужен, а несколько
Ну типа того.
|
|
|

03.01.2025, 23:11
|
|
Познающий
Регистрация: 22.12.2018
Сообщений: 72
С нами:
3890632
Репутация:
63
|
|
Сообщение от fuflexxxx
Ну типа того.
говнокод, для тестов:
Код:
void
removeVehicleLimits
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40E
)
;
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"
)
)
+
(
0x9F440
)
;
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
removeVehicleLimits3
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F46B
)
;
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
removeVehicleLimits4
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5461
)
;
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
removeVehicleLimits5
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5501
)
;
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
removeVehicleLimits6
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA55A1
)
;
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
removeVehicleLimits7
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5641
)
;
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
removeVehicleLimits8
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xB2D2F
)
;
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
)
;
}
виснет также при спавне тачки..
|
|
|

03.01.2025, 23:22
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
Сообщение от nonelike
говнокод, для тестов:
Код:
void
removeVehicleLimits
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40E
)
;
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"
)
)
+
(
0x9F440
)
;
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
removeVehicleLimits3
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x9F46B
)
;
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
removeVehicleLimits4
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5461
)
;
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
removeVehicleLimits5
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5501
)
;
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
removeVehicleLimits6
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA55A1
)
;
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
removeVehicleLimits7
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5641
)
;
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
removeVehicleLimits8
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xB2D2F
)
;
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
)
;
}
виснет также при спавне тачки..
Забыл уточнить, что для cmp ax, 263h надо addr + 2 делать.

|
|
|

03.01.2025, 23:28
|
|
Познающий
Регистрация: 22.12.2018
Сообщений: 72
С нами:
3890632
Репутация:
63
|
|
Сообщение от fuflexxxx
Забыл уточнить, что для cmp ax, 263h надо addr + 2 делать.
говнокод, для тестов:
Код:
void
removeVehicleLimits
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0x0E40E
)
;
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"
)
)
+
(
0x9F440
)
;
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"
)
)
+
(
0x9F46B
)
;
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"
)
)
+
(
0xA5461
)
;
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
removeVehicleLimits5
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5501
)
;
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
removeVehicleLimits6
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA55A1
)
;
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
removeVehicleLimits7
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xA5641
)
;
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
removeVehicleLimits8
(
)
{
const
uintptr_t address_vehicle
=
reinterpret_cast
(
GetModuleHandleA
(
"samp.dll"
)
)
+
(
0xB2D2F
)
;
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
)
;
}
виснет
|
|
|

03.01.2025, 23:34
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
Открывай иду, options -> General -> number of opcode bytes пиши 10.
Переходи к своей инструкции в асме и ищи там число 263. Смотри сколько до него байт и делай addr + n. Крашит оно как раз в cmp edx, 263 ибо там для них выставлен addr + 1, а надо addr + 2 тоже исходя из скрина.
|
|
|

03.01.2025, 23:46
|
|
Познающий
Регистрация: 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
)
;
}
перепроверил везде, теперь должно стоять верно по байтам, но все равно зависает
(спасибо что научил смотреть байты)
|
|
|

03.01.2025, 23:50
|
|
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами:
3119285
Репутация:
63
|
|
Проверь версию сампа. Проверь не конфликтуют ли твои изменения с другими плагинами, если они есть. А вообще лучше скачать Cheat engine или x64dbg и посмотреть какие там инструкции теперь на адресах.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|