Da sich in den letzten Wochen wieder einmal ein wenig was angesammelt hat, fasse ich das einfach mal in einem Artikel zusammen.
Harmony ist “fertig”! Zumindest Version 3.0. Nachdem diese mittlerweile stabil ist und auch bereits produktiv eingesetzt wird, läuft derzeit bereits die Entwicklung von Version 3.1. Bisher beschränkt sich Harmony auf allgemeine Funktionen der vorherigen Versionen, sprich WPE/RPE Erkennung, Paketverschlüsselung und einige andere Techniken sowie eine rudimentäre XRay Implementation (Headgears, Monster und Hairstyles). Ich wollte erst einmal sicher gehen, dass die derzeitige Version stabil läuft und habe daher die Features soweit es geht eingeschränkt. Mit 3.1 werden dann diverse neue Kundenfeatures hinzukommen, wie beispielsweise die einstellbare GRF Verschlüsselung.
Im Gegensatz zu bisherigen Systemen wird Harmony voraussichtlich nicht mehr an eine Exe gebunden sein. Die Core ist mittlerweile so strukturiert, dass die meisten Module keine eigenen Offsets mehr benötigen und somit unabhängig von der Exe sind. Die Harmony Core wird nun voraussichtlich jede Woche auf auf die aktuelle RagRE Exe portiert, sodass prinzipiell jede Exe unterstützt wird. Für die Portierung kommt ein PHP Skript zum Einsatz, was die Offsets über Pattern Matching ausliest. Das Skript gibt es hier zum Download. Aus wohl verständlichen Gründen sind die Harmony Offsets nicht enthalten, dafür aber 2 Beispielskripte.
Einer der Hauptgründe, warum ich Harmony so früh auf die neueste Exe portiert habe, ist folgender Changelog Eintrag:
- You can now mouse over the status icons displayed on the right side of the screen to get information about what the status does.
Wenn sich das bewahrheiten sollte, wäre das eine der besten Änderungen seit Jahren. Und tatsächlich!
Technisch sind für dieses Feature einige neue Lua Dateien hinzugekommen. Eine für die Zuordnung von Effektnamen zu ihren IDs (quasi ein Enum), eine für die Funktionen und eine für die Beschreibungen. Damit wird ein Trend fortgesetzt, dem Gravity nun schon seit einer ganzen Weile folgt: Neue Features nutzen Lua und alte “Kotzfaktoren” werden nach und nach in Lua ausgelagert. Gravitys neue Erkenntnis, dass Contenttabellen im Source irgendwie nicht mehr ganz zeitgemäß sind, kommt der pServer Community natürlich nur entgegen: Anstatt das mittlerweile verpönte XRay zu verwenden kann man nun einfach die Lua Dateien editieren.
Apropos innovative Gravity Features: Wer erinnert sich an den Chatmode?

Ist dieser aktiv, verschwindet das Chatfenster selbst bei doppeltem Enterdrücken nicht mehr – der perfekte Pronmodus eben![]()
Gravity Changelog vom 09.03.2010:
Added Chat Mode to the shortcut menu. When enabled, the chat box will always remain open [...]
Das ist ja echt kreativ!
Seit einiger Zeit bin ich nun offiziell Mitglied des Diff Teams. Bedeutet: Ich bin mit dafür zuständig, dass für neue Exen so schnell wie möglich Diffs erstellt werden und mögliche Inkompatibilitäten beseitigt werden. Bisher hatte ich lediglich den “@-Fix” und einen Diff zum Deaktiven des Nagle Algorithmus‘ eingebaut. Bedingt durch meinen Entschluss, zukünftige Exen Harmony-tauglich zu machen, werde ich hier aber wahrscheinlich in Zukunft etwas mehr Zeit investieren. Die heutige Exe hat beispielsweise 5 Diffs zerschossen, die repariert werden durften…

Picture unrelated.
Es gibt diverse Server, die sich damit brüsten, ihre Bot Protection sei unüberwindbar, würde alles blocken und sei sowieso die beste Entwicklung seit der Erfindung des Toasters. Keine Bot Protection ist perfekt. Natürlich, aus Sicht des Marketings ist alles aus dem eigenen Hause perfekt, aber wenn selbst Techniker im Einzelgespräch diese Meinung vertreten, haben sie etwas wichtiges verpasst.
Um neue Ideen und Inspirationen für Harmony zu bekommen reverse ich ganz gerne die Bot Protections anderer Server. Das Spektrum reicht hier von “aufgeblasen, komplex und irgendwie nach dem Motto just bore the reverser long enough” bis “cool, 3 Zeilen und OpenKore funktioniert nicht mehr”. Bisher habe ich keine Protection gesehen, die sich nicht binnen 20 Minuten umgehen ließ. Das sagt allerdings relativ wenig über die allgemeine Qualität der Systeme aus – es liegt schlicht und einfach daran, dass es Mittel und Wege gibt, mit der (fast) jede Bot Protection ausgehebelt werden kann.
Nachdem V-Shield schnell für Enttäuschung gesorgt hatte, waren meine Erwartungen nicht sonderlich hoch, als mir vor einigen Tagen von einer “selbstgeschriebenen Bot Protection” auf einem deutschen Server berichtet wurde. Das System ansich war relativ schnell reverst, aber die Codequalität war vergleichsweise hoch und es wurden einige hochinteressante Ansätze genutzt, die mir bisher in der Praxis noch nie begegnet waren.
Da ich auf dem Server eh nicht spiele habe ich dann frei nach dem Holzhammer-Motto per Try&Error durchprobiert, was die Protection alles erkennt. Wie sich herausstellte hat sie den Server über die Ergebnisse informiert (zumindest über die Tatsache, dass es Ergebnisse gab) – ich wurde ins GM Haus recallt und bin dort mit dem Admin ins Gespräch gekommen.
Es stellte sich heraus, dass Godlesz ihm eine Anleitung gegeben hatte, wie man eine solche Bot Protection implementiert. Wenn man sich überlegt, dass er noch vor 2-3 Jahren von Timo Programmiernachhilfe bekommen hat, ist das eine durchaus beachtliche Leistung.
Ansonsten habe ich nun noch 7 Tage Schule — dann sind Osterferien und in der Woche darauf bekomme ich mein 12/2 Zeugnis. Ende April dann noch Abiprüfungen und ich bin mit der Schule fertig. Die Zeit vergeht schnell…









