Страница 1 из 11
Форум » Программирование в Pawno » Стандартные функции » SendClientCheck, OnClientCheckResponse
SendClientCheck, OnClientCheckResponse
Добавлено 12.05.2016 в 00:35 | Сообщение №1
Сообщений: 263 Репутация: 0
Администраторы
Две скрытые функции SA-MP

Вычисляет контрольную сумму для массива байтов в указанный адрес в gta_sa.exe памяти, поэтому каждый чит можно обнаружить: Cleos, s0beit и т.д. Говоря о RakNet слоя, при подключении к серверу. которая призывает SendClientCheck, он посылает RPC (содержит адрес) действий для клиента и клиент также отвечает с RPC (содержит контрольную сумму).

Функция:
Код
native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);

Колбэк:
Код
forward OnClientCheckResponse(playerid, actionid, memaddr, retndata);

Пример (Работает или нет не знаю):
Код
#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 подключенный к серверу", PlayerName(playerid));

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

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

        printf("Проверка клиента %s:\n%d\n%d\n%d\n%d\n%d", PlayerName(playerid), playerid, actionid, memaddr, NULL, retndata);

        switch(retndata) {case 10: {

                printf("Игрок %s вероятно имеет собейт или d3d9.dll файл в директории GTA San Andreas", PlayerName(playerid));

        }}

        return true;

}

  

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

        switch(retndata) {

                case 0xA: printf("Использует читы");

        }

        return true || false;

}

Ещё нашёл вот это, не знаю пробуйте и гуглите:
Код
#include <a_samp>

forward OnClientCheckResponse(playerid, actionid, memaddr, retndata);
native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);

enum(<<= 1)
{
        NULL = 0,
SOBEIT = 0x5E8606
};

public OnPlayerConnect(playerid)
{
new actionid = 0x5, memaddr = SOBEIT, retndata = 0x4;
SendClientCheck(playerid, actionid, memaddr, NULL, retndata);
        return 1;
}

public OnClientCheckResponse(playerid, actionid, memaddr, retndata)
{
        switch(retndata)
        {
                case 0xA0: printf("Player has clear GTA.");
                default:
                {
                        printf("Player has some files installed.");
                }
        }
        return 1;
}


Программист любитель :)
Форум » Программирование в Pawno » Стандартные функции » SendClientCheck, OnClientCheckResponse
Страница 1 из 11
Поиск: