PDA

Просмотр полной версии : [Native] SendClientCheck



Snoowker
13.02.2014, 01:34
И так приветствую дорогие юзеры new портала pro-pawn, сегодня мы рассмотрим таинственную функцию SendClientCheck)
И так приступим?
1.Функция SendClientCheck ничего не возвращает но вам придется юзать callback (http://ru.wikipedia.org/wiki/Callback_(программирование)) OnPlayerCheckResponse ,да да вы правы результат приходит именно туда)
2.Для того чтобы правильно чекать вам надо знать синтаксис содержащий 5 аргументов >
SendClientCheck(игрок, тип запроса, адрес в памяти,offset , сколько_прочитать);
Кста античит на адвансе реализован с помощью данных функции :D
Дак что дерзайте!!

[ForD]
13.02.2014, 09:48
Это вроде функция добавлена в 0.3х? Она там вроде считывает данные с памяти компьютера,точно не помню что говорили,но сказали вещь вполне может быть полезная,в основном в сфере анти-чита,распиши подробнее эту функцию.

tester
13.02.2014, 13:23
Пример использования можно сколько находил в сети код, ни один не робит

DeimoS
13.02.2014, 13:30
As I said before, it computes the checksum for an array of bytes at given address in gta_sa.exe memory, so every cheat can be detected: CLEOs, s0beit, and so on. Talking about RakNet layer, when you connect to the server which calls SendClientCheck, it sends an RPC (contains address) action to the client and client also responds with the RPC (contains checksum).

It can be used like this:
SendClientCheck(playerid, 5 (iCmd), Address, Offset (relative to address), BytesCount);

and callback:
OnClientCheckResponse(playerid, iCmd, Address, checksum);
Кто знает английский - поймёт. Именно её и слил Y-Less на читерские форумы и именно её, как я знаю, уже умеют обходить ;)

[ForD]
13.02.2014, 13:51
Кто знает английский - поймёт. Именно её и слил Y-Less на читерские форумы и именно её, как я знаю, уже умеют обходить ;)

Да-да-да,из-за этого его и тусанули из бета-тестеров..
Все-же,функция полезная,и надумать можно с ней достаточно.

tester
13.02.2014, 15:22
У кого есть рабочий пример ?

Daniel_Cortez
13.02.2014, 16:58
1. Что означает параметр "тип запроса" (iCmd)?
2. Если верить словам одного из бета-тестеров SA:MP, эта функция была добавлена для тестирования и может быть удалена при релизе 0.3z.

UPD: Проверил релиз 0.3z, который был буквально несколько часов назад. Функция SendClientCheck не была удалена, так что есть смысл попробовать сваять простенькую защиту от собейтов и т.п. нечисти.

DeimoS
13.02.2014, 19:42
1. Что означает параметр "тип запроса" (iCmd)?
2. Если верить словам одного из бета-тестеров SA:MP, эта функция была добавлена для тестирования и может быть удалена при релизе 0.3z.

UPD: Проверил релиз 0.3z, который был буквально несколько часов назад. Функция SendClientCheck не была удалена, так что есть смысл попробовать сваять простенькую защиту от собейтов и т.п. нечисти.

Забудь ты об этой функции. Повторяю, все её параметры слиты читерам и полностью описаны методы её работы с данными. Даже уже обход кто-то писал, как я знаю

Daniel_Cortez
13.02.2014, 19:54
Забудь ты об этой функции. Повторяю, все её параметры слиты читерам и полностью описаны методы её работы с данными. Даже уже обход кто-то писал, как я знаю
Уже в курсе, но обход у них пока что такой: клиент элементарно не отвечает на SendClientCheck. Но и это можно сдетектить: записываешь в глобальную переменную статус проверки игрока и ставишь таймер. Если клиент не ответил в течении нескольких секунд - hax detected.

DeimoS
13.02.2014, 19:59
Уже в курсе, но обход у них пока что такой: клиент элементарно не отвечает на SendClientCheck. Но и это можно сдетектить: записываешь в глобальную переменную статус проверки игрока и ставишь таймер. Если клиент не ответил в течении нескольких секунд - hax detected.

И этот обход придуман буквально за день после слива. Только подобную защиту поставит какой-нибудь SAMP-RP, сразу появится спрос на обход и сделают какую-нибудь подмену данных или что-то вроде того.

[ForD]
13.02.2014, 21:06
Мне кажется данная функция все-же будет полезна в будущем,да и вроде на адвансе уже такая защита стоит,более-менее успешно,вроде.
В общем,будем ждать и надеяться.

DeimoS
13.02.2014, 21:22
;27767']Мне кажется данная функция все-же будет полезна в будущем,да и вроде на адвансе уже такая защита стоит,более-менее успешно,вроде.
В общем,будем ждать и надеяться.

Только в случае, если Куй переработает функцию и уже не допустит расшифровки данных. И то, даже в случае отсутствия сливов, её всё равно обойдут, как это было с античитом в 0.2 версиях.
На Адвансе она работает только потому, что об функции стало известно дня 3 назад и школьники, которые бегают с читами, ещё не нашли способа обойти её, ибо гуглом пользоваться не умеют. Погоди немного и в тот же собейт вошьют какую-нибудь подмену данных, как это было сделано с функцией GetPlayerVersion (или как она там).
В общем, читеры всегда будут на шаг впереди и к этому давно пора привыкнуть. Любой античит, который хоть немного распространён на серверах, обойдут легко, ибо пространства для поиска дыр много.

- - - Добавлено - - -

Да и не будем забывать о том, что любую информацию, которая храниться на стороне клиента, можно подменить. Ярким примером являются деньги.

[ForD]
13.02.2014, 21:31
Только в случае, если Куй переработает функцию и уже не допустит расшифровки данных. И то, даже в случае отсутствия сливов, её всё равно обойдут, как это было с античитом в 0.2 версиях.
На Адвансе она работает только потому, что об функции стало известно дня 3 назад и школьники, которые бегают с читами, ещё не нашли способа обойти её, ибо гуглом пользоваться не умеют. Погоди немного и в тот же собейт вошьют какую-нибудь подмену данных, как это было сделано с функцией GetPlayerVersion (или как она там).
В общем, читеры всегда будут на шаг впереди и к этому давно пора привыкнуть. Любой античит, который хоть немного распространён на серверах, обойдут легко, ибо пространства для поиска дыр много.

- - - Добавлено - - -

Да и не будем забывать о том, что любую информацию, которая храниться на стороне клиента, можно подменить. Ярким примером являются деньги.

Как-же ты зло настроен,есть много способов фиксить читы,которые не могут обойти читеры,они сделаны со временем,так и со временем интегрированая защита может дойдет до более менее надлежащего уровня,надеюсь,а по сути данная функция явно пригодиться мозговатым людям,которые найдут способ избавиться от изъянов,так что не надо так уж усердно порочить эту функцию :3

DeimoS
13.02.2014, 21:41
;27778']Как-же ты зло настроен,есть много способов фиксить читы,которые не могут обойти читеры,они сделаны со временем,так и со временем интегрированая защита может дойдет до более менее надлежащего уровня,надеюсь,а по сути данная функция явно пригодиться мозговатым людям,которые найдут способ избавиться от изъянов,так что не надо так уж усердно порочить эту функцию :3

Есть онлайн игры, например: Point Blank. Люди, создающие данную игру, нацелены на получение максимальной прибыли от игры. Там работают программисты, которые получают приличные деньги. Вряд ли хоть кто-то из тех, кто посещает этот форум, имеет такой же опыт, какой имеют они. Но даже у них не удаётся побороть читеров на все 100%. А читеры убивают приличный процент потенциальных игроков (я, например, перестал играть в онлайн шутеры именно из-за читеров). Не думаю, что если бы у них была возможность пофиксить все читы разом, они бы отказались от неё. А число этих самых читов и количество обходов античита (которых с каждым днём всё больше) довольно много.

