Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Лаунчер Asn007-launcher (open source) версия 1.2 build 124

Статус
Закрыто для дальнейших ответов.
Проверка md5 будет вестись через сервер :)
Поэтому обмануть невозможно (только если декомпильнуть ланч и подделать ссылку например, на мой ник)
Но я для своего серва ланчер буду обфусцировать. Как минимум 10 проходов повергардом отсеет приблизительно 100% школолочитеров
Ну md5 в принципе некчему подделывать,просто берем декомпилятор java,читаем ссылки,берем любой лаунчер без проверки md5 впихиваем него все нужное и все.зашел на сервер и все
 
Ну md5 в принципе некчему подделывать,просто берем декомпилятор java,читаем ссылки,берем любой лаунчер без проверки md5 впихиваем него все нужное и все.зашел на сервер и все
Пятачок, это называется ОБ-ФУС-КА-ЦИ-Я!:trf:
Нужно еще найти, что за что отвечает :)
 
Пятачок, это называется ОБ-ФУС-КА-ЦИ-Я!:trf:
Нужно еще найти, что за что отвечает :)
ну это я понял=))но лаунчер выложен для общего пользования и я лично в java только второй день,так что прощу прощения,может и не то что-то пишу,но лично я пока не понял как его правильно обфускацировать.Читаю материал,но всетаки пока знаний нет вобще по этой теме,банально для меня лично это был бы более простой выход.Как и для множества пользователей
 
Ну не знаю... :)
P.S. А вы знаете, почему я в коде 90% комментариев убралъ?
 
Теперь к делу,Анс007,вопрос к тебе по лаунчеру,может конфиг вынести с основного скрипта и загружать данные через http,реализовать например в php,в принципе примерные идеи есть как сделать на серверной части,но вот в самом лаунчере,пока приходится читать,как string преобразовать на вызов массива с php
Будет это. А сама идея не нова
 
Ну не знаю... :)
P.S. А вы знаете, почему я в коде 90% комментариев убралъ?
ну допустим для меня они особо и ненужны.
Так как ранее работал с php,привык больше доверять глазам и тому что видел ранее,допустим ссылка на auth.php и так понятна логически для чего служит,что такое string и т д также логически несложно понять,если хоть както ссылки доступны,с указанием конечного файла,то применить его в другом скрипте лаунчера можно как минимум методом подбора.Это судить на том что реализованно сейчас.
вот допустим проверка md5
часть добавленная мной в ваш лаунчер
String applicationData = System.getenv("APPDATA");
String f = applicationData + "/.minecraft/bin/minecraft.jar";
MessageDigest md5 = MessageDigest.getInstance("MD5");
String p = calculateHash(md5, f);
URL localURL = new URL(LauncherConf.haUrl + p);
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
String answer = localBufferedReader.readLine();
if (answer.equalsIgnoreCase("Z")){
launcher.gameUpdater.forceUpdate = true;
}
сложно ее без комментов понять?
не думаю
 
думаю, brake. Но я все равно буду проверять
Я как старый пират, хочу спросить. Чего копирайтики на XENFORO -> ultimate-mc.ru потерты? Люди (разработчики) тоже коды для форума пишут по ночам, но это не мешает нам пользоваться их трудом (бесплатно). (И я этим грешу) и не ору, давайте начнем с себя..
 
ну допустим для меня они особо и ненужны.
Так как ранее работал с php,привык больше доверять глазам и тому что видел ранее,допустим ссылка на auth.php и так понятна логически для чего служит,что такое string и т д также логически несложно понять,если хоть както ссылки доступны,с указанием конечного файла,то применить его в другом скрипте лаунчера можно как минимум методом подбора.Это судить на том что реализованно сейчас.
вот допустим проверка md5
часть добавленная мной в ваш лаунчер
String applicationData = System.getenv("APPDATA");
String f = applicationData + "/.minecraft/bin/minecraft.jar";
MessageDigest md5 = MessageDigest.getInstance("MD5");
String p = calculateHash(md5, f);
URL localURL = new URL(LauncherConf.haUrl + p);
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
String answer = localBufferedReader.readLine();
if (answer.equalsIgnoreCase("Z")){
launcher.gameUpdater.forceUpdate = true;
}
сложно ее без комментов понять?
не думаю
Для кого как :D
Почитайте
P.S. Ко мне лучше на "ты", не люблю, когда в интернете ко мне на "вы" обращаются
 
