Wie finde ich heraus, welche Dinge ein Server versteht?

08/28/2016 19:15 HappyMajor#1
Hey Leute,

Ich habe vor kurzem aus reinem Interesse meinen eigenen Chatserver + dazugehörigen Client geschrieben. Aus reiner Neugier hab ich dann mal versucht, meinen Client, welcher für meinen Chatserver vorgesehen ist, mit einem meiner Minecraft offline Server zu verbinden und überraschenderweise gelang das auch.

Dann hab ich einfach mal versucht ein paar Textzeilen an den Minecraftserver zu senden und wie erwartet ist nichts passiert. Wie denn auch, dachte ich mir. Der Server weiß ja gar nicht, was er mit diesen Informationen anfangen soll.

Deswegen meine Frage. Wie finde ich heraus, welche Dinge mein Minecraftserver versteht, die ich dann mit meinem Client versenden könnte?

Ich wüsste woher ich diese Informationen bekommen könnte, nämlich vom Minecraftclient, welcher ja für eine mögliche Verbindung zum Server vorgesehen ist. Doch wie komme ich an die Informationen heran, welcher mein Minecraftclient an meinen Server sendet? Und könnte ich diese Informationen einfach mit einem eigenen Client imitieren?
08/28/2016 21:16 Achat#2
tcpdump

Könntest dann schauen, was die Clients zum Server senden.
Etwas zu googeln wäre wohl weniger Aufwand.
08/28/2016 22:36 HappyMajor#3
Quote:
Originally Posted by Achat View Post
tcpdump

Könntest dann schauen, was die Clients zum Server senden.
Etwas zu googeln wäre wohl weniger Aufwand.
Danke dir. Hab windump benutzt, da tcpdump nur für Linux ist. Ich hab jetzt auch eine ganze Menge an Paketen abgefangen und in Wireshark eingefügt.
Nur werd ich mich da jetzt wohl erstmal ordentlich einlesen müssen, da ich bei dem Inhalt der abgefangenen Paketen nur Bahnhof verstehe.
08/28/2016 23:40 Jeoni#4
Nur aus dem Inhalt der Pakete wirst du u.U. auch das Protokoll nicht rekonstruiert bekommen, wenn die Pakete bspw. verschlüsselt sind. Zu Minecraft gibt es meines Wissens nach eine Referenz (einfach "minecraft network protocol" oder so googlen), aber keine Ahnung, wie aktuell die ist. Ferner las ich irgendwo, dass das Netzwerkprotokoll von Minecraft verschlüsselt sei, so dass dir der Dump alleine nichts bringen würde.
Ist die Referenz wertlos, oder nicht existent, müsste man dann das Spiel reversen, um die Implementation des Protokolls zu finden und das Protokoll selbst daraus abzuleiten.
Mit freundlichen Grüßen
Jeoni
08/29/2016 00:04 HappyMajor#5
Quote:
Originally Posted by Jeoni View Post
Nur aus dem Inhalt der Pakete wirst du u.U. auch das Protokoll nicht rekonstruiert bekommen, wenn die Pakete bspw. verschlüsselt sind. Zu Minecraft gibt es meines Wissens nach eine Referenz (einfach "minecraft network protocol" oder so googlen), aber keine Ahnung, wie aktuell die ist. Ferner las ich irgendwo, dass das Netzwerkprotokoll von Minecraft verschlüsselt sei, so dass dir der Dump alleine nichts bringen würde.
Ist die Referenz wertlos, oder nicht existent, müsste man dann das Spiel reversen, um die Implementation des Protokolls zu finden und das Protokoll selbst daraus abzuleiten.
Mit freundlichen Grüßen
Jeoni
Ah interessant. Also wird das Ganze doch nicht so einfach, wie ich es mir vorgestellt hatte. Scheint ein nettes Thema zu sein, um die Funktionsweise des Internets etwas besser zu verstehen. Ich bin gerade dabei mir die ganzen Protokolle anzuschauen und zu verstehen. Mal sehen, welche Möglichkeiten sich dadurch eröffnen.
08/29/2016 13:16 ScoutHunter88#6
Quote:
Originally Posted by HappyMajor View Post
Ah interessant. Also wird das Ganze doch nicht so einfach, wie ich es mir vorgestellt hatte. Scheint ein nettes Thema zu sein, um die Funktionsweise des Internets etwas besser zu verstehen. Ich bin gerade dabei mir die ganzen Protokolle anzuschauen und zu verstehen. Mal sehen, welche Möglichkeiten sich dadurch eröffnen.
Wäre ich du, hätte ich es mit dem analysieren sein gelassen weil man damit die ein oder anderen Tage "verschwenden" kann.
Stattdessen würde ich einfach den Minecraft Client decompilen (was ja in Java möglich ist) und mir die einzelnen Code Ausschnitte die fürs connecten zuständig sind anschauen.

Dann hast du einen besseren Überblick und ein besseres Verständnis bzgl. deines Vorhabens.

Viel Erfolg.

lg

PS: "Minecraft Mods programmieren" in Google eintippen und im ersten oder zweiten Video Part ist speziell das dabei was ich dir gerade erklärt habe. Da bin ich mir ziemlich sicher, weil diese Jungs tag täglich in dem Clienten "rumpfuschen"