Mittwoch, 10. Februar 2010

Crysis (Wars), Freelancer, C/C++ und LUA, hooking, hacking und injekten

Ich spiele seit dem erscheinen von Crysis Wars regelmäßig ein paar Stündchen online. Zwar muss ich zugeben dass ich dadurch nicht der Überflieger geworden bin, da dieser Ego-Shooter sogesehen mein erster richtiger Ego-Shooter ist aber ich bin überall dabei. Ich habe kein super Aiming, ich höre nicht auf jedes kleinste Schrittgeräusch. Dafür kenne ich schon den ein oder anderen Trick wie zum Beispiel das Circle Jumpen um mit einem Sprung möglichst weit zu kommen. Aber hierauf werde ich in diesem Posting nicht eingehen. Mir geht es eher ums Modden und hooking, speziell das Scripten neuer Dinge im Multiplayer.

C/C++ und/oder LUA
Ja, das ist eine gute Frage. Für mich war eigentlich klar dass ich mich ins LUA-Scripten einarbeiten muss, weil mit diesem fast alles am Spielgeschehen ändern lässt. Egal ob nur neue Befehle wie Teleporten oder Kill/Death Statiskien, oder das verhindern von Cheaten. SubmEntor, der leiter das Scripten aufgegeben hat, genauso wie seinen Server gehörte bezogen auf Anti-Cheating und Spezial-Features meiner Meinung nach zu den besten, wenn nicht sogar der beste.
Jetzt wo das SDK für Crysis Wars draußen ist, konnte man auch viel mit C++ anfangen, aber hierfür sind wohl tiefere Kenntnisse im Programmieren nötig. Dafür kann man aber auch viel mehr Dinge ändern die normaler Weise hardcoded sind, wie zum Beispiel die maximale Spieleranzahl höher als 32 zu setzen. Ich habe mir vorgenommen mich vielleicht langsam ins LUA-Programmieren ein zu arbeiten, aber da ich noch überhaupt nicht das System des Crysis-Servers verstehe, werde ich wohl noch etwas länger brauchen.

hacking, hooking und injekting
Auf hooking und injekten bin ich eigentlich durch das alte Spiel Freelancer gekommen. Hier konnte man nämlich eigentlich nur sehr schlecht modden. Man konnte nicht ins aktive Spielgeschehen eingreifen und irgendwie Chat-Nachrichten ändern/abfangen/senden. Skins, neue Welten und neue Schiffe waren ja kein Problem. Alles war hardcoded. Da haben wir ja mit Crysis wirklich noch Glück, dass jetzt sogar das SKD-Kit rausgekommen ist, mit der man den Code ändern konnte Crysis sogesehen auf der niedrigsten Ebene ändern konnte. Bei Freelancer hat sich Microsoft aber nie dazu umgeringt etwas gutes zu dem Spiel bei zu tragen. 2008 oder 2009 wurde sogar der Server off genommen, von dem man die Liste mit allen Servern bekommen konnte. Jetzt darf man zu erst im Internet nach einer IP für einen beliebten Server raussuchen und muss diesen dann richtig in die Verlinkung zum Spiel eintragen.
Mit ging es jetzt aber darum den Spielfluss wie bei Crysis zu ändern.

Dafür muss man eine DLL in den Freelancer-Server injekten, was schon sehr aufwendig ist, da man auf LOW-Lever (Assembler) arbeiten muss und Speicheradressen rausfinden und ändert. Das ist glücklicherweise mit C++ möglich gewesen, jetzt kann man Chatmessages abfangen und sogesehen Befehle ausführen. Es gibt jetzt viele coole Erweiterungen zu dem online Spielen von Freelancer. Das ist wahrscheinlich auch der Grund warum noch ein paar sehr aktive Server vorhanden sind. Die Community bringt immer wieder neues und lässt das Spiel ansich nicht untergehen. Nur Microsoft sieht das nicht und gibt keine Unterstützung.

Keine Kommentare:

Kommentar veröffentlichen