HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 03.01.2025, 21:16
nonelike
Познающий
Регистрация: 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 допустим, дело в том что я чет нахуячил в памяти или нет?
 
Ответить с цитированием

  #2  
Старый 03.01.2025, 22:45
fuflexxxx
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами: 3119285

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

При случае cmp eax, 263h ты затираешь байты инструкции cmp, надо патчить байты на address_vehicle + 1.

При случае cmp ax, 263h там вообще ужас будет, там вся инструкция ломается, т.к ax - регистр размером 2 байта, а ты указываешь int32_t.

И вообще зачем все места трогать? Найди одно нужное и меняй там.
 
Ответить с цитированием

  #3  
Старый 03.01.2025, 22:56
nonelike
Познающий
Регистрация: 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?

Цитата:

И вообще зачем все места трогать? Найди одно нужное и меняй там.
пару адресов действительно были лишними, а так по большей части тут не один нужен, а несколько
 
Ответить с цитированием

  #4  
Старый 03.01.2025, 23:01
fuflexxxx
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами: 3119285

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

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

Код:





Код:
*reinterpret_cast(address_vehicle+1) = 30000;


?

int16_t?

пару адресов действительно были лишними, а так по большей части тут не один нужен, а несколько
Ну типа того.
 
Ответить с цитированием

  #5  
Старый 03.01.2025, 23:11
nonelike
Познающий
Регистрация: 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
)
;
}


виснет также при спавне тачки..
 
Ответить с цитированием

  #6  
Старый 03.01.2025, 23:22
fuflexxxx
Познающий
Регистрация: 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 делать.





 
Ответить с цитированием

  #7  
Старый 03.01.2025, 23:28
nonelike
Познающий
Регистрация: 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
)
;
}


виснет
 
Ответить с цитированием

  #8  
Старый 03.01.2025, 23:34
fuflexxxx
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами: 3119285

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

Открывай иду, options -> General -> number of opcode bytes пиши 10.



Переходи к своей инструкции в асме и ищи там число 263. Смотри сколько до него байт и делай addr + n. Крашит оно как раз в cmp edx, 263 ибо там для них выставлен addr + 1, а надо addr + 2 тоже исходя из скрина.
 
Ответить с цитированием

  #9  
Старый 03.01.2025, 23:46
nonelike
Познающий
Регистрация: 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
)
;
}


перепроверил везде, теперь должно стоять верно по байтам, но все равно зависает

(спасибо что научил смотреть байты)
 
Ответить с цитированием

  #10  
Старый 03.01.2025, 23:50
fuflexxxx
Познающий
Регистрация: 10.06.2020
Сообщений: 37
С нами: 3119285

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

Проверь версию сампа. Проверь не конфликтуют ли твои изменения с другими плагинами, если они есть. А вообще лучше скачать Cheat engine или x64dbg и посмотреть какие там инструкции теперь на адресах.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.