Professional Documents
Culture Documents
Als je vragen voor ons hebt dan kan je contact opnemen via www.leetzone.us.
ASCII – American Standard Code for Information Interchange, zie hier een lijst met alle belangrijke ASCII tekens.
B64 encoding – een encoding die de lengte aangeeft van een packet, in TFHA X zit een encoder en decoder.
Chr(?) / [?] – Als een ASCII teken wordt weergegeven als een blokje kan je op deze manier aangeven welk
nummer het is. ( = ASCII 01 = chr(1)/[01])
Clientside / CS – Scripts die alleen jij, de client, ziet. Andere zien jou clientside scripts niet.
Client Packets – Packets die (normaal gesproken) door de client naar de server wordt gestuurd.
Header – Begin van een packet. De client/server herkent een packet aan zijn header.
LV64 encoding – een encoding in wat serverpackets, in TFHA X zit een encoder en decoder.
Mutants – Vertaald als: mutanten. Met mutants wordt meestal verwezen naar habbo’s met illegale kleuren, vormen
of die habbodelen missen. (dit geldt ook voor de huisdieren)
Serverside / SS – Scripts die iedereen, op de server, ziet. Andere kunnen serverside scripts wel zien.
Server Packets – Packets die (normaal gesproken) door de server naar de clients wordt gestuurd.
Als je de bovenstaande dingen nog niet snapt, maak je geen zorgen. Alles wordt verderop duidelijker uitgelegd.
Je hebt browserscripttalen, zoals VBscript en Javascript, deze kan je tussen je HTML zetten om ze te
laten werken.
Naast dat heb je ook Visual Basic, Java, C, C++ en C#.
Deze talen gebruik je om echt .exe files te maken.
Bijna alle scriptprogramma’s zijn packet editor’s, het bekende WPE PRO staat ook voor Winsocket
Packet Editor.
Zoals je in het plaatje ziet verbindt de client met een scriptprogramma in plaats van direct met de
server, de server verbind ook met een scriptprogramma in plaats van direct met de client.
Een scriptprogramma stuurt alle packets door zodat zowel de client als de server niet in de gaten
hebben dat er iets tussen zit.
Je kan met een scriptprogramma elke packet die je maar wilt naar de client sturen maar de effecten
ervan zijn alleen voor jouw zichtbaar. (packets naar de server sturen kan wel serverside effecten
hebben)
Packets die van de client naar de server gaan zijn altijd encrypted, gecodeerd en dus onleesbaar,
waarschijnlijk als beveiliging tegen scripters.
Gelukkig zijn er mensen (zoals Erik) die de encryptie gekraakt hebben en een functie in hun packet
editor hebben gestopt zodat je packets van de client kunt lezen in de packetlog en packets zonder
encryptie op kan sturen naar de server.
WPE PRO en alle andere in Visual Basic 6 gemaakte scriptprogramma’s zijn in principe packet editors
met een ingebouwde browser.
We raden aan om Habbo RC4 te gebruiken als scriptprogramma om mee te leren scripten, deze kun je
hier downloaden.
Toch zijn er veel manieren gevonden om met artmoney serverside scripts uit te voeren,
bijvoorbeeld de walldrop script van Hit.
Door in het geheugen van je browser de height waarde van de muren in habbo kamers te
veranderen met artmoney worden de muren van je kamer uitgerekt.
De client laat je alleen posters ophangen op plekken waar muur is om te voorkomen dat je ze
buiten de kamer ophangt.
Door de muren uit te rekken denkt de client dat je daar een poster mag ophangen.
Als je habbo reload zijn de muren weer normaal en hangen de posters serverside in het zwart.
Voordat encryptiefuncties voor iedereen beschikbaar waren werd artmoney ook gebruikt om
data naar de server te sturen zonder het te hoeven encrypten.
Dit werd gedaan door packetheaders in het geheugen van de client te bewerken met artmoney.
Zo werden de oude serverside meubel scripts gedaan.
Al dat gedoe met packetheaders was best ingewikkeld maar nu nutteloos vanwege de gekraakte
encryptie, als de encryptie weer veranderd zullen we onze scripts weer met Artmoney moeten
doen.
BK is het begin van de packet, de client kan aan deze eerste twee letters zien om
welke packet het gaat.
Dat wordt de header genoemd.
Je kan ook zelf headers zoeken/bestuderen door in de packetlogs te kijken.
In een MOD-bericht zit tekst, in dit geval LOL. (of iets anders naar keuze)
Om de packet te eindigen gebruik je chr(01)/[01]. ()
Met chr(01) wordt bedoelt het ASCII teken met het nummer 01, ASCII is een
verzameling van 255 tekens die allemaal een nummer hebben. De hoofdletter A is
bijv nummer 41, hoofdletter B is 42 enz. De nummers 0-32 hebben geen
teken/letter/cijfer en worden weergegeven als een blokje, we noemen dit blokje bij
hun nummer om ze zo uit elkaar te houden. Hier vind je een lijst met alle
belangrijke ASCII tekens.
Door deze en andere packets naar de client te sturen kan je clientside scripten.
Zoals je hopelijk geleerd hebt, zie je dat dit packet begint met een header, @` en eindigt met een
chr(01).
Deze packet heeft meerdere stukken waarin data staat, deze stukken worden gescheiden door
chr(02)’s. Ook zie je dat er een I gelijk achter de header staat. Dit is een 1 gecodeerd in Lv64, dit
getal geeft aan hoeveel meubels deze packet bevat.
Het nummer “5351386” erna is het ID van de meubel, elk meubel dat gekocht wordt heeft een uniek
ID. Daarna staat er een chr(02) om aan te geven dat het volgende stuk informatie komt.
Het woord “door” is de sprite code, elk soort meubel heeft een eigen sprite.
Als de client het woord “door” ziet weet hij dat hij een teleporter moet laten zien.
Nu word het ingewikkelder, omdat dit gedeelte ook in LV64 gecodeerd staat. Ik zal het even vertalen,
SA = 7, QB = 9, dit zijn de coördinaten waaraan de client ziet waar de meubels in de kamer moeten
komen. Als je dit veranderd verplaats je het meubelstuk.
I betekent 1 zoals ik al zei, de dubbele I na de coordinaten geven aan hoe lang en hoe breed de
teleporter is, aangezien teleporters 1 bij 1 vakje innemen. De 0.0 is hoe hoog de meubel staat.
Dan heb je nog wat vakjes erna waar bijvoorbeeld kleuren, en de status van een meubel instaat. De
teleporter heb je maar in 1 kleur, dus dat kan niet veranderd worden. De status is kvgFEFALSE,
FALSE betekent dat de deur dicht is.
Je kunt deze packet bewerken en naar de client sturen om je eigen meubel clientside te scripten.
Vervang de sprite om een andere meubel te krijgen.
Als voorbeeld van een packet voor de server gebruik ik het “pakeendrankje” packet.
De header van een drankje is AP gevolgd door de ID van het drankje.
Het drankje Cola heeft in habbo ID 19.
Wat je naar de server zou moeten sturen is dus AP19.
Als je een programma met encryption hebt dan is AP19 het enige wat je hoeft te versturen om het colaflesje
te laten verschijnen.
Toen er nog geen openbare programma's met encryptie waren moest je de headers nog bewerken met
Artmoney.