 |
|

25.07.2024, 06:19
|
|
Участник форума
Регистрация: 18.03.2013
Сообщений: 102
С нами:
6921984
Репутация:
183
|
|
Автору на заметку: всегда собирай статик в условиях сампа
|
|
|

25.07.2024, 07:36
|
|
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами:
6935121
Репутация:
233
|
|
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в urmem туда-сюда перезаписывает инструкции при вызове оригинальной функции, а ReadBits вызывается из разных потоков и очень часто, в какой-то момент она вызовется с невалидными инструкциями в прологе в результате датарейса. для исправления надо заменить хуки на нормальные, например subhook, или сделать нормальный фикс, вместо хука пропатчив байт 0x7E по адресу 0x0804CE76 (linux 0.3.7-r2-1) на 0x76 (инструкцию jle на jbe).
а так можно пропатчить бинарник линукс сервера любой версии:
Код:
xxd -p -c0 samp03svr | sed 's/\(7e098b470801f03b07\)7e/\176/' | xxd -p -r > samp03svr_patched
|
|
|

25.07.2024, 08:32
|
|
Познающий
Регистрация: 08.04.2013
Сообщений: 35
С нами:
6891688
Репутация:
58
|
|
Сообщение от FYP
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в urmem туда-сюда перезаписывает инструкции при вызове оригинальной функции, а ReadBits вызывается из разных потоков и очень часто, в какой-то момент она вызовется с невалидными инструкциями в прологе в результате датарейса. для исправления надо заменить хуки на нормальные, например subhook, или сделать нормальный фикс, пропатчив байт 0x7E по адресу 0x0804CE76 (linux 0.3.7-r2-1) на 0x76 (инструкцию jle на jbe).
а так можно пропатчить бинарник линукс сервера любой версии:
Код:
xxd -p -c0 samp03svr | sed 's/\(7e098b470801f03b07\)7e/\176/' | xxd -p -r > samp03svr_patched
легенда
|
|
|

25.07.2024, 08:34
|
|
Новичок
Регистрация: 27.12.2021
Сообщений: 3
С нами:
2305382
Репутация:
1
|
|
Сообщение от FYP
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в urmem туда-сюда перезаписывает инструкции при вызове оригинальной функции, а ReadBits вызывается из разных потоков и очень часто, в какой-то момент она вызовется с невалидными инструкциями в прологе в результате датарейса. для исправления надо заменить хуки на нормальные, например subhook, или сделать нормальный фикс, пропатчив байт 0x7E по адресу 0x0804CE76 (linux 0.3.7-r2-1) на 0x76 (инструкцию jle на jbe).
а так можно пропатчить бинарник линукс сервера любой версии:
Код:
xxd -p -c0 samp03svr | sed 's/\(7e098b470801f03b07\)7e/\176/' | xxd -p -r > samp03svr_patched
Спасибо.
Пока одна проблема - хостер MyArena не позволяет подгрузить свой samp03svr на сервер, придётся ждать пока они проснуться...
|
|
|

