Minecraft-Anmeldedaten überprüfen

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von joniator.

    Minecraft-Anmeldedaten überprüfen

    Hey,
    ich bin grad dran, ein Multi-Versions-Programm für Minecraft zu schreiben. Allerdings möchte ich die JARs vor Leuten schützen, die Minecraft nicht gekauft haben, und komm nicht drüberweg, die Logindaten des Users zu überprüfen. Über den Usernamen kann man das leicht überprüfen (minecraft.net/haspaid.jsp?user=), aber man kann einfach einen Namen eingeben, der Minecraft gekauft hat.
    Also muss ich überprüfen, ob das Passwort, das zum Usernamen gehört, stimmt. Aber wie mach ich das? Habe schon das hier gefunden: http://www.elitepvpers.com/forum/min...-function.html
    Funktioniert aber nicht, Visual Studio bringt mir diesen Fehler: "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden." in Zeile 11.
    Programmiert wird in Visual Basic.

    Wenn jemand eine Lösung hat, bitte melden! :D

    Gruss,
    lucastylaa
    Ich habe mal eine Minecraft Control-Center (Backups, Up/Downgrade, Skinchanger, usw.) geschrieben.
    Was du brauchst sind die Minecraft.jars, und diese funktionieren alleine nicht.
    Deshalb kannst du diese ruhig anbieten, da man ohne den Rest mit den Jars nichts anfangen kann.
    Wer jedoch Minecraft haben will und nicht kaufen will kann das auch.

    PS: Falls dir noch jars fehlen, sag Bescheid, ich habe sie alle *muhaha* :D
    LG
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Decompile doch einfach mc und guck dir die Postdaten an womit gecheckt wird.

    VB.NET-Quellcode

    1. Dim Client As New System.Net.WebClient
    2. Dim Username As String = "boop", Password As String = "baap", Version As Integer = 13
    3. Dim Output As String = Client.DownloadString(String.Format("http://login.minecraft.net/?user={0}&password={1}&version={2}", Username, Password, Version))
    4. If Output.Contains("User not premium") Then
    5. MessageBox.Show("Eingeloggt als normaler User.")
    6. ElseIf Output.Contains("Bad login") Then
    7. MessageBox.Show("Falsche Daten.")
    8. Else
    9. MessageBox.Show("Erfolgreich eingeloggt.")
    10. End If

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „haiyyu“ ()

    Dafür braucht man noch ne weitere URL.

    Die lautet: login.minecraft.net/session?name=BENUTZER&session=SESSIONID

    Die Session-ID ist Teil der Rückgabe bei der Anmeldung. Das Rückgabeprodukt besteht aus vier Werten (getrennt mit einem Doppelpunkt). Der vierte Wert ist die Session ID.
    Code editiert. Habe es mit haspaid.jsp gelöst. Ist dasselbe wie das, was nicgenie gepostet hat, nur scheint es mir einfacher, als mit der Session-ID rumzufummeln.
    Bei der Login-URL wird immer "Bad login" bei einem Fehler zurückgegeben. <- anscheinend nur bei mir

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „haiyyu“ ()

    Myrax schrieb:

    Ich weiss jetzt nicht was du dekompiliert hast, aber die Loginfunktion ist in der Minecraft.exe, nicht Minecraft.jar. Ob die exe dekompilierbar ist, weiss ich nicht.
    Lol, die Anmeldefunktion ist in der jar. Wer startet schon über die exe?! Über Skripte lassen sich auch die vollen Speicherangaben zu nutzen.

    Hab die jar mal eben dekompiliert und finde unter net.minecraft.LauncherFrame eine öffentliche Prozedur namens login(String userName, String password).
    Spoiler anzeigen

    PHP-Quellcode

    1. public void login(String userName, String password) {
    2. try {
    3. String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + 13;
    4. String result = Util.excutePost("https://login.minecraft.net/", parameters);
    5. if (result == null) {
    6. showError("Can't connect to minecraft.net");
    7. this.loginForm.setNoNetwork();
    8. return;
    9. }
    10. if (!result.contains(":")) {
    11. if (result.trim().equals("Bad login")) {
    12. showError("Login failed");
    13. } else if (result.trim().equals("Old version")) {
    14. this.loginForm.setOutdated();
    15. showError("Outdated launcher");
    16. } else {
    17. showError(result);
    18. }
    19. this.loginForm.setNoNetwork();
    20. return;
    21. }
    22. String[] values = result.split(":");
    23. this.launcher = new Launcher();
    24. this.launcher.customParameters.putAll(this.customParameters);
    25. this.launcher.customParameters.put("userName", values[2].trim());
    26. this.launcher.customParameters.put("latestVersion", values[0].trim());
    27. this.launcher.customParameters.put("downloadTicket", values[1].trim());
    28. this.launcher.customParameters.put("sessionId", values[3].trim());
    29. this.launcher.init();
    30. removeAll();
    31. add(this.launcher, "Center");
    32. validate();
    33. this.launcher.start();
    34. this.loginForm.loginOk();
    35. this.loginForm = null;
    36. setTitle("Minecraft");
    37. } catch (Exception e) {
    38. e.printStackTrace();
    39. showError(e.toString());
    40. this.loginForm.setNoNetwork();
    41. }
    42. }
    Wo ist denn meine Brille?
    Hab gestern auch den Launcherframe angeguckt, die Loginfunktion auch, bei mir gab da aber nichts besonderes. Thx @all, werde mal alle Möglichkeiten ausprobieren :thumbup:

    //___\\
    ||DONE||
    \\___ //

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „xeno“ ()

    xeno schrieb:

    Hey,
    ich bin grad dran, ein Multi-Versions-Programm für Minecraft zu schreiben. Allerdings möchte ich die JARs vor Leuten schützen, die Minecraft nicht gekauft haben, und komm nicht drüberweg, die Logindaten des Users zu überprüfen. Über den Usernamen kann man das leicht überprüfen (minecraft.net/haspaid.jsp?user=), aber man kann einfach einen Namen eingeben, der Minecraft gekauft hat.
    Also muss ich überprüfen, ob das Passwort, das zum Usernamen gehört, stimmt. Aber wie mach ich das? Habe schon das hier gefunden: http://www.elitepvpers.com/forum/min...-function.html
    Funktioniert aber nicht, Visual Studio bringt mir diesen Fehler: "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden." in Zeile 11.
    Programmiert wird in Visual Basic.

    Wenn jemand eine Lösung hat, bitte melden! :D

    Gruss,
    lucastylaa

    sorry dass ich soo spät schreibe, hab das gleiche problem gehabt: einfach Bei elitepvpers.com/forum/minecraf…craft-login-function.html
    statt

    VB.NET-Quellcode

    1. Dim webReq As HttpWebRequest = HttpWebRequest.Create(New Uri("http://www.minecraft.net/game/getversion.jsp"))

    das

    VB.NET-Quellcode

    1. Dim webReq As HttpWebRequest = HttpWebRequest.Create(New Uri("http://login.minecraft.net"))
    Wer Rechtschreibfehler findet darf sie behalten :)