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

Тема: gpci

  1. #1
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±

    gpci

    Описание:
    Получает у игрока хеш от данных аккаунта пользователя Windows.

    Параметры:
    playerid - ID игрока.
    buffer[] - переменная (массив), в которой будет записан хеш. Рекомендуемый размер: 40+1 (длина хеша + символ завершения строки),
    size - размер массива buffer (необязательный параметр, если объявить функцию вручную с "size = sizeof(buffer)").

    Возвращаемое значение:
    Если указанный игрок подключен, функция возвращает длину хеша (сам хеш возвращается через массив buffer), иначе возвращает 0.

    Примечания:
    • Функция существует, начиная с SA:MP 0.3b R1. Основным назначением функции в то время была блокировка читеров.
      Тем не менее, не рекомендуется использовать функцию для идентификации игроков (например, при бане игрока).
      Хеш вычисляется из данных аккаунта пользователя в Windows.
      Эти данные могут совпадать у разных игроков, поэтому хеш не уникален для каждого игрока.
      Есть вероятость, что если забанить игрока по gpci, то вместе с ним окажутся забанены ещё несколько игроков с таким же хешем (примерно 5-10%, со слов куя).
      Допускается банить игроков по gpci только в самых крайних случаях (например, если читер терроризирует сервер, не давая никому спокойно играть, и обычный бан по IP не помогает, т.к. читер легко может сменить IP, всего лишь перезагрузив роутер), но ни в коем случае не для бана рядовых игроков.
    • Функция не объявлена в инклудах SA:MP, но присутствует в коде сервера, поэтому следует объявлять её вручную.
      PHP код:
      #if !defined gpci // не помешает сначала проверить, вдруг эта функция уже была где-то объявлена
      native gpci(playeridbuffer[], size sizeof(buffer));
      #endif 
      Функция не задокументирована на SA:MP wiki, т.к. раскрытие принципа её работы может помочь читерам для обхода бана.
      Но кого-нибудь это когда-то останавливало? Бан по gpci давно научились обходить: нужно сменить аккаунт пользователя в Windows, либо создать новый аккаунт, если он у вас только один. Соль лишь в том, что для читеров эти усилия того не стоят - уже не получится после каждого бана сволочно реконнектиться через пару секунд с новым IP. Правда, в теории есть возможность подделать данные для gpci, покопавшись в памяти клиента.
    • Также, если вам непривычно название функции в виде аббревиатуры строчными буквами, можно объявить функцию с другим названием в том же стиле, в котором названы все остальные функции SA:MP:
      PHP код:
      #if !defined GetPlayerClientID
      native GetPlayerClientID(playeridbuffer[], size sizeof(buffer)) = gpci;
      #endif 
    • Комментарий самого куя по поводу gpci: http://pastebin.com/VQSGpbSm

    Пример использования:
    1. #if !defined GetPlayerClientID
    2. native GetPlayerClientID(playerid, buffer[], size = sizeof(buffer)) = gpci;
    3. #endif
    4.  
    5. public OnPlayerConnect(playerid)
    6. {
    7. new buffer[40+1];
    8. GetPlayerClientID(playerid, buffer);
    9. printf("gpci: %s", buffer);
    10. }

    См. также:


    Статью подготовил: Daniel_Cortez
    Специально для Pro-Pawn.ru
    Копирование данной статьи на других порталах без разрешения автора запрещено!
    Последний раз редактировалось Daniel_Cortez; 14.04.2017 в 19:30. Причина: print => printf
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. 9 пользователя(ей) сказали cпасибо:
    $continue$ (29.07.2015) Alexander (29.07.2015) Desulaid (31.07.2015) oukibt (28.06.2020) Processing (13.07.2016) Prolific (03.03.2016) Sp1ke (29.07.2015) [ForD] (29.07.2015) _lizard (21.07.2016)
  3. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А допустим если запустить GTA и зайти на сервере где чекается GPCI через Wine (Unix системы)

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Было раза три или четыре что 3-4 юзера получили бан по gpci(в БД я пробил их последнее посещение и IP)
    Заходят абсолютно другие IP(не факт может поменяли, но больно уж совсем другие) и у них висят такие же ID ...
    Я вот думаю каковы шансы что при установки клиента, могут быть заданы похожие ID's gpci?
    Правда ли это была что эти новенькие были действительно новенькими или шанс совпадения gpci не очень малый..
    Загадка осталась для меня загадкой...
    Последний раз редактировалось vovandolg; 24.12.2015 в 02:02.

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

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    196
    Репутация:
    22 ±
    То есть, для бана её не используешь, для проверки на мультиакк тоже, к тому же, её при желании можно обойти... так что тогда с ней делать?

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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от Edwin Посмотреть сообщение
    То есть, для бана её не используешь, для проверки на мультиакк тоже, к тому же, её при желании можно обойти... так что тогда с ней делать?
    Она просто есть На то она и не объявлена в инклудах, ибо не имеет смысла в использовании

  7. #6
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Она просто есть На то она и не объявлена в инклудах, ибо не имеет смысла в использовании
    Она не объявлена в инклудах, чтобы скрыть её от обычных смертных рядовых скриптеров. В своё время ей пользовались только владельцы крупных проектов в случаях, когда забанить пару невиновных игроков было меньшим злом, чем подвергнуть опасности весь сервер.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  8. Пользователь сказал cпасибо:
    vovandolg (18.08.2016)
  9. #7
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    До сих пор её юзаю
    От DDoS'а подсеть, от назойливых читерюг с голодного края gpci)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    До сих пор её юзаю
    От DDoS'а подсеть, от назойливых читерюг с голодного края gpci)
    тебе помогает gpci? А если "забанишь" читера,и другие игроки не смогут войти ??
    Кст,с подсетью такие же траблы могут быть



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от Profyan Посмотреть сообщение
    тебе помогает gpci? А если "забанишь" читера,и другие игроки не смогут войти ??
    Кст,с подсетью такие же траблы могут быть
    Ну по крайней мере, если банить по gcpi, то читерам лень будет менять винду (или как там сменить этот хэш аккаунта)

  12. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    В идеале следовало бы собрать базу хешей клиентов с одного или нескольких проектов и по ним составить статистику по наиболее распространённым хешам.
    Даже если публиковать хеши без согласия игроков, это будет вполне законно, т.к. они по сути являются анонимными данными - нельзя определить какого-то конкретного пользователя по хешу.
    Такая база может пригодиться, чтобы перед баном по gpci проверить, является ли хеш игрока одним из самых распространённых, и в случае чего вывести администратору диалоговое окно для подтверждения.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

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

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

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

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

Ваши права

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