ну допустим для меня они особо и ненужны.
Так как ранее работал с php,привык больше доверять глазам и тому что видел ранее,допустим ссылка на auth.php и так понятна логически для чего служит,что такое string и т д также логически несложно понять,если хоть както ссылки доступны,с указанием конечного файла,то применить его в другом скрипте лаунчера можно как минимум методом подбора.Это судить на том что реализованно сейчас.
вот допустим проверка md5
часть добавленная мной в ваш лаунчер
String applicationData = System.getenv("APPDATA");
String f = applicationData + "/.minecraft/bin/minecraft.jar";
MessageDigest md5 = MessageDigest.getInstance("MD5");
String p = calculateHash(md5, f);
URL localURL = new URL(LauncherConf.haUrl + p);
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
String answer = localBufferedReader.readLine();
if (answer.equalsIgnoreCase("Z")){
launcher.gameUpdater.forceUpdate = true;
}
сложно ее без комментов понять?
не думаю
Стоп, у меня почти такой же код в преальфе. Код преальфы есть только на моем компе :D
 
Стоп, у меня почти такой же код в преальфе. Код преальфы есть только на моем компе :D
Вот вот,далее следуем из этого,я в java ноль,вставил этот код и сделал его рабочим,размышляем далее,зная пути к подключениям,сделать самоделку рабочую не так сложно.что в принципе делает бесполезным всю возню.По этой же причине я сегодня и писал про jar2exe,пробовал хоть както защитить,сейчас вожусь с прогвардом,надеюсь хоть с ним выйдет.заодно думаю как вынести конфиг с лаунчера на сервер.Какая бы защита не стояла,всеравно найдется умник который обойдет ее и расскажет как это сделать,поэтому хотябы часть кода должна быть на сервере,дабы усложнить жизнь таким умникам=)хотябы в php виде
 
у меня вопрос
если сделать лаунч через exe4j его то не откроют?)самым тупым способом в виде переименовки из exe в jar не кактит
 
exe4j и jar2exe оба делают архив,которые очень просто извлекаются,есть несколько вариантов как это победить,выше предложенный мной,убрать ссылки и пройти обфускатором,далее отладить распаковку lzma до нормального вида и в jar2exe тыкнуть галочки на шифрование или написать свой код с проверкой со стороны сервера,что это тот лаунчер,вобще самый лучший вариант у kool91 по ссылке которую он кидал выше,если убрать от туда один файлик или сделать проверку с сервера, то уже никто не подключится с левого лаунчера
 
Надо, чтобы с левого клиента не заходили, а не лаунчера. Ну и если с другого лаунчера, то с правильными настройками, чтобы md5 проверялся на нужном сервере, а не на левом. Кстати, надо допилить md5 под бухарскую авторизацию, чтобы не могли зайти на серв те, кто не прошел проверку.
 
Релиз сегодня-завтра
Подредактировал проверку md5, теперь работает без ошибок
UPD: черт, с ошибками :D
 
exe4j и jar2exe оба делают архив,которые очень просто извлекаются,есть несколько вариантов как это победить,выше предложенный мной,убрать ссылки и пройти обфускатором,далее отладить распаковку lzma до нормального вида и в jar2exe тыкнуть галочки на шифрование или написать свой код с проверкой со стороны сервера,что это тот лаунчер,вобще самый лучший вариант у kool91 по ссылке которую он кидал выше,если убрать от туда один файлик или сделать проверку с сервера, то уже никто не подключится с левого лаунчера
угу посмотрим что да как там
 
Релиз 1.2 откладывается до вечера вторника, в связи с моим отъездом
 
Так народ,решил немного поделится своими доработками.
1е смотрим фаил Auth.php
$login=$_POST['user'];
все конечно хорошо,переданно постом и т д,но пугает отсутствие фильтрации,по фильтрации юзаем гугл,безопастность php.В принципе на мой взгляд это обалденная дыра в системе скрипта.Учитывая что он работает с клиентом,а при определенных знаниях с клиента передать можно все что душе угодно.
2е Далее думаем что можно сделать с методом передачи информации post.
есть такая строчка в скрипте клиента(в данном случае лаунчера)
String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + LauncherConf.myVersion;
Это и есть строка передачи данных.
Что можно сделать с ней,на деле много,например защитить от подмены какуюто строку в конфиге,
Добавляем строку + LauncherConf.authUrl и придаем ей значение к примеру test
В полном виде это выглядит так:
String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + LauncherConf.myVersion+ "&test="+ LauncherConf.authUrl;
Этим мы отправили методом пост на Auth.php "test"
Ну и соотвественно ловим это в нем $_POST['test];
Без знаний по php далее нестоит лезть,ну а тот кто знает может сотворить действительно много.
Это описание именно под этот лаунчер!но в других тоже сработает,если поймете как работает лаунчер
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх