View previous topic :: View next topic |
Author |
Message |
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 05.03.2006, 19:03 Post subject: Linux-Lösung für Checksummenproblem |
|
|
Mit Warpmaster hab ich mal ein wenig über das Checksummenproblem diskutiert, wie man das leidige Thema für die Linux-Spieler lösen könnte. Dabei kam eine Idee auf: Ein im Hintergrund laufender Packetsniffer fängt das Anmeldepaket ab und ersetzt die fehlerhafte Checksumme des Windowsservers durch die korrekte Checksumme, so wie ihn ein Linuxserver abgeben würde. Dem Linuxclient wird so eine korrekte Checksumme vorgespielt, und der sollte anstandslos das Spiel betreten, denn die Leveldaten sind ja identisch.
Die Ersetzung geschieht dann dabei anhand einer Tabelle zwischen Windows- und Linux-Checksumme, so daß bei tatsächlich falscher Levelversion die Checksumme ihren Sinn behält und den Zugang zum Server verwehrt.
Ich hätte schon Lust dazu, das Ding mal anzugehen, allein fehlt es mir am Loki-Linux-Client. Im Onlineshop kostet der 20 Euro, wie ich finde ein wenig viel für etwas, was man eigentlich nicht braucht.
Die Frage ist also: Spielt jemand eher selten mit der Loki-Version und würde sie mir in der Zwischenzeit mal leihweise zur Verfügung stellen ? Für Porto würd ich natürlich aufkommen.
Edit: INSTALLATIONSANLEITUNG: http://www.descentforum.de/forum/viewtopic.php?p=40592#40592
***** Sticky gemacht. -Floyd *****
Last edited by Munk on 25.03.2006, 21:21; edited 1 time in total Last edited by Floyd on 25.03.2006, 21:15; edited 1 time in total |
|
Back to top |
|
|
Do_Checkor Administrator
Joined: 19 Nov 2000 Posts: 7772
Location: Oldenburg (Oldb.)
|
Posted: 06.03.2006, 00:16 Post subject: |
|
|
Hatte Skorp nicht sowas schon mal angefangen und schon lauffähige Ergebnisse?
Stere zockt das mit Loki (aber bisher Aufgrund diverser Probleme wie Checksum-Bug und 1500ms-Ping-Bug wenig Enthusiasmus)...
Last edited by Do_Checkor on 06.03.2006, 00:19; edited 1 time in total |
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 06.03.2006, 10:41 Post subject: |
|
|
Ob Skorp was macht, weiß ich nicht. Wegen notorischer Unerreichbarkeit habe ich da auch keine Geduld, 2 Monate auf keine Antwort zu warten.
Der 1500ms-Pingbug tritt zumindest im LAN nicht auf. Da stört die Checksumme immens.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 07.03.2006, 01:14 Post subject: |
|
|
Phase 1 ist geschafft: die Lokalisierung der Checksumme innerhalb der UDP-Pakete.
Phase 2: Die Manipulation dieses UDP-Pakets im laufenden Betrieb. Wer da Ideen hat, immer her damit :)
|
|
Back to top |
|
|
Zorc Forum-Nutzer
Joined: 05 Jul 2001 Posts: 961
Location: Ratzeburg
|
Posted: 07.03.2006, 02:45 Post subject: |
|
|
hab diesen thread grade erst entdeckt. brauchst du die loki-version noch? ich will dir morgen sowieso deinen flasher zurückschicken, dann könnte ich meine loki-version gleich mit eintüten, ich brauch die im moment nicht.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 07.03.2006, 11:05 Post subject: |
|
|
Oh sorry. Ne Lokiversion hab ich bereits.
|
|
Back to top |
|
|
VEX-Eagle Falschparker
Joined: 04 Feb 2003 Posts: 807
Location: Stelle (Hamburg)
|
Posted: 07.03.2006, 15:50 Post subject: |
|
|
kann man schon gesendete udp-pakete noch manipulieren?
ich würde ein programm schreiben, dass zwischen client und server hängt, die pakete empfängt, manipuliert und weiterversendet
nur müsste man dann ALLE pakete empfangen und weiterleiten
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 07.03.2006, 18:25 Post subject: |
|
|
Phase 2: erledigt. Proof of Concept ist geglückt. Mittels netfilter, iptables und perl hats dann geklappt.
Phase 3: Interface zum Laden der Ersetzungstabelle ins Programm. Am besten als Datei zum Upgraden. Mal schaun wie's am geschicktesten geht.
Phase 4: Sammeln der Checksummen sowohl von Linux- als auch von Windows-Servern. Das wird das größte Problem sein.
|
|
Back to top |
|
|
zico Rebirther
Joined: 23 Nov 2005 Posts: 452
Location: Ebersbach
|
Posted: 08.03.2006, 06:52 Post subject: |
|
|
Heisst das, du lässt die Pakete anhand einer Tabelle/Datenbank umrechnen?
Hm im Nootfall ne sehr gute Idee, aber haben die unterschiedlichen Checksummen keine Parallelen?
Vllt wärs so möglich mittelns einer Funktion umzurechnen.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 08.03.2006, 10:14 Post subject: |
|
|
Für eine Systematik - die natürlich vorhanden ist - hab ich noch nicht genug Checksummen verglichen.
In Ascent unterscheidet sie sich von der Loki- und Windows-Version um 1. Das wird bei anderen Leveln wohl nicht sehr viel anders sein.
Allerdings: Einige Level haben ja auch die gleiche Checksumme, sie ist ja nicht immer verkehrt.
Ein zufälliges Herumprobieren der Checksumme, d.h. der Filter setzt sie mal um 1 höher, mal um 1 niedriger, mal läßt er sie, möchte ich dem Benutzer nicht zumuten - höchstens als Fallback für unbekannte Level.
|
|
Back to top |
|
|
zico Rebirther
Joined: 23 Nov 2005 Posts: 452
Location: Ebersbach
|
Posted: 08.03.2006, 22:59 Post subject: |
|
|
Falls du es irgendwie schaffst nen provisorischen Wrapper zu basteln (bash, perl or so), stelle ich mir gern als Tester zur Verfügung. Ich test natürlich auch gern mit Offsets usw. Vllt finden wir auch was neues über PING problem raus
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 09.03.2006, 19:36 Post subject: |
|
|
Grr. So wie es ausschaut hängt die Levelchecksumme auch noch davon ab, welches Schiff man im Piloten asugewählt hat. Macht die Sache wohl nicht einfacher. Muss man jetzt nicht nur für jeden Level, sondern auch für jedes Schiff die Checksummen speichern ? .... wer sich das wieder ausgedacht hat.
Vermutlich, um nicht mit nem falschen Schiff den Level betreten zu können.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 14.03.2006, 20:43 Post subject: |
|
|
Phase 3: erledigt.
Phase 4 könnte etwas dauern. Werd mich wohl auf 100 Level beschränken. Ein Programm zum Erweitern der Datenbank wird aber beiliegen.
Phase 5: Kompilieren des ganzesn Zeugs für einfache Installation. Readme schreiben etc.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 17.03.2006, 21:45 Post subject: |
|
|
Ok, das Programm ist fast fertig.
Ich versuch das Dingen noch in ein RPM zu verwandeln, um eine einfachere Installationsroutine zu haben.
Kann noch ein paar Tage dauern. Bisher sind auch noch nicht alle (derzeit etwa 250 von geplanten 750) Level drin.
Wem es trotzdem unterm Hintern brennt, kann es sich unter
http://munk.vex-server.de/d3fix/d3fix.tar (veraltet)
herunterladen.
Knappe Installationsanweisung wie folgt:
- Installiert iptables falls es fehlt.
- besorgt für euch die Kernelmodule iptable_mangle und ip_queue. Seht zu daß sie ohne Fehler laden, und tragt sie in /etc/modules ein
- entpackt das obige TAR-Archiv ins ROOT-Verzeichnis "/". Dadurch werden alle Files direkt an die richtige Stelle gelegt.
- Seht zu, daß /usr/local/sbin in euer PATH-Variablen drin ist
- startet das Programm als root mit "d3fixd" oder mit "/usr/local/sbin/d3fixd" .
Last edited by Munk on 25.03.2006, 21:18; edited 1 time in total |
|
Back to top |
|
|
zico Rebirther
Joined: 23 Nov 2005 Posts: 452
Location: Ebersbach
|
Posted: 18.03.2006, 08:57 Post subject: |
|
|
Ich werd das Script an diesem Wochenende noch ausführlich testen. Die eltzten Tage gabs ein wenig Stress, da DXX in ein CVS gezwängt werden musste. Aber ich denke heute wirds mal ein paar glücklichere Momente geben.
|
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 21.03.2006, 15:42 Post subject: |
|
|
Ok, hier ist nun das Final.
Installationsanweisungen:
- Je nach verwendeter Distribution das entsprechende Paket herunterladen:
Debian oder Ubuntu nehmen .deb , Suse oder RetHat: .rpm, ansonsten .tgz
- Einspielen der Pakete:
Für das .deb-Paket führe als Root-User aus: "dpkg -i d3fix_1.5-1_i386.deb"
Für das .rpm-Paket führe als Root-User aus: "rpm --nodeps -i d3fix-1.5-2.i386.rpm"
Für das .tgz-Paket fürhe als Root-User aus: "tar -C / -xvvzf d3fix-1.6.tgz"
- Laden der Kernelmodule:
Als Root-User ausführen: "modprobe ip_queue && modprobe iptable_mangle"
Wenn es zu keiner Fehlermeldung beim Laden kommt, an die Datei /etc/modules unten die beiden Zeilen anhängen:
Quote: |
ip_queue
iptable_mangle
|
Zum Starten als Root-User ausführen: "d3fixd &"
Nun kann mit der Loki-Version von D3 normal gespielt werden.
Downloadlink:
http://munk.vex-server.de/d3fix/d3fix_1.6-1_i386.deb
http://munk.vex-server.de/d3fix/d3fix-1.6-2.i386.rpm
http://munk.vex-server.de/d3fix/d3fix-1.6.tgz
Und hier nur die Checksummendatei für spätere Updates der Leveldatenbank:
http://munk.vex-server.de/d3fix/checksums
(speichern nach /usr/local/share/d3fix/checksums)
Edit: URLs für v1.6 geändert
Last edited by Munk on 04.04.2006, 21:03; edited 5 times in total |
|
Back to top |
|
|
Munk Forum-Nutzer
Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 22.03.2006, 21:12 Post subject: |
|
|
Wichtiges Update:
Ich glaube, dieser Patch hilft nun auch gegen den Ping Bug.
Verursacht wurde dieser durch eine massive Zahl von Paketen (etwa 30KByte/s - also am Bandbreitenlimit) an den Server - in denen aber überhaupt garnichts drinsteht.
(Deswegen hat es vermutlich auch im LAN geklappt, im Internet aber nicht)
Die neue Version filtert nun zusätzlich diese "Flood"-Pakete heraus. der Ping-Bug tritt (zumindest bei mir) seitdem nicht mehr auf.
Desweiteren kann mit dem Fix nun auch auf amerikanischen Servern gespielt werden.
http://munk.vex-server.de/d3fix/d3fix_1.5-1_i386.deb
http://munk.vex-server.de/d3fix/d3fix-1.5-2.i386.rpm
http://munk.vex-server.de/d3fix/d3fix-1.5.tgz
Edit:
zico hat noch nen Bug gefunden, der ist im obigen noch behoben.
Edit^2:
Vorerst nur Pyro-GL und Phoenix. An den anderen Schiffen arbeite ich noch.
Edit^3: URL auf v1.5 angepasst.
Last edited by Munk on 25.03.2006, 21:19; edited 3 times in total |
|
Back to top |
|
|
zico Rebirther
Joined: 23 Nov 2005 Posts: 452
Location: Ebersbach
|
Posted: 23.03.2006, 00:56 Post subject: |
|
|
Genial!
Im Moment mach ich ein paar Testläufe. Bis jetzt hab ich noch nie so lang auf einem server ausgehalten ohne zu fliegen! Jetzt bleib ich zudem noch unter 100ms PING. Morgen folgen weitere Testläufe.
Achja, anmerkung fürs nächste Release: kannst du die RPM Deps entfernen? SuSE kann sie zumindest nicht auflösen (Auch wenn vorhanden).
Meine fresse, ENDLICH D3 online!
|
|
Back to top |
|
|
zico Rebirther
Joined: 23 Nov 2005 Posts: 452
Location: Ebersbach
|
|
Back to top |
|
|
VEX-Eagle Falschparker
Joined: 04 Feb 2003 Posts: 807
Location: Stelle (Hamburg)
|
Posted: 23.03.2006, 20:56 Post subject: |
|
|
das bild könntest du auch von nem lokalen spiel gemacht haben
zählt nicht
|
|
Back to top |
|
|
|