25.07.2024, 09:30
|
|
Новичок
Регистрация: 25.07.2024
Сообщений: 2
С нами:
951232
Репутация:
3
|
|
Solución usando Pawn.RakNet
Pawn.RakNet:
[CODE]
IRawPacket
:
20
(
playerid
,
BitStream
:
bs
)
// 20 = ID_RPC
{
new
PacketID
,
RPC_ID
,
NumberOfBitsOfData
;
BS_ReadValue
(
bs
,
PR_UINT8
,
PacketID
,
PR_UINT8
,
RPC_ID
,
PR_CUINT32
,
NumberOfBitsOfData
)
;
printf
(
"IRawPacket -> ID_RPC: playerid: %d, RPC_ID: %d, NumberOfBitsOfData: %d"
,
playerid
,
RPC_ID
,
NumberOfBitsOfData
)
;
if
(
PacketID
==
40
||
(
NumberOfBitsOfData
>=
0x1FFFFF
||
NumberOfBitsOfData
|
|
|

25.07.2024, 11:34
|
|
Новичок
Регистрация: 29.06.2024
Сообщений: 10
С нами:
987522
Репутация:
13
|
|
Сообщение от FYP
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в urmem туда-сюда перезаписывает инструкции при вызове оригинальной функции, а ReadBits вызывается из разных потоков и очень часто, в какой-то момент она вызовется с невалидными инструкциями в прологе в результате датарейса. для исправления надо заменить хуки на нормальные, например subhook, или сделать нормальный фикс, вместо хука пропатчив байт 0x7E по адресу 0x0804CE76 (linux 0.3.7-r2-1) на 0x76 (инструкцию jle на jbe).
а так можно пропатчить бинарник линукс сервера любой версии:
Код:
xxd -p -c0 samp03svr | sed 's/\(7e098b470801f03b07\)7e/\176/' | xxd -p -r > samp03svr_patched
это просто исправление одного бита! идеально 😆
|
|
|

25.07.2024, 11:58
|
|
Познающий
Регистрация: 29.03.2014
Сообщений: 37
С нами:
6380428
Репутация:
68
|
|
Сообщение от pendaras
А что ты хотел увидеть? Никто бесплатно тебе "супер рабочий" скрипт не напишет.
Как видишь, уже написали (бинарники тут). Но лично я рекомендую омп как вариант, с которым вряд ли возникнут и любые возможные прецеденты в дальнейшем, при нахождении чего-то подобного в иной раз у самп сервера.
|
|
|

25.07.2024, 13:00
|
|
Флудер
Регистрация: 16.09.2019
Сообщений: 2,013
С нами:
3505395
Репутация:
183
|
|
[QUOTE="Benjes"]
Solución usando Pawn.RakNet
Pawn.RakNet:
[CODE]
IRawPacket
:
20
(
playerid
,
BitStream
:
bs
)
// 20 = ID_RPC
{
new
PacketID
,
RPC_ID
,
NumberOfBitsOfData
;
BS_ReadValue
(
bs
,
PR_UINT8
,
PacketID
,
PR_UINT8
,
RPC_ID
,
PR_CUINT32
,
NumberOfBitsOfData
)
;
printf
(
"IRawPacket -> ID_RPC: playerid: %d, RPC_ID: %d, NumberOfBitsOfData: %d"
,
playerid
,
RPC_ID
,
NumberOfBitsOfData
)
;
if
(
PacketID
==
40
||
(
NumberOfBitsOfData
>=
0x1FFFFF
||
NumberOfBitsOfData
|
|
|

25.07.2024, 13:23
|
|
Познающий
Регистрация: 29.03.2014
Сообщений: 37
С нами:
6380428
Репутация:
68
|
|
[QUOTE="Benjes"]
Solución usando Pawn.RakNet
Pawn.RakNet:
[CODE]
IRawPacket
:
20
(
playerid
,
BitStream
:
bs
)
// 20 = ID_RPC
{
new
PacketID
,
RPC_ID
,
NumberOfBitsOfData
;
BS_ReadValue
(
bs
,
PR_UINT8
,
PacketID
,
PR_UINT8
,
RPC_ID
,
PR_CUINT32
,
NumberOfBitsOfData
)
;
printf
(
"IRawPacket -> ID_RPC: playerid: %d, RPC_ID: %d, NumberOfBitsOfData: %d"
,
playerid
,
RPC_ID
,
NumberOfBitsOfData
)
;
if
(
PacketID
==
40
||
(
NumberOfBitsOfData
>=
0x1FFFFF
||
NumberOfBitsOfData
|
|
|

25.07.2024, 16:17
|
|
Новичок
Регистрация: 25.07.2024
Сообщений: 2
С нами:
951232
Репутация:
3
|
|
Сообщение от Nexius
Not a proper solution, the cause is not related exactly to this packet you're checking
В этот момент пришла хорошая идея 😅👌🏻
Сообщение от _razor
а если пакет будет обернут в ID_TIMESTAMP?
💥
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|