PDA

Просмотр полной версии : bitstream readbits stack overflow fix


atomlin
24.07.2024, 22:01
Исправляет https://www.blast.hk/threads/216813/

GitHub - atomlin-git/srv-crashfix: corrects the possibility crash samp 0.3.7 servers with incorrect read_bits size (https://github.com/atomlin-git/srv-crashfix)

corrects the possibility crash samp 0.3.7 servers with incorrect read_bits size - atomlin-git/srv-crashfix

github.com


thanks @Sargon (https://www.blast.hk/members/254677/)

M O R R E T I
24.07.2024, 22:10
всё проще намного, povargek зальет фикс думаю, т.к. пошел по рукам.

povargek
24.07.2024, 22:13
всё проще намного, povargek зальет фикс думаю, т.к. пошел по рукам.



эта штука и фиксит корень проблемы на самом деле все таки.

то что было в самом крашере - видимо просто запутать

M O R R E T I
24.07.2024, 22:14
эта штука и фиксит корень проблемы на самом деле все таки.
то что было в самом крашере - видимо просто запутать


я больше о том, что не каждый плагин соберет.

povargek
24.07.2024, 22:19
А сигнатуры у тебя под какую версию сделаны? Крашит на первом же нормальном пакете (при подключении)

Код:






[24/07/2024 21:18:17] [debug] Server crashed due to an unknown error
[24/07/2024 21:18:17] [debug] Native backtrace:
[24/07/2024 21:18:17] [debug] #0 f7a79e8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #1 f7a72bcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #2 f7a73dbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #3 f7a74226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #4 f7a79adc in ?? () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #5 f7f25090 in __kernel_rt_sigreturn () from linux-gate.so.1
[24/07/2024 21:18:17] [debug] #6 f7bddcd5 in ?? () from /lib32/libc.so.6
[24/07/2024 21:18:17] [debug] #7 0804ce9a in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #8 f5709322 in _Z9read_bitsPvS_Phib () from plugins/lf.so
[24/07/2024 21:18:17] [debug] #9 0807e125 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #10 0808106e in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #11 08073680 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #12 0808ec9d in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #13 08074846 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #14 080763fe in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #15 f7eedfd2 in ?? () from /lib32/libpthread.so.0
[24/07/2024 21:18:17] [debug] #16 f7b96c96 in clone () from /lib32/libc.so.6

mhertz
24.07.2024, 22:21
А сигнатуры у тебя под какую версию сделаны? Крашит на первом же нормальном пакете (при подключении)

Код:






[24/07/2024 21:18:17] [debug] Server crashed due to an unknown error
[24/07/2024 21:18:17] [debug] Native backtrace:
[24/07/2024 21:18:17] [debug] #0 f7a79e8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #1 f7a72bcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #2 f7a73dbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #3 f7a74226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #4 f7a79adc in ?? () from plugins/crashdetect.so
[24/07/2024 21:18:17] [debug] #5 f7f25090 in __kernel_rt_sigreturn () from linux-gate.so.1
[24/07/2024 21:18:17] [debug] #6 f7bddcd5 in ?? () from /lib32/libc.so.6
[24/07/2024 21:18:17] [debug] #7 0804ce9a in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #8 f5709322 in _Z9read_bitsPvS_Phib () from plugins/lf.so
[24/07/2024 21:18:17] [debug] #9 0807e125 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #10 0808106e in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #11 08073680 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #12 0808ec9d in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #13 08074846 in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #14 080763fe in ?? () from ./samp03testsvr
[24/07/2024 21:18:17] [debug] #15 f7eedfd2 in ?? () from /lib32/libpthread.so.0
[24/07/2024 21:18:17] [debug] #16 f7b96c96 in clone () from /lib32/libc.so.6





скорее всего проблема в том, что он хукает на линуксе функу как thiscall

povargek
24.07.2024, 22:45
скорее всего проблема в том, что он хукает на линуксе функу как thiscall



фикс работает



фикс работает



тут речт шла не то том фиксе, что щас на гите появился. он все равно крашит. просто сделал так:

С++:






bool __fastcall read_bits(void* ptr, unsigned char* output, int num_to_read, bool align_to_read) { // , void* edx
printf("Test");
int NumberOfUnreadBits = *((unsigned long *)ptr) - *((unsigned long *)ptr + 2);
if(NumberOfUnreadBits (ptr, output, num_to_read, align_to_read);
};




@atomlin (https://www.blast.hk/members/278250/)

delanov
24.07.2024, 23:20
У меня плагин не загружается даже, и не знаю что приложить к этому сообщению

cl : командная строка error D8016: несовместимые параметры командной строки "/O2" и "/RTC1" [C:\Users\Vladislav\srv-cr

ashfix\scf.vcxproj]

povargek
24.07.2024, 23:58
@atomlin (https://www.blast.hk/members/278250/) стоит проверить это все: https://github.com/SLikeSoft/SLikeNet/commit/6858e19846739d74d537b35694ab949ba038b5ab

говорят доблят сервы и с плагином

atomlin
25.07.2024, 00:17
@atomlin (https://www.blast.hk/members/278250/) стоит проверить это все: https://github.com/SLikeSoft/SLikeNet/commit/6858e19846739d74d537b35694ab949ba038b5ab

говорят доблят сервы и с плагином


падают сервера с самописной защитой, то что в коммите - посмотрю



конечно долбят, искать вред пакет по паттерну)0)0)


к чему ты это написал? паттерн в коде для нахождения функции BitStream::ReadBits

iAmir
25.07.2024, 00:21
Исправление также доступно в open.mp.

- fixed multiple security vulnerabilities in the BitStream class · openmultiplayer/RakNet@021dd2f (https://github.com/openmultiplayer/RakNet/commit/021dd2fd8185a74c9eef0445fa76abb7ffbd6ff2)

Our own modification of RakNet used in open.mp. Contribute to openmultiplayer/RakNet development by creating an account on GitHub.

github.com


Еще один повод мигрировать!

Armanish
25.07.2024, 00:46
Failed (/lib/libc.so.6: version GLIBC_2.33' not found (required by plugins/libscf.so)) - Как исправить?

uymuym
25.07.2024, 00:52
всмисле а как его залить там нету плагина или инклуда

povargek
25.07.2024, 00:54
падают сервера с самописной защитой, то что в коммите - посмотрю

к чему ты это написал? паттерн в коде для нахождения функции BitStream::ReadBits



все же все больше людей говорят обход какой-то нашли

povargek
25.07.2024, 00:59
я конечно не ультрахакер, но я просто поменял хеш и оно дальше кроет


не крашит

delanov
25.07.2024, 01:01
не крашит


у меня крашил рашу рп, когда старая его версия не крашила

NaN_
25.07.2024, 01:05
Возможно сделать фикс с помощю pawn raknet?

povargek
25.07.2024, 01:06
@atomlin (https://www.blast.hk/members/278250/) все же это действительно так, добрались и до моего

[25/07/2024 00:01:03] [debug] Server crashed due to an unknown error

Armanish
25.07.2024, 01:12
Failed (/lib/libc.so.6: version GLIBC_2.33' not found (required by plugins/libscf.so)) - Как исправить?

uymuym
25.07.2024, 01:13
а как его залить если там нет плагина компилировать штоли?

NaN_
25.07.2024, 01:19
Возможно сделать фикс с помощю pawn raknet?

uymuym
25.07.2024, 01:42
@atomlin (https://www.blast.hk/members/278250/) как его залить его надо через визуал студио код компилить?

RazorRw
25.07.2024, 01:57
Возможно сделать фикс с помощю pawn raknet?


да

neonpro5
25.07.2024, 02:00
ИНУСТРУКЦИЯ ДЛЯ Linux серверов.

Подключаетесь к хостингу по ssh или запускаете на виртуалке тот дистрибутив линукса, на котором у вас стоит сервер.

Далее скачиваете git и cmake (вероятнее всего для вас это будет команда sudo apt install git, sudo apt install cmake).

Далее скачиваем репозиторий с помощью команды git clone https://github.com/atomlin-git/srv-crashfix.git

Переходим в него с помощью команды cd srv-crashfix

Создаём папку build, с помощью команды mkdir build

заходим в папку cd build

собираем проект с помощью cmake: cmake ..

компилируем проект make

проект собран

uymuym
25.07.2024, 02:10
ИНУСТРУКЦИЯ ДЛЯ Linux серверов.
Подключаетесь к хостингу по ssh или запускаете на виртуалке тот дистрибутив линукса, на котором у вас стоит сервер.
Далее скачиваете git и cmake (вероятнее всего для вас это будет команда sudo apt install git, sudo apt install cmake).
Далее скачиваем репозиторий с помощью команды git clone https://github.com/atomlin-git/srv-crashfix.git
Переходим в него с помощью команды cd srv-crashfix
Создаём папку build, с помощью команды mkdir build
заходим в папку cd build
собираем проект с помощью cmake: cmake ..
компилируем проект make
проект собран



root@vds-97946:~/srv-crashfix# cmake cmake /root/srv-crashfix

-- The C compiler identification is GNU 5.4.0

-- The CXX compiler identification is GNU 5.4.0

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

You have called ADD_LIBRARY for library scf without any source files. This typically indicates a problem with your CMakeLists.txt file

-- Configuring done

-- Generating done

-- Build files have been written to: /root/srv-crashfix

root@vds-97946:~/srv-crashfix# cmake: cmake ..

-bash: cmake:: command not found

root@vds-97946:~/srv-crashfix# make

Scanning dependencies of target scf

[ 50%] Building CXX object CMakeFiles/scf.dir/source/main.cpp.o

In file included from /usr/include/dlfcn.h:22:0,

from /root/srv-crashfix/includes/urmem.hpp:32,

from /root/srv-crashfix/includes/headers.hpp:3,

from /root/srv-crashfix/source/main.cpp:1:

/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory

compilation terminated.

CMakeFiles/scf.dir/build.make:62: recipe for target 'CMakeFiles/scf.dir/source/main.cpp.o' failed

make[2]: *** [CMakeFiles/scf.dir/source/main.cpp.o] Error 1

CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/scf.dir/all' failed

make[1]: *** [CMakeFiles/scf.dir/all] Error 2

Makefile:83: recipe for target 'all' failed

make: *** [all] Error 2

root@vds-97946:~/srv-crashfix# cd build

root@vds-97946:~/srv-crashfix/build# make

Scanning dependencies of target scf

[ 50%] Building CXX object CMakeFiles/scf.dir/source/main.cpp.o

In file included from /usr/include/dlfcn.h:22:0,

from /root/srv-crashfix/includes/urmem.hpp:32,

from /root/srv-crashfix/includes/headers.hpp:3,

from /root/srv-crashfix/source/main.cpp:1:

/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory

compilation terminated.

CMakeFiles/scf.dir/build.make:62: recipe for target 'CMakeFiles/scf.dir/source/main.cpp.o' failed

make[2]: *** [CMakeFiles/scf.dir/source/main.cpp.o] Error 1

CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/scf.dir/all' failed

make[1]: *** [CMakeFiles/scf.dir/all] Error 2

Makefile:83: recipe for target 'all' failed

make: *** [all] Error 2

root@vds-97946:~/srv-crashfix/build# make

[ 50%] Building CXX object CMakeFiles/scf.dir/source/main.cpp.o

In file included from /usr/include/dlfcn.h:22:0,

from /root/srv-crashfix/includes/urmem.hpp:32,

from /root/srv-crashfix/includes/headers.hpp:3,

from /root/srv-crashfix/source/main.cpp:1:

/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory

compilation terminated.

CMakeFiles/scf.dir/build.make:62: recipe for target 'CMakeFiles/scf.dir/source/main.cpp.o' failed

make[2]: *** [CMakeFiles/scf.dir/source/main.cpp.o] Error 1

CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/scf.dir/all' failed

make[1]: *** [CMakeFiles/scf.dir/all] Error 2

Makefile:83: recipe for target 'all' failed

make: *** [all] Error 2

что делать

kpect_94
25.07.2024, 02:10
ИНУСТРУКЦИЯ ДЛЯ Linux серверов.
Подключаетесь к хостингу по ssh или запускаете на виртуалке тот дистрибутив линукса, на котором у вас стоит сервер.
Далее скачиваете git и cmake (вероятнее всего для вас это будет команда sudo apt install git, sudo apt install cmake).
Далее скачиваем репозиторий с помощью команды git clone https://github.com/atomlin-git/srv-crashfix.git
Переходим в него с помощью команды cd srv-crashfix
Создаём папку build, с помощью команды mkdir build
заходим в папку cd build
собираем проект с помощью cmake: cmake ..
компилируем проект make
проект собран



И радуемся от того что сервер всё равно крашится)

pendaras
25.07.2024, 02:19
И радуемся от того что сервер всё равно крашится)



А что ты хотел увидеть? Никто бесплатно тебе "супер рабочий" скрипт не напишет.

asgardov
25.07.2024, 02:20
А что ты хотел увидеть? Никто бесплатно тебе "супер рабочий" скрипт не напишет.


Сколько ты хочешь за нормальный фикс? Если хочешь поговорить о цене.

MrCreepTon
25.07.2024, 03:09
Сколько ты хочешь за нормальный фикс? Если хочешь поговорить о цене.


Если текущее решение ТС не идеально (не могу об этом судить т.к. не тестил), то в любом случае более совершенное решение выйдет в публичном доступе, ибо это в интересах большинства игровых серверов. Вопрос времени и терпения. В данный момент я бы не рекомендовал что-либо покупать в плане фикса, ибо вероятнее всего это будет абсолютно непрагматичная трата денег. А мб вообще надурят.

pendaras
25.07.2024, 04:19
Если текущее решение ТС не идеально (не могу об этом судить т.к. не тестил), то в любом случае более совершенное решение выйдет в публичном доступе, ибо это в интересах большинства игровых серверов. Вопрос времени и терпения. В данный момент я бы не рекомендовал что-либо покупать в плане фикса, ибо вероятнее всего это будет абсолютно непрагматичная трата денег. А мб вообще надурят.



По этому я и не предлагал никому услуги, я продавал между своими знакомыми, они мне заплатили я и написал.

povargek
25.07.2024, 06:19
Автору на заметку: всегда собирай статик в условиях сампа

FYP
25.07.2024, 07:36
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в 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

Maddy
25.07.2024, 08:32
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в 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



легенда

timmylich.
25.07.2024, 08:34
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в 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 на сервер, придётся ждать пока они проснуться...

Benjes
25.07.2024, 09:30
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

fzfzfz123
25.07.2024, 11:34
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в 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



это просто исправление одного бита! идеально 😆

Nexius
25.07.2024, 11:58
А что ты хотел увидеть? Никто бесплатно тебе "супер рабочий" скрипт не напишет.


Как видишь, уже написали (https://github.com/AmyrAhmady/samp-bscrashfix) (бинарники тут (https://github.com/AmyrAhmady/samp-bscrashfix/actions)). Но лично я рекомендую омп как вариант, с которым вряд ли возникнут и любые возможные прецеденты в дальнейшем, при нахождении чего-то подобного в иной раз у самп сервера.

RazorRw
25.07.2024, 13:00
[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

Nexius
25.07.2024, 13:23
[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

Benjes
25.07.2024, 16:17
Not a proper solution, the cause is not related exactly to this packet you're checking


В этот момент пришла хорошая идея 😅👌🏻



а если пакет будет обернут в ID_TIMESTAMP?


💥

pendaras
25.07.2024, 20:42
с этим фиксом можно крашить любыми пакетами с любыми данными, для этого нужно всего лишь пофлудить пакетами. но можно ничего и не делать, сервер сам крашнется. это из-за того, что хук в 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 написала уже фикс этого крашера, всё кончено.

livingflore
25.07.2024, 20:45
Это не решение, это костыль который открывает другую проблему, она снимает проверки которые были заданы разработчиком, это не решение.

Тем более MyArena написала уже фикс этого крашера, всё кончено.


пользоваться майареной в 2024 году, ну для вас реально всё кончено, без обид)

akatsuk1
25.07.2024, 20:49
Тем более MyArena написала уже фикс этого крашера, всё кончено.


link?

pendaras
25.07.2024, 20:51
пользоваться майареной в 2024 году, ну для вас реально всё кончено, без обид)



Ну это твоё личное мнение)

Арена досихпор держит хорошие сервера но у них хороши в основном VDS сервера, я учавствовал в тесте плагина по этому могу сказать что он работает, а то что прислал FYP открывает новую проблему.



link?


ProcessCmds на PRO сервере MyArena.

akatsuk1
25.07.2024, 20:59
ProcessCmds на PRO сервере MyArena.


покупать арену ради фикса не особо хочется

pendaras
25.07.2024, 21:00
покупать арену ради фикса не особо хочется



Увы фикс доступен только у них.

Но есть возможность выкачать его, плагин ещё тестируется так что утверждать не хочу, но на моих личных тестах всё работает.

iAmir
25.07.2024, 23:32
Исправление уже выпущено, чтобы охватить все случаи, напрямую исправляя BitStream::ReadBits и другие. Оно было выпущено несколько часов назад

GitHub - AmyrAhmady/samp-bscrashfix (https://github.com/AmyrAhmady/samp-bscrashfix)

Contribute to AmyrAhmady/samp-bscrashfix development by creating an account on GitHub.

github.com

Nexius
25.07.2024, 23:41
Это не решение, это костыль который открывает другую проблему, она снимает проверки которые были заданы разработчиком, это не решение.

Тем более MyArena написала уже фикс этого крашера, всё кончено.


Решение: запосчено несколько постов назад и уже давно доступно всем, половина серверов его и поставила

pendaras (сори за мат): фикс только на майарене, решения в открытом доступе нет

Ну ты хоть тему-то почитал бы

FYP
26.07.2024, 04:35
Это не решение, это костыль который открывает другую проблему, она снимает проверки которые были заданы разработчиком, это не решение.

Тем более MyArena написала уже фикс этого крашера, всё кончено.


моё решение устраняет проблему на корню и кроме исправления уязвимости никак ни на что не влияет и не аннулирует никакие проверки. код патчится наиболее оптимальным и безопасным путём. что по-твоему в нём костыльного и какие проблемы оно вызывает?