
14.04.2021, 18:15
|
|
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами:
4793630
Репутация:
133
|
|
Сообщение от Repugnant
Reset remove building count
Убирает краш, связанный с переполнением буфера RPC_ScrRemoveBuildingForPlayer, при частых переподключениях.
www.blast.hk
как работает этот плагин? как-то очищает буфер при каждом реконнекте?
Сообщение от Спойлер
C:
Код:
void
__cdecl __noreturn
patch
(
)
{
HMODULE sampaddr
;
// esi
DWORD prot
;
// [esp-8h] [ebp-20h]
DWORD flOldProtect
;
// [esp+Ch] [ebp-Ch] BYREF
DWORD flNewProtect
;
// [esp+10h] [ebp-8h] BYREF
for
(
sampaddr
=
GetModuleHandleA
(
"samp.dll"
)
;
!
sampaddr
;
sampaddr
=
GetModuleHandleA
(
"samp.dll"
)
)
Sleep
(
1000u
)
;
VirtualProtect
(
(
LPVOID
)
0x7BA917
,
0xDu
,
0x40u
,
&
flOldProtect
)
;
MEMORY
[
0x7BA917
]
=
'%\x83'
;
MEMORY
[
0x7BA919
]
=
sampaddr
+
'\x04\xEEV'
;
MEMORY
[
0x7BA91D
]
=
'\xC5\x8E\x8B\0'
;
MEMORY
[
0x7BA921
]
=
'\x03'
;
MEMORY
[
0x7BA923
]
=
'\0'
;
VirtualProtect
(
(
LPVOID
)
0x7BA917
,
2u
,
flOldProtect
,
0
)
;
VirtualProtect
(
(
LPVOID
)
0x7BA924
,
5u
,
0x40u
,
&
flNewProtect
)
;
MEMORY
[
0x7BA925
]
=
(
char
*
)
sampaddr
+
0xFF84F80E
;
MEMORY
[
0x7BA924
]
=
'\xE9'
;
VirtualProtect
(
(
LPVOID
)
0x7BA924
,
5u
,
flNewProtect
,
0
)
;
VirtualProtect
(
(
char
*
)
sampaddr
+
0xA131
,
6u
,
0x40u
,
&
flNewProtect
)
;
prot
=
flNewProtect
;
*
(
(
_BYTE
*
)
sampaddr
+
0xA131
)
=
'\xE9'
;
*
(
_DWORD
*
)
(
(
char
*
)
sampaddr
+
0xA132
)
=
0x7BA912
-
(
(
_DWORD
)
sampaddr
+
0xA131
)
;
*
(
(
_BYTE
*
)
sampaddr
+
0xA136
)
=
'\x90'
;
VirtualProtect
(
(
char
*
)
sampaddr
+
0xA131
,
6u
,
prot
,
0
)
;
FreeLibraryAndExitThread
(
hLibModule
,
0
)
;
}
|
|
|