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

Защитка.

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

  1. log_inil

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

    Баллы:
    88
    Ну защита работает просто, из маин класов маина грузится нативка, нативка чудом чекает хэши, выбьет запуск маина если что.
    При коннекте на сервер возможно, нативки отправляют на сервер состояние+сесию, сервер ждет ответа....
    Все ок.Заходим.Я прав?
    _______________________________________
    Прошу идеалов выше, как такое можно ломануть?
    Нативка не загрузилась?Плевать(Ухади отсуда)
    Магические хэши не совпали?....
    Сессия ничего не даст.
    Что тут можно ломануть?
     
  2. ptnk

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

    Баллы:
    173
    А ты что ещё за группа поддержки? Я как бы к одному человеку обращаюсь и хочу узнать от него вопросы, от куда вы такие подруги вылезаете?
    И читай сообщения внимательнее.
     
  3. Автор темы
    Sm1leTwo

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

    Баллы:
    73
    Имя в Minecraft:
    Sm1leTwo
    Думаю все с этого и начинали.
    У HoShiMin просто лаунчер с "своей явой" и проверкой всех файлов, ничего уникального в этом нет (Сам лаунчер и ратиборец хорош, не отрицаю). И да, обходится "своя ява" обычным хуком WinAPI.
    Просто? :) Я посмотрю как вы будете чекать MD5 подгруженного класса :) Сессию мы не трогаем.
     
  4. log_inil

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

    Баллы:
    88
    охосподи.....:creeper:
     
  5. ptnk

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

    Баллы:
    173
    Так ты можешь ответить на вопрос нормально? Чекается внутри jni или в коде клиента?
     
  6. XENIUD

    XENIUD Новичок

    Баллы:
    16
    ptnk, Он не уточнял, что это java-клиент. А dll, в которой проверки, находится у клиента.
    log_inil, Грубо конечно, но как-то так, да. При подключении к серверу все пока что проще и универсальнее. Dll подгружает защитный класс, который не получить средствами java и без которого не зайти на сервер.
    P.S. - Разработкой(реализацией) занимаюсь я...
     
  7. log_inil

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

    Баллы:
    88
    Давно интересовался, а как в JNI загрузить класс из чего либо кроме файла?
    Как вы думаете? на кой черт тогда создовать библиотеки длл если чекается в клиенте? что за бред?
     
  8. XENIUD

    XENIUD Новичок

    Баллы:
    16
    Загружать в JNI? 0_0
    Наверное, ты хотел сказать в JVM... Класс загружается из файла, а точнее из самой dll, в которой он зашифрован.
    P.S. - Походу тут у всех своя терминология...
     
  9. log_inil

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

    Баллы:
    88
    Лол, в принципе я правильно сказал, в JVM через JNI
    Но как? из ресурсов в байты? поток? Там есть отдельный метод для принятия не пути файла?
     
  10. XENIUD

    XENIUD Новичок

    Баллы:
    16
    Не будем раскрывать всех секретов) Описание защиты думаю еще сделаем.
     
  11. Konstantin773

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

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    @XENIUD , сервер врубите
     
  12. ptnk

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

    Баллы:
    173
    Будет тестовый сервер - будем смотреть

    Ну а в чём собственное проблема загрузить класс из чего либо?
    В Java есть различный загрузчики классов, немного добавив своей логики можно загружать классы от куда угодно, делать замены классов на лету. Т.к. содержимое представляется ввиде байт-кода, то класс можно формировать хоть на лету.
    Вот документация по структуре классов:
    http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

    Ну так вот, т.к. структура известна, есть различные библиотеки, с помощью которых можно делать всё, что захочется с классами.
     
  13. HoShiMin

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

    Баллы:
    173
    В списке возможностей заинтересовала защита от инъекций. Как это реализовано? Через упреждающий перехват CreateRemoteThread или же (что, судя по описанию, более вероятно), через перехват VirtualProtect (их аналоги из Native API)? И как быть с консольными приложениями (или с приложениями, не использующими user32.dll, если инъекции через реестр) и приложениями, помеченными как системные? Инъекции проводятся в них тоже? Или защита от внедрения dll'oк (почему только dll'oк?) реализована совсем иначе?
     
  14. XENIUD

    XENIUD Новичок

    Баллы:
    16
    Защита от инъекций, если в таком понимании, то, пока что, было только в планах... Мой напарник видимо перестарался, подгоняя описание под шаблон. Я надеюсь, он сегодня же уберет лишнее. Но, есть нечто подобное, обнаружение использования того, за чем собственно и внедряют dll. В частности, защищает от моего GUB(глоб. универс. обх.), который еще, правда, не вышел в свет.
    Тестовый сервер, опять же у напарника... Сегодня еще сделаю обновление. Терпения господа :)
     
  15. Konstantin773

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

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Сразу скажу, защита нормальная, обойти смогут лишь единицы. Можно доверять.

    [​IMG]
     
    Последнее редактирование: 17 фев 2015
  16. Автор темы
    Sm1leTwo

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

    Баллы:
    73
    Имя в Minecraft:
    Sm1leTwo
    :)
     
  17. new-sashok724

    new-sashok724 Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    sashok724
    Security through obscurity? Нормальная защита не требует чтобы никто не знал как она работает. Как пример AES - описание алгоритма и примеры реализации есть, но его еще никто не сдул. И очень интересно, почему Windows-only? Что мешает использовать JNI под линуксом/маком?
     
  18. Автор темы
    Sm1leTwo

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

    Баллы:
    73
    Имя в Minecraft:
    Sm1leTwo
    Вообще, AES сдули. Где-то читал, что изобрели алгоритм, который по 80 строкам, зашифрованным одним ключом может предугадать ключ.
    Скоро защита будет и на линукс/мак.
     
  19. alexandrage

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

    Баллы:
    173
    Ок, с тебя приватный ключ моджангов :D.
    Ждемс.
     
  20. Автор темы
    Sm1leTwo

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

    Баллы:
    73
    Имя в Minecraft:
    Sm1leTwo
    Тык.
     

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