В общем, просто стоит понять, что над защитой работают человек 5-10 (это если какая-нибудь супер компания, где наняли специалистов для создания античита), а читеров в тысячи раз больше. Даже взять SA-MP, в котором рекорд онлайна составляет 57 тысяч игроков. Против одного скриптера выступает десяток читеров, которые смыслят в программировании не хуже скриптера и примерно понимают механизмы любой защиты => примерно знают где можно искать дыры.
Я не знаю как вам ещё объяснить то, что силы в этой борьбе не равны. Чтобы сделать стоящий античит, нужно забить на разработку всего остального проекта и каждый день выискивать любую информацию в интернете + самостоятельно проверять каждого игрока на предмет нахождения этим самым игроком дыры в античите. То есть, любой античит требует постоянных доработок и даже они не спасут от читеров. Ибо, как говорилось выше, скриптер 1, а читеров сотни. И вторые не будут просто так сидеть, когда увидят обновление в твоём античите. Они тут же пойдут искать в нём дыры и делать обходы.

И по поводу функции. С чем она работает? А работает она с памятью клиента. Клиента. Представь, что я сейчас попытаюсь проверить твой компьютер на предмет порно в диске D. Что тебе мешает написать скрипт, который будет отлавливать мой запрос и отправлять его, например, в диск С, при этом говоря ему: "Это диск D. Серьезно! Ты не веришь мне? Да как я тебя могу обмануть!? Верь мне!".
В теме, куда Y_Less слил инфу о функции, тут же обсудили способы обхода её и одним из способов было перенаправление функции на чистую версию игры.
Я в техническом плане не особо смыслю пока, но и ежу должно быть понятно, что клиенту гораздо проще работать со своей памятью и сделать подмену, нежели удалённому серверу.

[ForD]
13.02.2014, 22:01
Есть онлайн игры, например: Point Blank. Люди, создающие данную игру, нацелены на получение максимальной прибыли от игры. Там работают программисты, которые получают приличные деньги. Вряд ли хоть кто-то из тех, кто посещает этот форум, имеет такой же опыт, какой имеют они. Но даже у них не удаётся побороть читеров на все 100%. А читеры убивают приличный процент потенциальных игроков (я, например, перестал играть в онлайн шутеры именно из-за читеров). Не думаю, что если бы у них была возможность пофиксить все читы разом, они бы отказались от неё. А число этих самых читов и количество обходов античита (которых с каждым днём всё больше) довольно много.

В общем, просто стоит понять, что над защитой работают человек 5-10 (это если какая-нибудь супер компания, где наняли специалистов для создания античита), а читеров в тысячи раз больше. Даже взять SA-MP, в котором рекорд онлайна составляет 57 тысяч игроков. Против одного скриптера выступает десяток читеров, которые смыслят в программировании не хуже скриптера и примерно понимают механизмы любой защиты => примерно знают где можно искать дыры.
Я не знаю как вам ещё объяснить то, что силы в этой борьбе не равны. Чтобы сделать стоящий античит, нужно забить на разработку всего остального проекта и каждый день выискивать любую информацию в интернете + самостоятельно проверять каждого игрока на предмет нахождения этим самым игроком дыры в античите. То есть, любой античит требует постоянных доработок и даже они не спасут от читеров. Ибо, как говорилось выше, скриптер 1, а читеров сотни. И вторые не будут просто так сидеть, когда увидят обновление в твоём античите. Они тут же пойдут искать в нём дыры и делать обходы.

И по поводу функции. С чем она работает? А работает она с памятью клиента. Клиента. Представь, что я сейчас попытаюсь проверить твой компьютер на предмет порно в диске D. Что тебе мешает написать скрипт, который будет отлавливать мой запрос и отправлять его, например, в диск С, при этом говоря ему: "Это диск D. Серьезно! Ты не веришь мне? Да как я тебя могу обмануть!? Верь мне!".
В теме, куда Y_Less слил инфу о функции, тут же обсудили способы обхода её и одним из способов было перенаправление функции на чистую версию игры.
Я в техническом плане не особо смыслю пока, но и ежу должно быть понятно, что клиенту гораздо проще работать со своей памятью и сделать подмену, нежели удалённому серверу.

С этим я и не спорю.увы. Я о том что негативно ты настроен,да и вся проблема в том, что в каждом проекте есть определенный человек(назовем по народному"крыса") который сливает инфу,вот и в данный момент яркий пример, "Y_Less". Я не говорю что можно защититься на все 100%,я просто говорю то,что надежда умирает последней. О как загнул :read:

DeimoS
13.02.2014, 22:43
;27784']С этим я и не спорю.увы. Я о том что негативно ты настроен,да и вся проблема в том, что в каждом проекте есть определенный человек(назовем по народному"крыса") который сливает инфу,вот и в данный момент яркий пример, "Y_Less". Я не говорю что можно защититься на все 100%,я просто говорю то,что надежда умирает последней. О как загнул :read:
Я настроен позитивно и в моей голове имеется куча способов для борьбы с читерами, но я реалист. Не найдётся функции, которая решит все проблемы. И надеяться на слитую функцию уж тем более не стоит.

А по поводу Y_Less'a. Всей ситуации мы не знаем, поэтому обвинять, а уж тем более оскорблять, кого-то не стоит :)

[ForD]
13.02.2014, 23:07
Я настроен позитивно и в моей голове имеется куча способов для борьбы с читерами, но я реалист. Не найдётся функции, которая решит все проблемы. И надеяться на слитую функцию уж тем более не стоит.

А по поводу Y_Less'a. Всей ситуации мы не знаем, поэтому обвинять, а уж тем более оскорблять, кого-то не стоит :)

Ох реалисты-реалисты.. В почках вы сидите уже :sarcastic: (шутка)
Я про надежду не говорил,я говорил про так называемый шанс который со временем можно будет использовать,я так думаю.
А на счет оскорбления ты категорически не прав,прав в том что мы не знаем сути,но фак есть факт,опять-же на счет оскорблений,я чисто привел пример для общего понимания ибо он более известен :pleasantry: и выражает суть моих слов.:scratch_one-s_head:

Avertus
13.02.2014, 23:57
А может все бетатестеры перешли в новый проект и вредят sa-mp... Удалил ссылку (Salvador)

Salvacore
14.02.2014, 00:25
А может все бетатестеры перешли в новый проект и вредят sa-mp... Удалил ссылку (Salvador)
Там русские...

DeimoS
14.02.2014, 06:10
;27798']Ох реалисты-реалисты.. В почках вы сидите уже :sarcastic: (шутка)
Я про надежду не говорил,я говорил про так называемый шанс который со временем можно будет использовать,я так думаю.
А на счет оскорбления ты категорически не прав,прав в том что мы не знаем сути,но фак есть факт,опять-же на счет оскорблений,я чисто привел пример для общего понимания ибо он более известен :pleasantry: и выражает суть моих слов.:scratch_one-s_head:

О каком шансе идёт речь?
И какой факт? Может Калкор Y_Less'a кинул на деньги, например :D

[ForD]
14.02.2014, 10:43
О каком шансе идёт речь?
И какой факт? Может Калкор Y_Less'a кинул на деньги, например :D

Да уж,если и правда так то это было-бы просто чудно(ударение на о`).. =\

DeimoS
14.02.2014, 11:46
;27828']Да уж,если и правда так то это было-бы просто чудно(ударение на о`).. =\

