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

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

Совет Уязвимость у проектов с лаунчером Сашка

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем Veloi, 6 авг 2014.

  1. Автор темы
    Veloi

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

    Баллы:
    48
    Имя в Minecraft:
    Veloi
    Здравствуйте, дорогие рубакитовцы. Сегодня я хотел бы рассказать об уязвимости у большинства проектов с лаунчером от Сашка. Эта тема создана для новичков, т.к. опытные пользователи могут уже давно знать об этой уязвимости. Ну не буду тянуть резину.

    Как вы все знаете, чтобы реализовать вход на сервер только через лаунчер, требуется сменить ссылки на файлы в неком "классе авторизации" (я рассказываю о версии 1.7, в версиях ниже - несколько файлов). Этот класс есть и на сервере и в клиенте. Мы будем говорить о клиенте.

    Способ первый. Если клиент не обфусцирован, этот класс легко спереть и вставить в свой клиент. Вы сможете зайти на сервер под своим ником, но с читами.

    Способ второй. Если клиент обфусцирован, это не делает большой преграды... Мы можем сами узнать ссылки на эти файлы авторизации на сайте. Достаточно хорошо знать, что такое "инструменты разработчика" в браузере Google Chrome. С помощью их можно узнать путь к файлам, будучи обычным пользователем сайта.

    Предупреждаю! Эту теорию я НЕ проверял. Это только логика. Я написал эту тему, т.к. сам являюсь тех. администратором на одном проекте. Спасибо за внимание.
     
  2. Sm1leTwo

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

    Баллы:
    73
    Имя в Minecraft:
    Sm1leTwo
    Лол, ты вообще знаешь как работает авторизация? Там сессия, все дела.
     
  3. Автор темы
    Veloi

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

    Баллы:
    48
    Имя в Minecraft:
    Veloi
    Ну да, верно. Попробуй сам, я уже пробовал.
     
  4. Автор темы
    Veloi

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

    Баллы:
    48
    Имя в Minecraft:
    Veloi
    Есть вопрос: в авторизации на сервере с указанием файлов авторизации участвует только логин-пароль?
     
  5. HoShiMin

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

    Баллы:
    173
    Зачем такие сложности? Можно просто заморозить клиент сразу после запуска, вытащить сессию из командной строки, пока он не успел отдать её серверу и сделать её невалидной, запустить читерский клиент с верной сессией, а замороженный клиент закрыть.
     
  6. blogger2

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

    Баллы:
    123
    Skype:
    ilja0176
    Имя в Minecraft:
    XuPoH
    Пфф, ещё проще..
    Запустить через консоль лаунчер (-java launcher.jar тутзабылпараметры)и там словить сессию, но это только если не используется NulledStream как output-поток.
     
  7. STRELOK2022

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

    Баллы:
    88
    Имя в Minecraft:
    PolarWooolf
    Омг. Давно еще писал - полностью защититься лончером невозможно. Ставьте мощный античит на стороне сервера и не парьтесь. Иначе никак.
     
  8. rescr1pt

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

    Баллы:
    103
    Любой знающий серверодержатель знает ,что Forge пишит в логи сессию ,и тупо вырезает её в апплете(до 1.6) ,выше вроде и не пишет вообще.
    Что касается ТС ,многие уже юзают в классе отправляющему ник и сессию joinserver ,шифрование ,например AES, так что с ванильным классом просто не прокатит
     
  9. Z_v_e_R

    Z_v_e_R Участник Пользователь

    Баллы:
    31
    Даже если заенить ссылки на нужные в классах своего клиента, все равно работать не будет. Так как в лаунчера сашка все файлы в клиенте проверяются. И при замене одного из файлов уже клиент нчинает скачиваться заново.
     
  10. HoShiMin

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

    Баллы:
    173
    Если лаунчер что-то проверяет, то можно и его заморозить. В общем, морозим всех. Вот вам и чашкосдув без ограничения по времени. И никаких универсальных обходов не нужно.
     
  11. Z_v_e_R

    Z_v_e_R Участник Пользователь

    Баллы:
    31
    И каким ты способом его будешь морозить, еси не секрет?
     
  12. HoShiMin

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

    Баллы:
    173
    Сначала создам снимок всех потоков в системе через CreateToolhelp32Snapshot, по идентификатору процесса определю потоки джавы. А дальше всё просто:

    ThreadHandle = OpenThread(ThreadID, ..., THREAD_ALL_ACCESS, ...);
    SuspendThread(ThreadHandle);
    CloseHandle(ThreadHandle);

    И так для каждого потока.
     
  13. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    У меня на серверах везде стоит Orebfucsator. Даже с онлайном в 300 человек читеры - довольно таки редкое явление. Похоже, что нерабочий x-ray и фиксы дюпов отбивает желание у них читерить, а с одним спидхаком далеко в развитии не уедешь.

    Суть: Забил на защиту лаунчера в пользу серверной защиты.
     
  14. blogger2

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

    Баллы:
    123
    Skype:
    ilja0176
    Имя в Minecraft:
    XuPoH
    Ну и лалка. Взял бы да написал/заказал лаунчер на C или FASM, и всё тути. Не декомпельнешь. А на HEX далеко не уедешь, епт.
     
  15. WCRAFT

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

    Баллы:
    173
    Skype:
    worldplaytv
    Имя в Minecraft:
    World
    Вообще-то на сервере тоже есть "класс" авторизации. И если сессия неправильная зайти не выйдет.

    Если клиент отлично обсуфицирован, то всё сложнее для школозавров. Вообще-то ссылка на скрипты легко определяется когда вы авторизуетесь в лаунчере, есть специальная программа, а инструменты разработчиков толка большого не дадут, может автор поменяет путь к скриптам?

    Если вы теорию не проверяли, зачем тогда эта тема? Экстрасенс нашелся что-ли?
     
  16. gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Зачем так сложно? Достаточно использовать любой компилируемый ЯП.
    P.S. Ещё лаунчер на Java можно скомпилировать с помощью ExcelsiorJET (AOT компилятор).
     
  17. Space Flux

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

    Баллы:
    46
    FASM убийца кроссплатформерности. Да и если планшет на винде, но с ARM процессором, то тоже не запустится. @HoShiMin, так?
    +1
     
  18. HoShiMin

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

    Баллы:
    173
    Кто в здравом уме будет запускать лаунчер на планшете? На самом деле, к чёрту кроссплатформенность, никогда не понимал истерики по этому поводу, однако FASM как раз кроссплатформенный ассемблер.
     
  19. Space Flux

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

    Баллы:
    46
    Ну если на планшете Win 8, то почему бы и нет :)
    > FASM кроссплатформенный ассемблер
    Ага, только WinAPI если не юзать :)
     
  20. HoShiMin

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

    Баллы:
    173
    Нет, FASM - именно КРОССПЛАТФОРМЕННЫЙ ассемблер, он прекрасно собирает родные приложения под линукс.
     

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