Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 5 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 10 из 50
  1. #1
    Аватар для TBoPoIIIoK
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.07.2016
    Сообщений
    29
    Репутация:
    2 ±

    Защита обхода регистрации

    Всем привет. Многие наверное знают что можно обойти систему регистрации и авторизации. Суть обхода заключается в том, что игрок не вызывает OnPlayerRequestClass и напрямую ставит себе состояние PLAYER_STATE_ONFOOT без PLAYER_STATE_SPAWNED. И так, как же это исправить ? Да очень просто.
    1. Ко всем переменным добавляем -
    PHP код:
    new boolac_1[MAX_PLAYERS char]; 
    2. В OnPlayerConnect добавляем обнуление переменной -
    PHP код:
    ac_1{playerid} = false
    3. В OnPlayerRequestClass добавляем (чтобы исключить ложные срабатывания) -
    PHP код:
    ac_1{playerid} = true
    4. Ну и напоследок в OnPlayerStateChange добавляем (в самое начало) проверку состояния и переменной -
    PHP код:
    if(!ac_1{playerid} && newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_NONE) return SendClientMessage(playerid0xE6E6FAFF"AC #1 [ОБХОД РЕГИСТРАЦИИ / АВТОРИЗАЦИИ]"); 
    Вот собственно и все, наша защита готова. А вот собственно доказательство что все работает -
    Не забываем, что "SendClientMessage(playerid, 0xE6E6FAFF, "AC #1 [ОБХОД РЕГИ / АВТОРИЗАЦИИ]");" нужно заменить на свое наказание.
    Всем спасибо за просмотр. Критика и идеи приветствуются.
    Последний раз редактировалось TBoPoIIIoK; 13.07.2016 в 20:43. Причина: char

  2. #2
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Молодец, простая и эффективная защита. Жаль плюсы здесь ставить почему-то нельзя xD
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  3. #3
    Аватар для HarrWe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.05.2016
    Сообщений
    144
    Репутация:
    11 ±
    Годно, поставил в свой мод)

  4. #4
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    1. В pawn не существует логический тип данных (bool), это просто макрос, подробнее тут
    2. После авторизации / регистрации, переменная останется просто в памяти, нет нужды, раз так лучше уж использовать pvar и удалить его

    PHP код:
    public OnPlayerConnect(playerid)
    {
        
    SetPvarInt(playerid"connecting"1);
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    DeletePVar(playerid"connecting");
        return 
    1;
    }

    public 
    OnPlayerSpawn(playerid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    SendClientMessage(playerid0xCD0000FF"Подозрение в читерстве!");
        return 
    1;

    Последний раз редактировалось Geebrox; 13.07.2016 в 14:06.
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  5. #5
    Аватар для TBoPoIIIoK
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.07.2016
    Сообщений
    29
    Репутация:
    2 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    1. В pawn не существует логический тип данных (bool), это просто макрос, подробнее тут
    2. После авторизации / регистрации, переменная останется просто в памяти, нет нужды, раз так лучше уж использовать pvar и удалить его

    PHP код:
    public OnPlayerConnect(playerid)
    {
        
    SetPvarInt(playerid"connecting"1);
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    DeletePVar(playerid"connecting");
        return 
    1;
    }

    public 
    OnPlayerSpawn(playerid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    SendClientMessage(playerid0xCD0000FF"Подозрение в читерстве!");
        return 
    1;

    1. Мне удобнее работать с ним, нежели с 1 и 0.
    2. Можно, но мне переменные как-то привычнее. Переписать на них - минутное дело, но этого делать не буду. Кому надо - сделают.

  6. #6
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Молодец, простая и эффективная защита. Жаль плюсы здесь ставить почему-то нельзя xD
    Тема не одобрена




    Мне одному не нравится такое?))
    PHP код:
    !ac_1[playerid
    Можно использовать оператор char и обращаться к байту
    Код:
    массив{индекс}
    Последний раз редактировалось Desulaid; 13.07.2016 в 15:02. Причина: описАлся)

  7. #7
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    1. В pawn не существует логический тип данных (bool), это просто макрос, подробнее тут
    2. После авторизации / регистрации, переменная останется просто в памяти, нет нужды, раз так лучше уж использовать pvar и удалить его

    PHP код:
    public OnPlayerConnect(playerid)
    {
        
    SetPvarInt(playerid"connecting"1);
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    DeletePVar(playerid"connecting");
        return 
    1;
    }

    public 
    OnPlayerSpawn(playerid)
    {
        if(
    GetPvarInt(playerid"connecting"))
            
    SendClientMessage(playerid0xCD0000FF"Подозрение в читерстве!");
        return 
    1;

    Проверялся ли этот код? Если нет, то совсем не факт, что будет вызываться OnPlayerSpawn
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  8. #8
    Аватар для TBoPoIIIoK
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.07.2016
    Сообщений
    29
    Репутация:
    2 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Проверялся ли этот код? Если нет, то совсем не факт, что будет вызываться OnPlayerSpawn
    Не вызывается. Вызывается только OnPlayerConnect и все.
    Последний раз редактировалось TBoPoIIIoK; 13.07.2016 в 14:27.

  9. #9
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Проверялся ли этот код? Если нет, то совсем не факт, что будет вызываться OnPlayerSpawn
    Я не разбираюсь в читах, если не вызывается OnPlayerSpawn то просто измени на проверку state. Главное не в этом, главное в оформление кода

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

    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Можно использовать оператор char и обращаться к биту
    может к байту?
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  10. #10
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Тема не одобрена
    Хорошая причина не считать посты и репутацию в таких темах

    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Мне одному не нравится такое?))
    PHP код:
    !ac_1[playerid
    Можно использовать оператор char и обращаться к биту
    Код:
    массив{индекс}
    Можно, но много профита ты на этом не сделаешь
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

 

 
Страница 1 из 5 1 2 3 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •