1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

HWID бан

Тема в разделе "Оффтопик", создана пользователем Nupke, 28 авг 2015.

  1. kursorik

    kursorik Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    kursorik
    Не могу дать, так как не могу разглашать концепцию защиты.
     
  2. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    То-есть человек будет покупать какой то "нонейм"? Если ты что-то продаешь, будь добр продемонстрируй работу сие защиты, а то окажется. Человек купил, а тут бац и обход слили в паблик.
    Тогда легче попросить @HoShiMin дописать к FMX лаунчеру бан по железу.
     
  3. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    Причем тут защита? если бан по HWID....
    У сашка с джавой две вариации: 1. Есть джарник но он не будет работать без джавы(авторизироваться)... 2: Есть нативный екзешник который грузит лаунчер через jni, а там... сашок отработанный временем.. (HWID я сделал для другого проекта.... даже не для ТС'а (вот только веб-часть они сами написали...(я уже написал скрипт)))
    А в NTSystem же есть бан ... @HoShiMin Сделаешь в FMX ?
     
  4. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Здесь вот какая ситуация: в NTSystem реализовать баны было делом пары минут, так как всё работало на самописной базе, из которой очень просто делать выборку и добавлять туда новые хвиды. Но в FMX всё упирается в то, что я не знаю SQL. Сам лаунчер эти хвиды получает и отправляет скрипту авторизации, но в самом скрипте никакой обработки хвидов нет. Найдите любого веб-разработчика (да хоть того же Владлена), который за полчаса накидает реализацию банов с красивой веб-мордой - и дело в шляпе. В коде лаунчера для этого ничего менять не надо, достаточно отправить лаунчеру ответ такого вида:
    Код:
    {
        "status" : "error",
        "reason" : "Вы забанены!"
    }
    
    Сам хвид в auth.php лежит в $_POST['hwid']
    Хвид основан на CPUID и физ. номерах жёстких дисков.

    Так что, товарищи веб-разработчики, за дело.
     
  5. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    ха ... тогда у меня все готово... там "new PDO"? да?
     
  6. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    У меня есть 4 процессора под 1 сокет. :D
     
  7. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Наверно
    У меня два) А кто-то называет процессор системным блоком)
     
  8. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    :D
     
  9. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    SELECT * FROM table WHERE login= :login
    //
    rows > 0
    UPDATE table SET HWID= :HW WHERE login= :login
    rows < 0
    INSERT INTO table ( login, HWID) VALUES( :HW, :login)
    //
    SELECT * FROM table WHERE HWID= :HW
    rows >1 = multi-akk
    rows <1
    SELECT * FROM bans_table WHERE login= :login OR HWID= :HW
    rows > 0 = rows['reason']
    Укоротите...
     
  10. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Неверное решение. Если пользователь поменял жёсткий диск - не значит, что его надо банить. В NTSystem это учтено, и на каждого пользователя заводится своя база хвидов, с которыми он когда-либо заходил. А когда баним его - в бан улетают сразу все его накопленные хвиды.
     
  11. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    Тут как бы наоборот... если строк с этим айдишником больше одной то это муьти
     
  12. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Тоже неправильно. Если чел решил зайти со своего акка в гостях у друга - тоже нельзя его за это банить.
     
  13. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    А как ты хочешь?
     
  14. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Я хочу так, как я написал выше - именно так, как сделано в NTSystem.
     
  15. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Вот и думай, как это чекнуть. Не я тут специалист по SQL, иначе давно бы написал. В NTSystem это делалось на раз-два более прямолинейными способами.
     
  16. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    Неееет ты мне логически скажи как это сделать...
    или скажи как в ntsystem это делается
     
  17. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Логически вот так: для каждого зарегистрировавшегося игрока создаём свою собственную базу с hwid'ами. Игрок может заходить с любых компов, и все хвиды, с какими он когда-либо заходил, записываются в его базу.

    Авторизовался -> отправил хвид -> если этого хвида нет в базе его хвидов - добавляем -> если этого хвида нет в базе забаненных хвидов - разрешаем авторизацию.

    Аналогично для других пользователей. При этом мы не проверяем, есть ли полученный хвид у какого-то другого пользователя.

    А теперь мы решили забанить игрока. Просто берём всё содержимое базы его хвидов, и сбрасываем в базу забаненных хвидов. Готово.
     
  18. log_inil

    log_inil Активный участник Пользователь

    Баллы:
    88
    так я и от мульти акка сделал.. если строка только одна то идет проверка по забаненому хвиду если там сторка есть то не впускаем...
    я тогда сам хз как это сделать.. в мюслях наверное есть что-то типо массива..
    ну или на крайний случай создавать таблицу....
     
  19. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    К чему 2 базы то?
    Можно же писать player hwid 0.
    При бане прописать на все записи player hwid 1.
     
  20. HoShiMin

    HoShiMin Старожил Пользователь

    Баллы:
    173
    Как вариант. В NTSystem мне было удобнее раскидать по отдельным базам, чтобы в случае чего можно было руками в блокноте что-то поправить. В случае SQL, куда руками не залезешь, наверно действительно удобнее хранить всё в одной базе. Кто как хочет, тот так др...
     

Поделиться этой страницей