Wie das Hotel funktioniert(e) und wie man Scriptet(e).

  • _.+*'"'*+._.+{This Text was written by ™®© ErrorMakerX / Deadman ©®™}+._.+*'"'*+._


    1. Programmierung
    =================
    Habbo wurde in der Programmiersprache "Lingo" (eine Flash-Sprache) programmiert. Lingo codet man mit Programmen wie "Macromedia Director". Um solche Spiele wie das Habbohotel auf deinem Computer anzeigen zu können, benötigst du den "Shockwave Player" von "Macromedia".


    2. Kommunikation
    ================
    Damit 2 Computer Daten austauschen können (also miteinander kommunizieren können), braucht es einen Clienten (dein Computer) und einen Server (der Computer, auf dem das Habbohotel läuft). Der Server ist im Gegensatz zum Client, der über die ".dcr" Datei die im Shockwave Player lädt, in FUSELight (eigene Sprache von Sulake) gecodet, das auf Java basiert. Der Client (dein Computer) sendet sobald du das Habbo im "Shockwave Player" lädst Daten in sogenannten "Packeten" zum Server, welcher dir mit Daten "Packeten" antwortet. Diese Packete sind für den normalen Anwender unsichtbar. Das Gespräch zwischen Server und Client könnte z.B. so aussehen:
    Client fragt Server: Hallo Server, ich bin Client Nummer soundso
    Server antwortet Client: Hallo Client, hier deine Daten zu deiner Client Nummer
    Client fragt Server: Frage nach meinen Rauminformationen (Raumname, usw.)
    Server antwortet Client: Deine Rauminformationen sind: Raumname: Habboraum, usw.


    3. Aufbau vom Habbohotel
    ========================
    Das Habbohotel ist wie schon geschrieben mit Lingo programmiert. Die End-Dateien die wenn man etwas in Lingo programmiert hat rauskommen sind z.B. ".dcr" Dateien, welche der Shockwave Player anzeigen kann. Zusätzlich werden extern sogenannte ".cct" Dateien für z.B. Möbel-Dateien usw. verwendet. Daneben gibt es noch die "external_texts" (enthaltet allen Text des Habbohotels) und "external_variables" (enthält verschiedene Werte die für die ".dcr"-Datei nötig ist um z.B. die ".cct" Dateien zu finden). In den .cct und .dcr Dateien sind unteranderem die Source, also der reine Quellcode des Habbohotels enthalten, sowie die Bilder des Habbohotels.


    4. Datenlogging [Packete Sniffen] / Scripten
    ============================================
    Wie im Abschnitt "Kommunikation" geschrieben, sind für die normalen Anwender die "Packete" unsichtbar. Jedoch nicht für Scripter.

    4.1 Memorylogging
    -----------------
    Der Computer speichert all die Werte eines Programms in der sogenannten "Memory". Mit Programmen wie "Artmoney" kann man diese Memory betrachten und editieren.

    4.2 Socketlogging
    -----------------
    Normalerweise loggt ein Habbo sich normal über den Browser ein. Der Browser verwendet dazu eine sogenannte "Sockets", welche den Datenfluss der derzeitig besuchten Seite verwaltet, also ein Socket der die Packete von der Seite zu deinem Computer empfängt und ein Socket der die Packete von deinem Computer zur Seite sendet. Was der normale Anwender jedoch mit dem Browser meist nicht kann, ist die Sockets zu kontrollieren. Dies können wir jedoch realisieren, indem wir uns selber Programme schreiben, mit denen wir dann die Sockets kontrollieren können. Sobald wir die beiden Sockets haben können wir da wir der Coder des Programms sind die Sockets kontrollieren und ihnen sagen, dass sie sobald sie Daten empfangen, diese irgentwo aufzeichnen sollen.


    5. Datenmanipulation / Scripten
    ===============================

    5.1 Memory Editierung
    ---------------------
    Wie im Abschnitt "Datenlogging" beschrieben kann man die Memory des Computers für bestimmte Prozesse editieren. Weil alle Werte die dein Computer (Client) vom Habbohotel über den Shockwave Player gespeichert sind, geht auch der Datenaustausch vom Server zum Clienten und vom Client zum Server läuft über die Memory des Shockwave Players. So kann man Werte die der Server dem Clienten gesendet hat editieren und so bei deinem Computer praktisch alles im Habbohotel anders als es der Server dir anzeigen würde aussehen lassen. Natürlich geht dies auch umgekehrt, dass heisst, man kann die Daten die dein Computer zum Server sendet ändern, was dann dazu führt, dass man z.B. dem Server eine Anfrage schickt, die man eigentlich nicht machen könnte. Das Problem beim Memory Editieren ist lediglich, dass jeder Wert den man ändert, die gleiche Anzahl an Zeichen besitzen muss, wie der Original Wert. Man kann somit also keine eigenen Packete irgentwo erstellen oder entfernen.

    5.2 Direktes Senden
    -------------------
    Wie in Abschnitt "Datenlogging", "Socketlogging" beschrieben, können wir auch über die Sockets Packete an unseren eigenen Computer (Client) oder den Server senden. Beim Senden von Packeten vom Server zum Client werden die Packete ganz normal gesendet. Beim Senden vom Client zum Server werden die Packete jedoch zum Schutz zuerst beim Clienten mit einer RC4 Verschlüsselung verschlüsselt und dann an den Server gesendet. Diese RC4 Verschlüsselung kann man wie bei allen Verschlüsselung entschlüsseln. Dazu braucht man erstmal den Verschlüsselungsstring (Public Key vom Habbo), den man mit "Lingo Tracing" erhält. Es gibt jedoch auch Umwege um die Packete die der Client zum Server sendet unverschlüsselt anzuzeigen. Früher gab es im Shockwave Player die Funktion "debugging", welche es ermöglichte während des laufenden Shockwave Films (alle Flash Dateien, wie auch Habbo sind im Grunde Filme), alles zu loggen, was man gerade im Film sah (somit auch die Packete). Ein weiterer Umweg, der möglich war oder noch ist, ist einen Lingo Code in eine ".cct" Datei des Habbos einzufügen, der dir dann die Packete direkt anzeigte. Früher benützte man häufig die "empty.cct" dafür, da diese keinen Code enthielt.

    5.3 In-Game Code Injecting
    --------------------------
    Es gibt noch eine weitere Methode Packete zu manipulieren. Dazu muss man lediglich die Packete loggen und diese untersuchen. Je nach dem findet man irgentwo eine Lücke, wie z.B. ein PostIt, auf die man Text schreiben kann. Anstatt auf das PostIt den normalen Text den man jemandem mitteilen will zu schreiben, schreibt man einfach sein eigenes Packet rein, wodurch der Client, der das PostIt lädt, automatisch das Packet mitlädt, das der Scripten auf dem PostIt platziert hat.


    _.+*'"'*+._.+{This Text was written by ™®© ErrorMakerX / Deadman ©®™}+._.+*'"'*+._

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!