PDA

Просмотр полной версии : [Мануал] Антисобейт | Возвращаем SendClientCheck в жизнь



Zaur_Lumanov
06.02.2016, 01:45
Вот простой костыль, который поможет вам узнать, имеет ли игрок собейт.

Вам необходимо иметь плагин RakNet Manager by urShadow (кликабельно) (http://pro-pawn.ru/showthread.php?13333).

В самое начало мода:


native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);

В паблик OnPlayerRequestClass:


SendClientCheck(playerid, 0x2, 0, 0, 4);

И в любое место:


new RPC_ClientCheck = 0x67;
public OnPlayerReceivedRPC(playerid, rpcid, BitStream:bs)
{
if(rpcid == RPC_ClientCheck)
{
new addr, len;

BS_ReadValue(bs, RNM_UINT8, len,
RNM_INT32, addr);

if ((addr & 0xFC0000) != 0xFC0000)
{
printf("Игрок %i имеет собейт.",playerid);
}
else
{
printf("Игрок %i чист.",playerid);
}

}

return 1;
}

Автор: Buisness_Suid.

Daniel_Cortez
06.02.2016, 11:45
Так эту проверку можно и без плагина сделать. Соль лишь в том, что OnClientCheckResponse вызывается только в фильтрскриптах, но не в моде - скорее всего, Kalcor сделал так специально, чтобы сбить с толку тех, кто узнает о функции SendClientCheck. Сама функция работает и в ней нечего "возвращать к жизни".