Я НЕ ПОНИМАТ :((

[ForD]
14.02.2014, 11:53
Я НЕ ПОНИМАТ :((

=D
В общем если-бы Y_Less`у Калкор денег должен был-бы то это было-бы так скажем весело) вот.

tester
14.02.2014, 14:18
У кого есть рабочий код ?

DeimoS
14.02.2014, 16:44
У кого есть рабочий код ?

Смысл третий раз спрашивать? Если бы он был у кого-то, скинули бы уже

Jeff_Monson
14.02.2014, 19:12
#include <a_samp>



#define NULL 0

#define function%0(%1) forward%0(%1); public%0(%1)

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



main() {

new playerid;

CallLocalFunction("OnPlayerConnect", "d", playerid);

return false;

}



stock PlayerName(playerid) {

new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name));

return Name;

}



public OnPlayerConnect(playerid) {

printf("%s dołącza do serwera", PlayerName(playerid));

new actionid = 0x5, memaddr = 0x5E8606, retndata = 4;

SendClientCheck(playerid, actionid, memaddr, NULL, retndata);

printf("Sprawdzanie gracza %s:\n%d\n%d\n%d\n%d\n%d", PlayerName(playerid), playerid, actionid, memaddr, NULL, retndata);

switch(retndata) {case 10: {

printf("Użytkownik %s prawdopodobnie posiada s0beita, bądź plik d3d9.dll w katalogu z GTA San Andreas", PlayerName(playerid));

}}

return true;

}



function OnClientCheckResponse(playerid, actionid, memaddr, retndata) {

switch(retndata) {

case 0xA: printf("TA DZIWKA MA CZITY, ZBANÓJ JOM111");

}

return true || false; // nie wiem

}

- - - Добавлено - - -

не понял в чем дело )

SDraw
14.02.2014, 22:43
Интыресненько)

Snoowker
15.02.2014, 14:44
Конечно :feminist:

EvgeN 1137
28.02.2014, 18:58
На Адвансе она работает только потому, что об функции стало известно дня 3 назад и школьники, которые бегают с читами, ещё не нашли способа обойти её, ибо гуглом пользоваться не умеют. Погоди немного и в тот же собейт вошьют какую-нибудь подмену данных, как это было сделано с функцией GetPlayerVersion (или как она там).
лол
ну начнём с того, что античит был установлен на адванс в ноябре (!), потом он снимался на доработки и из-за некоторых проблем он не продержался там больше недели. потом античит был возвращён в январе, и чуть позже вышел R2-patch1, в котором была SendClientCheck. А ещё в декабре он был на ричворлде. А теперь давайте посмотрим, когда же Y_Less слил функцию: 3 февраля. На тот момент адванс уже успел 3 раза взорвать читерское комьюнити. А после того, как Y_Less слил, пошли клепать свои античиты всякие сервера типа Absolute.
А после того, как была слита вся подробная инфа читерам - не было смысла продолжать делать мой античит, и на арп в феврале его не было

DeimoS
01.03.2014, 19:52
лол
ну начнём с того, что античит был установлен на адванс в ноябре (!), потом он снимался на доработки и из-за некоторых проблем он не продержался там больше недели. потом античит был возвращён в январе, и чуть позже вышел R2-patch1, в котором была SendClientCheck. А ещё в декабре он был на ричворлде. А теперь давайте посмотрим, когда же Y_Less слил функцию: 3 февраля. На тот момент адванс уже успел 3 раза взорвать читерское комьюнити. А после того, как Y_Less слил, пошли клепать свои античиты всякие сервера типа Absolute.
А после того, как была слита вся подробная инфа читерам - не было смысла продолжать делать мой античит, и на арп в феврале его не было

Так о том и речь. Античит работал только потому, что о функции ещё толком никто не знал и её пользовалась пара десятков серверов. Популярность функции маленькая и информации мало => заинтересованных в её обходе не так много => на обход ушло бы больше времени. Теперь же инфу о функции слили и если её начнут активно использовать, обход для неё склепают и выставят в общий доступ.
Да и вообще, зачем я по 20 раз повторяю одно и то же? Посмотрите на античиты для онлайн игр и всё сами поймёте. Не важно где её использовали и где она работало. Важно то, что о ней не было известно на тот момент большинству. Она была скрытой дабы использовали её как можно меньше серверов и была она как можно дольше рабочей.