[TUT | R63B Post Shuffle] Packets verstehen [TUT]

  • Hi,

    Auf einem anderen Forum habe ich vor kurzem ein Tutorial entdeckt, indem erklärt wird, wie man die Post-Shuffle Packets versteht (Habbo R63B Packets).
    Ich finde es noch recht schwer, und verstehe es selbst noch nicht 100% richtig, aber das ist mal ein Anfang.

    Also, 1 Byte sind 8 Bits. (Mehr über Bytes >>)

    Wir haben hier ein einfaches Packet:

    Code
    [0][0][0][7][13]²[0][3]0.0

    Die ersten 6 Bytes ergeben den Packetheader welches aus 4 Integers (Ints) (= Ziffer(n)) besteht.
    Das wäre also:

    Code
    [0][0][0][7][13]²

    In einem Packetscout könnt ihr das eingeben und das würde dann 3506 ergeben. So nun haben wir die ServerMessage 3506, das ist unser Packetheader. Der Rest ist ein String, die Länge wird mit einem weiteren Byte angegeben.

    Code
    [0][3]0.0


    [3] zeigt an, wie viele Zeichen der String hat.

    Nun haben wir unsere erste Message (C# Code):

    PHP
    var Message = new ServerMessage(3506);
    Message.Append<string>("0.0"); // 0.[ANZAHL DER TALER]

    Jeder Packet hat seine eigene Struktur. Der Alert (SendNotif) z.B, hat 2 Strings nähmlich der Link und die Nachricht.

    Das Packet ist so aufgebaut:
    Int (4 Bytes)
    Short (2 Bytes)
    Bool (1 Byte)


    Quelle: Silcode

    Credits:
    Rewrite & vereinfachen: Huginho98 (30%)
    Tutorial erklären: Emerica (70%)

  • Wo sind meine credits du huso fuers erklären an dir. Voll azzlack duetsch.
    Hab halbe stunde erklärt dir, bis du einigermassen gecheckt und jetzt du azzlack.
    Bye the way: Diese Packet Struktur ist so einfach, wie kann man das nicht zu 100 % verstehen ? ;(

    Einmal editiert, zuletzt von Shacho (1. Dezember 2012 um 20:19)


  • Wo sind meine credits du huso fuers erklären an dir. Voll azzlack duetsch.
    Hab halbe stunde erklärt dir, bis du einigermassen gecheckt und jetzt du azzlack.
    Bye the way: Diese Packet Struktur ist so einfach, wie kann man das nicht zu 100 % verstehen ?


    Reden du nichd so shid ich verstehen deutsch azzlaked nicht gud.

    Du hast mir praktisch nichts erklärt da alles auf Silcode stand. Ich konnte es einfach "Nachschlagen" und wäre genau so schlau wie jetzt.
    P.S: Bin kein Huso meine Mutter hat einen anständigen Job.


  • Reden du nichd so shid ich verstehen deutsch azzlaked nicht gud.

    Du hast mir praktisch nichts erklärt da alles auf Silcode stand. Ich konnte es einfach "Nachschlagen" und wäre genau so schlau wie jetzt.
    P.S: Bin kein Huso meine Mutter hat einen anständigen Job.


    Ich kann dich nicht leiden.

    Wo willst du die neue Struktur der Packets denn "Nachschlagen"?
    Klar könntest du die Struktur im Action Script herausfinden.. Aber sicher, dass du das kannst?

    Man braucht auch keine großen Kenntnisse,
    um den Thread von Emerica zu verstehen.

    Vereinfachen konntest du den Text auch nicht,
    da dieser schon sehr einfach und unkompliziert geschrieben wurde.. (Also wunder ich mich schon, über deine 30% bei den Credits)

    Cheers,
    Steve Winfield

  • Wo sind meine credits du huso fuers erklären an dir. Voll azzlack duetsch.
    Hab halbe stunde erklärt dir, bis du einigermassen gecheckt und jetzt du azzlack.
    Bye the way: Diese Packet Struktur ist so einfach, wie kann man das nicht zu 100 % verstehen ? ;(

    Jetzt halt mal die Luft an du Flachzange wenn ich dir mal einen Ordentlichen Paketstring gebe dann schauen wir schon ob es einfach ist und 100% verständlich. Deine 0815 Taler-Pakets kannst du nem 6 Jährigem Kind geben.

    Steve ich wundere mich genauso wo die dreckigen 30% hinfliegen.

  • Jetzt halt mal die Luft an du Flachzange wenn ich dir mal einen Ordentlichen Paketstring gebe dann schauen wir schon ob es einfach ist und 100% verständlich. Deine 0815 Taler-Pakets kannst du nem 6 Jährigem Kind geben.

    Steve ich wundere mich genauso wo die dreckigen 30% hinfliegen.

    Das analysieren der Packets ist von Grösse zu Grösse schwieriger oder einfacher.
    Aber ich meinte damit die Struktur, nicht das analysieren.
    @hugnho Sicher hab ich das, ich habe dir auch das packethandling anhand der codes erklärt.

  • Für was postest du das hier?
    Hat eh 2% der User verstanden.

    Unter die 2 Prozent würde ich dich NICHT zählen.

    Finde es doch recht verständlich, nur auf auf die Datentypen wie Integer oder String hätte man aus Sachen der vereinfachung verzichten können!


    :!: FileXs #Lieblingsmod. :!:
    ... still making kids cry since 2015.

  • Code
    [0][3]0.0


    [3] zeigt an, wie viele Zeichen der String hat.

    Naja nicht wirklich.
    Die beiden bytes 0 und 3 sind es, weil ein short hat 2 bytes und nicht einer, und vor einem string wird dem packet immer ein short mit der Länge des strings hinzugefügt, da man sonst der Funktion die den string aus dem packet liest einen parameter übergeben müsste mit der länge des strings, diese Länge ist jedoch nicht bekannt, da ein string keine feste Länge hat.
    Du kannst es z.B mit C# ausprobieren indem du einfach den BitConverter nutzt:

    Code
    short s = Bitconverter.ToInt16(new byte[]{0,3},0);


    Da aber die Bytereihenfolge in dieser packetstruktur umgedreht wird ist es offensichtlich, dass nur folgender short den Wert der Länge von "0.0" erhalten würde:

    Code
    short z = Bitconverter.ToInt16(new byte[]{3,0},0);

    2 Mal editiert, zuletzt von Shacho (2. Dezember 2012 um 14:50)

  • Naja nicht wirklich.
    Die beiden bytes 0 und 3 sind es, weil ein short hat 2 bytes und nicht einer, und vor einem string wird dem packet immer ein short mit der Länge des strings hinzugefügt, da man sonst der Funktion die den string aus dem packet liest einen parameter übergeben müsste mit der länge des strings, diese Länge ist jedoch nicht bekannt, da ein string keine feste Länge hat.
    Du kannst es z.B mit C# ausprobieren indem du einfach den BitConverter nutzt:

    Code
    short s = Bitconverter.ToInt16(new byte[]{0,3},0);


    Da aber die Bytereihenfolge in dieser packetstruktur umgedreht wird ist es offensichtlich, dass nur folgender short den Wert 3 erhalten würde:

    Code
    short z = Bitconverter.ToInt16(new byte[]{3,0},0);

    Ich kann von C# nicht mitreden, aber teilweise in Java(Ich lerne zurzeit die Datentypen, und die Basiskentnisse von Java)


    Ich gebe hier mal meine Meinung ab:

    Emerica möchte bloss erklären, wie die Header's, und die Packetstruktur aufgebaut ist.

    Ich finde das Hugi keine Credits verdient hat, da Emerica alleine das Tutorial geschrieben hat und somit auch die Credits an ihn gehen.

    Die Grösse des Bytes in Java besteht aus 8 Bit die Länge des Bytes Beispiel: byte test [] = new byte [6]; (Header besteht aus 6 Bytes).

    Die Grösse eines Short in Java besteht aus 16 Bit: Beispiel: short shorttest = 112;

Jetzt mitmachen!

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