UPD: Информация о багофиче в SendClientCheck взята отсюда (https://github.com/Zeex/sampgdk/issues/124).
Сам баг можно исправить с помощью ФС, вызывающего коллбэк в моде через CallRemoteFunction.

Zaur_Lumanov
06.02.2016, 12:47
Так эту проверку можно и без плагина сделать. Соль лишь в том, что OnClientCheckResponse вызывается только в фильтрскриптах, но не в моде - скорее всего, Kalcor сделал так специально, чтобы сбить с толку тех, кто узнает о функции SendClientCheck. Сама функция работает и в ней нечего "возвращать к жизни".

Об этом я не знал. Проверил.. Удивился. Спасибо.
Значит, это будет полезно для гейммодов.

CheSToRiA
06.02.2016, 12:56
Работает, но если успеть выключить на F12 перед проверкой, то не словит.
А можно так же на CLEO.asi проверять игроков? Если да, то какой адрес будет у CLEO?

Reim
06.02.2016, 12:57
А на нее NOP'а случаем нет?

$continue$
06.02.2016, 13:51
Да, забудьте Вы о этой функции. Пока, Kalcor не впилит нормальный анти чит на стороне клиента, все анти читы - без смыслены.
Что, будет если я поменяю адрес в собейте? (А тем более, уже вроде есть чит для подмены адреса)
И вообще эту функцию слил Y_LESS (вроде, как), где гарантия, что Куй ее не выпилит в следюущих версиях?

Бредовая - идея. SA-MP как площадка для кодинга - умерла. Есть, конечно, шанс у SA-MP, но если Куй вскорет исходный код SA-MP (А этого не будет).

Daniel_Cortez
06.02.2016, 14:52
Значит, это будет полезно для гейммодов.
В моде баг тоже можно исправить. Я обновил свой пост выше, добавив источник информации о баге и способ исправления.
Мало того, никто не запрещает вынести код проверки в ФС. Всяко лучше, чем из-за плагина привязывать свой мод к текущей версии SA:MP (0.3.7) и наивно надеяться, что потом кто-то за просто так быстро обновит его до новой версии сервера.



А на нее NOP'а случаем нет?
Нигде не видел, но пока в SA:MP не будет клиентского античита (а его не будет (http://pro-pawn.ru/showthread.php?13212), нынче хватает всего пары мелких фич в год, чтобы Kalcor'у продолжали платить за hosted), появление любого NOP'а - всего лишь вопрос времени.

CheSToRiA
06.02.2016, 15:00
В моде баг тоже можно исправить. Я обновил свой пост выше, добавив источник информации о баге и способ исправления.
Мало того, никто не запрещает вынести код проверки в ФС. Всяко лучше, чем из-за плагина привязывать свой мод к текущей версии SA:MP (0.3.7) и наивно надеяться, что потом кто-то за просто так быстро обновит его до новой версии сервера.



Нигде не видел, но пока в SA:MP не будет клиентского античита (а его не будет (http://pro-pawn.ru/showthread.php?13212), нынче хватает всего пары мелких фич в год, чтобы Kalcor'у продолжали платить за hosted), появление любого NOP'а - всего лишь вопрос времени.

NOP есть. Он просто не позволяет использовать SendClientCheck на его владельце.

Daniel_Cortez
06.02.2016, 15:04
NOP есть. Он просто не позволяет использовать SendClientCheck на его владельце.
Легко обнаруживается установкой таймера и проверкой на предмет получения ответа на SendClientCheck по истечению указанного в таймере времени.
Читеры с таким же успехом могут просто повесить на себя табличку "Я ЧИТЕР".

vovandolg
06.02.2016, 16:40
На версии ниже 0.3х я так понимаю данный мануал не пойдёт?

[ForD]
06.02.2016, 17:22
На версии ниже 0.3х я так понимаю данный мануал не пойдёт?

Нет,да и смысл?

DeimoS
07.02.2016, 13:22
Да, забудьте Вы о этой функции. Пока, Kalcor не впилит нормальный анти чит на стороне клиента, все анти читы - без смыслены.
Что, будет если я поменяю адрес в собейте? (А тем более, уже вроде есть чит для подмены адреса)
И вообще эту функцию слил Y_LESS (вроде, как), где гарантия, что Куй ее не выпилит в следюущих версиях?

Бредовая - идея. SA-MP как площадка для кодинга - умерла. Есть, конечно, шанс у SA-MP, но если Куй вскорет исходный код SA-MP (А этого не будет).

Никогда не понимал подобные высказывания... Значит делать миллион и одну проверку на всякие читы для телепотрации/полётов и т.п. в надежде, что хотя бы одна из них сработает и поймает читера - это нормально, а добавить ещё одну проверку на отлов самых тупых читеров - это уже бессмысленно и глупо. Шанс, что твой античит не сработает, есть всегда. Так давайте тогда вообще античиты не писать?

P.S. Если по вашей логике жить, то и делать проверку на лицензии в играх бесполезно. Ведь всё равно их рано или поздно спиратят... Пока существуют те, кто создаёт защиту, будут существовать и те, кто эту защиту будет пытаться обойти для собственной выгоды. И что, теперь не заниматься созданием защиты, раз всё так бессмысленно? Если не стоит, то скинь мне в личку пароли от всех твоих интернет-кошельков и банковских карт, а так же подтверждай все мои операции, если у тебя есть защита через СМС коды.

$continue$
07.02.2016, 13:58
Никогда не понимал подобные высказывания... Значит делать миллион и одну проверку на всякие читы для телепотрации/полётов и т.п. в надежде, что хотя бы одна из них сработает и поймает читера - это нормально, а добавить ещё одну проверку на отлов самых тупых читеров - это уже бессмысленно и глупо. Шанс, что твой античит не сработает, есть всегда. Так давайте тогда вообще античиты не писать?

P.S. Если по вашей логике жить, то и делать проверку на лицензии в играх бесполезно. Ведь всё равно их рано или поздно спиратят... Пока существуют те, кто создаёт защиту, будут существовать и те, кто эту защиту будет пытаться обойти для собственной выгоды. И что, теперь не заниматься созданием защиты, раз всё так бессмысленно? Если не стоит, то скинь мне в личку пароли от всех твоих интернет-кошельков и банковских карт, а так же подтверждай все мои операции, если у тебя есть защита через СМС коды.

Причем тут пиратство? -_-
Ах, да. Как там FIFA 16? Взломали ее? Или до сих пор пробуют взломать?


Бесполезно писать анти читы под SA-MP, все нормальные игры проверяют на читы с клиентской стороны. В чем профит писать самому систему безопасности для SA-MP?

DeimoS
07.02.2016, 15:29
Причем тут пиратство? -_-

Ну как же: есть то, что нужно защитить, есть защита и есть те, кто эту защиту обходят. Сравнения, не?



Ах, да. Как там FIFA 16? Взломали ее? Или до сих пор пробуют взломать?

Фифу 15 тоже долго ломали, но сломали же, в итоге. Как и Dragon Age: Inquisition. Придумали Denuvo и она даже защищала эти самые игры пару-тройку месяцев, но всё же и в сей защите нашли лазейку. Просто на каждого "защитника" найдётся десять тех, кто попробует эту защиту обойти. В этом вся суть



Бесполезно писать анти читы под SA-MP, все нормальные игры проверяют на читы с клиентской стороны. В чем профит писать самому систему безопасности для SA-MP?

И такие античиты так же можно обойти (в том же WarFace над античитом, как я слышал, отдельная команда разработчиков работает, но даже это не спасает от читеров). Не существует возможности полностью взять и защититься от читов раз и навсегда. Будь то проверки на стороне клиента, или на стороне сервера - всё можно обойти. Такова суть программирования

$continue$
07.02.2016, 15:41
И такие античиты так же можно обойти (в том же WarFace над античитом, как я слышал, отдельная команда разработчиков работает, но даже это не спасает от читеров). Не существует возможности полностью взять и защититься от читов раз и навсегда. Будь то проверки на стороне клиента, или на стороне сервера - всё можно обойти. Такова суть программирования

Ну так дизассемблирования никто и не отменял. Однако SA-MP захлебнулся в читах. В тоже время в MTA, анти - чит разрабатывают специалисты по информационной безопасности. В SA-MP же полу программисты - полу "проходимцы". Соль в том, что обойти то обойдут. Но можно опять зафиксить тот же чит, делов то. С антипиратством все сложней. Если взломали - то все игра утекла в торрент. Но насколько я знаю FIFA 16 до сих пор не взломали и уже начинают сдаваться. Считай через 9 месяцев выкатят FIFA 17.

С стороны клиента - надо попотеть, что бы обойти античит, ибо это подмена файла. Но кто запрещает установить "секретный" флаг в том файле и при подключений к игре, сверять его?
Причем этот флаг доставать с памяти самой игры. При каждом подключений новый флаг. Вряд ли кто то будет потеть с подменой файла на 1 раз.

Daniel_Cortez
07.02.2016, 17:12
в том же WarFace над античитом, как я слышал, отдельная команда разработчиков работает, но даже это не спасает от читеров
Вот только не надо здесь проводить аналогии между небом и землёй. В SA:MP и Warface совершенно разные процессы разработки.
В Warface, как ты уже сам сказал, над одним лишь античитом работает целая команда, чтобы не потерять прибыль из-за читеров.
В SA:MP же над всем мультиплеером работает всего один человек, который почти ничего не делает, и судьба проектов, которые используют SA:MP и могут получить ущерб из-за читеров - это не его забота, пока ему продолжают платить за воздух.

Как результат, в SA:MP придётся самоятоятельно делать античиты для всего, что только можно представить, костылить, использовать ненадёжные алгоритмы за отсутствием аналогов, изобретать велосипеды и т.д.
Для такой работы есть смысл только если сервер уже приносит прибыль или если хочешь сделать античит на продажу - но тогда его нужно грамотно спроектировать, чтобы он не был привязан к какому-то конкретному моду и был прост в использовании, на что сейчас способны немногие.

Вывод: в SA:MP в основном нет смысла делать античит самостоятельно. Вернее, есть смысл написать для проекта самые простые античиты, на которые не жалко потерять время, т.к. нужно быть готовым к худшему. Например, можно сделать античит на деньги - на него уйдёт всего 5 минут личного времени.

DeimoS
07.02.2016, 18:21
Вот только не надо здесь проводить аналогии между небом и землёй. В SA:MP и Warface совершенно разные процессы разработки.
В Warface, как ты уже сам сказал, над одним лишь античитом работает целая команда, чтобы не потерять прибыль из-за читеров.
В SA:MP же над всем мультиплеером работает всего один человек, который почти ничего не делает, и судьба проектов, которые используют SA:MP и могут получить ущерб из-за читеров - это не его забота, пока ему продолжают платить за воздух.

Как результат, в SA:MP придётся самоятоятельно делать античиты для всего, что только можно представить, костылить, использовать ненадёжные алгоритмы за отсутствием аналогов, изобретать велосипеды и т.д.
Для такой работы есть смысл только если сервер уже приносит прибыль или если хочешь сделать античит на продажу - но тогда его нужно грамотно спроектировать, чтобы он не был привязан к какому-то конкретному моду и был прост в использовании, на что сейчас способны немногие.

Вывод: в SA:MP в основном нет смысла делать античит самостоятельно. Вернее, есть смысл написать для проекта самые простые античиты, на которые не жалко потерять время, т.к. нужно быть готовым к худшему. Например, можно сделать античит на деньги - на него уйдёт всего 5 минут личного времени.

Так именно это я и подразумевал. Хороший античит, даже на стороне клиента, требует постоянных обновлений. Тут и так обновления раз в год выходят, так ещё и античит вам подавай, ага...
Я думаю, лучшим из вариантов будет то, что Куй однажды забьёт на проект и сольёт исходники в паблик или продаст/отдаст их кому-нибудь. И тогда либо сделают что-то типа системы МТА, либо просто толковая команда разработчиков появится.
Пока же остаётся либо клепать дыры на своём корабле всем, что попадётся под руку, либо просто менять корабль на что-то более современное, либо вообще отходить от мореходства. Тут уже каждый сам выбирает

Reim
08.02.2016, 09:18
:pardon:



//OnPlayerRequestClass
[08/02/2016 08:03:30] 2 284958738 16515072 111111000000000000000000
[08/02/2016 08:03:30] Без собейта ид 0.
Console input: _
//Вызов sendclientcheck командой
[08/02/2016 08:04:58] 2 268435986 0 0
[08/02/2016 08:04:58] Собейт ид 0.
Console input: _
[08/02/2016 08:05:12] 2 268435986 0 0
[08/02/2016 08:05:12] Собейт ид 0.



printf("%d %d %d %b",len,addr,addr & 0xFC0000,addr & 0xFC0000);

Blood
11.02.2016, 17:03
Есть мелкий недочет .
При заходе если отключит собейт через "F12" то не находит . Можно ли как-то исправит ?
Потом для временной проверки создал 3 секундный таймер , и внутри него поставил проверку SendClientCheck для всех игроков .
Итог: начал находит у всех собейт, даже тех у кого нету. Из-за чего может быть ?