Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Туториал Делаем md5 Проверку minecraft.jar

Discussion in 'Руководства, инструкции, утилиты' started by Dan-det, Dec 12, 2012.

  1. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    Итак, всем привет, дорогие форумчане. В этом туториале я научу тех кто не знает и покажу свою реализацию сие чуда. Итак начнем мы наверно с веб части.
    Веб часть я взял из лаунчера "Империя"
    Создаем файл hash.php в директории сайта рядом с Minecraft.jar и пишем это
    PHP:
    <?php
    $clientHash 
    $_GET['hash'];
    $serverHash md5_file('minecraft.jar');
    if (
    $clientHash != $serverHash)
    echo 
    '1';
    else
    echo 
    '2';
    ?>
    Строкой $clientHash=.. мы получаем хэш который отправил клиент
    Строкой $serverHash=.. мы генерируем хэш на сервере, а дальше просто сравниваем.
    Итак первая часть закончена.
    Теперь в LauncherFrame.java (уже перешли в код лаунчера) пишем функ-ции для получения хэша. Писать надо в самом классе, после объявления переменных.
    Code:
     public static String calculateHash(MessageDigest algorithm, String fileName)
        throws Exception
      {
      FileInputStream fis = new FileInputStream(fileName);
        BufferedInputStream bis = new BufferedInputStream(fis);
        DigestInputStream dis = new DigestInputStream(bis, algorithm);
        while (dis.read() != -1);
        byte[] hash = algorithm.digest();
        return byteArray2Hex(hash);
      private static String byteArray2Hex(byte[] hash) {
        Formatter formatter = new Formatter();
        for (byte b : hash) {
          formatter.format("%02x", new Object[] { Byte.valueOf(b) });
        }
        return formatter.toString();
      }
    Всё вспомогательные функции написаны.
    Теперь главная функция
    Code:
      private void md5s() {
        String applicationData = System.getenv("APPDATA");
        String f = applicationData + "/.minecraft/bin/minecraft.jar";
        try
        {
          MessageDigest md5 = MessageDigest.getInstance("MD5");
          String p = calculateHash(md5, f);
          try
          {
            URL localURL = new URL("http://ваш_сайт/путь_к_hash.php?hash=" + p);
            BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
            String result = localBufferedReader.readLine();
            if (result.trim().equals("1")) {
              GameUpdater.forceUpdate = true;
              return;
                   
            }
            if (result.trim().equals("2"))
              return;
          }
          catch (Exception e)
          {
          }
        }
        catch (Exception e) {
          GameUpdater.forceUpdate = true;
          return;
        }
      }
    Всё главная функция готова.
    Теперь тупо добавляем код md5s() после
    this.loginForm.setNoNetwork();
    return;
    }
    Всем спасибо за внимание!
     
  2. Хостинг MineCraft
    <
  3. Alastar

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

    Trophy Points:
    173
    Гхм...зачем?
     
  4. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    Что?! ты уже здесь я тему секунду назад опубликовал
     
  5. Alastar

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

    Trophy Points:
    173
    Я бот :D
     
    Dan-det likes this.
  6. stew

    stew Старожил

    Trophy Points:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
  7. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    Это не доконца законченный туториал, потом выложу про проверки всех файлов
     
  8. Alastar

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

    Trophy Points:
    173
    Это для 1.2.5 если не ниже.
     
  9. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    А я эту тему не читал, темболее это в самом клиенте а не в minecraft.jar
     
    DavidShabaev likes this.
  10. stew

    stew Старожил

    Trophy Points:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
    если есть проверка одного файла, что мешает поменять некоторые штучки и будет тебе проверка других файлов?
     
  11. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    Надо составить список фалов для проверки
     
  12. stew

    stew Старожил

    Trophy Points:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
    :eek:
    minecraft.jar = клиент!
    Или ты имел в виду лаунчер....
     
  13. Автор темы
    Dan-det

    Dan-det Старожил Пользователь

    Trophy Points:
    103
    да лаунчер
     
    MineMan910 likes this.
  14. stew

    stew Старожил

    Trophy Points:
    103
    Skype:
    antonov330
    Имя в Minecraft:
    StewMan
    Я лично против ничего не имею, просто не люблю когда форум так сказать засирается захламляется одинаковыми темами.
     

Share This Page