• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Problème dAnti-Cheat

    Autres
    3
    6
    1367
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • BxToxik
      BxToxik last edited by

      Voilà après avoir suivi un tuto pour mettre un Anti-Cheat (je l’ai mis pour empecher l’installation de mod sur le launcher)sur son launcher, la mise à jour se fait à chaque lancement du jeux :@. (Sa télécharger le code md5 du nom_du_serveur.jar et il le compare avec celui sur le ftp)
      Voilà le code Qui est tout en haut :

      
      public static boolean md5 = false;
      
      

      Puis :

      
      getMd5("http://nom_du_serveur_launcher.olympe.in/Launcher/md5.txt");
         BufferedReader lect ;
      
         String tmp = "";
      
         try
      
         {
      
         lect = new BufferedReader(new FileReader(Util.getWorkingDirectory() + "/md5.txt")) ;
      
         if (lect.ready())
      
         {
      
         tmp += lect.readLine() ;
      
         }
      
         }
      
         catch (NullPointerException a)
      
         {
      
         System.out.println("Erreur : pointeur null");
      
         }
      
         catch (IOException a)
      
         {
      
         System.out.println("Problème d'IO");
      
         }
      
         System.out.println("Signature numérique lue:" + tmp);
         File minecraftMd5 = new File(Util.getWorkingDirectory() + "/bin/nom_du_serveur_.jar");
      
         if(minecraftMd5.exists()) //si minecraft.jar existe, alors on récupère la signature numérique
      
         {
      
         MessageDigest md = MessageDigest.getInstance("MD5");
      
         FileInputStream fis = new FileInputStream(Util.getWorkingDirectory() + "/bin/nom_du_serveur_.jar");
      
         byte[] dataBytes = new byte[1024];
      
         int nread = 0;
      
         while ((nread = fis.read(dataBytes)) != -1) {
      
         md.update(dataBytes, 0, nread);
      
         };
      
         byte[] mdbytes = md.digest();
      
         StringBuffer sb = new StringBuffer();
      
         for (int i = 0; i < mdbytes.length; i++) {
      
         sb.append(Integer.toString((mdbytes* & 0xff) + 0x100, 16).substring(1));
      
         }
      
         if(tmp.equals(sb.toString())) //on vérifie que la signature numérique dans le fichier texte (sous la variable tmp) est égale (.equals) à sb.toString (signature numérique du minecraft.jar actuel)
      
         {
      
         System.err.println("Verification MD5 = ok"); // si c'est égale, alors on affiche un message dans les logs disant que la vérification est ok, on peut accéder au jeu
      
         }
      
         else //si la vérification a échouée et que les deux signatures numériques sont différentes, c'est que minecraft.jar a été modifié !
      
         {
      
         GameUpdater.md5 = true; // donc, on place notre boolean du départ sur true !
      
         }
      
         }
      
      

      Qui est au dessus de

      
      if ((!cacheAvailable) || (update) || (forceUpdate) || (md5))
      {
      downloadJars(path);
      extractJars(path);
      extractNatives(path);
      
      

      Et le code qui est placer tout en bas de GameUpdater.java :

      
      private void getMd5(String path) throws Exception
      
      {
      
      String fAddress = path;
      
      String localFileName = "md5.txt";
      
      String destinationDir = Util.getWorkingDirectory() + "";
      
      OutputStream outStream = null;
      
      URLConnection  uCon = null;
      
      InputStream is = null;
      
      File tmp = new File(destinationDir);
      
      if(!tmp.exists())
      
      {
      
      tmp.mkdir();
      
      }
      
      try
      
      {
      
      URL Url;
      
      byte[] buf;
      
      int ByteRead,ByteWritten=0;
      
      Url = new URL(fAddress);
      
      outStream = new BufferedOutputStream(new FileOutputStream(destinationDir+"/"+localFileName));
      
      uCon = Url.openConnection();
      
      is = uCon.getInputStream();
      
      buf = new byte[1024];
      
      while ((ByteRead = is.read(buf)) != -1)
      
      {
      
        outStream.write(buf, 0, ByteRead);
      
        ByteWritten += ByteRead;
      
      }
      
      System.out.println("File name: \""+localFileName+ "\"\nNo ofbytes: " + ByteWritten);
      
      System.out.println(destinationDir);
      
      is.close();
      
      outStream.close();
      
      }
      
      catch (Exception e) { e.printStackTrace(); }
      
      }
      }
      
      

      Et le code de la console :

      
      File name: "md5.txt"
      No ofbytes: 32
      C:\Users\BxToxik\AppData\Roaming\.royalcraft
      Signature numérique lue:08d8cf82d20bd41e3c2eed661c49e176
      
      

      Si quelqu’un a la réponse à cela je suis preneur !

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        C’est pas le md5 du minecraft.jar qu’il faut mettre normalement ?

        1 Reply Last reply Reply Quote 0
        • BxToxik
          BxToxik last edited by

          Je crois pas sinon sa vérifie minecraft.jar au lieu de nom_du_serveur.jar

          1 Reply Last reply Reply Quote 0
          • jglrxavpok
            jglrxavpok Modérateurs last edited by

            C’est minecraft.jar que l’on modifie, non ?

            Modérateur sur MFF. 
            Mon Github: http://github.com/jglrxavpok
            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

              Je viens de relire le code.

              File minecraftMd5 = new File(Util.getWorkingDirectory() + "/bin/nom_du_serveur_.jar");
              
              if(minecraftMd5.exists()) //si minecraft.jar existe, alors on récupère la signature numérique
              
              {
              
              MessageDigest md = MessageDigest.getInstance("MD5");
              
              FileInputStream fis = new FileInputStream(Util.getWorkingDirectory() + "/bin/nom_du_serveur_.jar");
              

              Si tu ne modifie même pas les nom_du_serveur_.jar par le nom de ton .jar, normale que ça ne fonctionne pas …
              Et il faut bien mettre le md5 de ton .jar, et pas celui du .royalcraft.

              1 Reply Last reply Reply Quote 0
              • BxToxik
                BxToxik last edited by

                si j’ai bien compris alors sa doit être

                
                File royalcraftMd5 = new File(Util.getWorkingDirectory() + "/bin/royalcraft.jar");
                
                if(royalcraftMd5.exists()) //si minecraft.jar existe, alors on récupère la signature numérique
                
                {
                
                MessageDigest md = MessageDigest.getInstance("MD5");
                
                FileInputStream fis = new FileInputStream(Util.getWorkingDirectory() + "/bin/royalcraft.jar");
                
                

                Cool avec le code du dessus sa marche merci à vous !!!

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB