Guida Guida universale allo scripting di habbo

Stato
Discussione chiusa ad ulteriori risposte.

gab.l

Utente Esperto
Autore del topic
3 Aprile 2008
1.074
0
Miglior risposta
0
Guida allo scripting in habbo
Voi tutti usate programmi , ma sapete come funzionano? Secondo me no , perchè continuo a ricevere richieste su creare veri furni , rubare i furni nelle stanze degli altri ecc.


Scrivo questa guida anche per chi ha intenzione di creare un programma script , visto che all'inizio ho avuto una marea di difficolta e nessuno sapeva come aiutarmi , e anche per chi non ha capito nulla di scripting


PARTE TEORICA
Gli elementi per connettersi normalmente ad habbo non sono molti :
-DCR
-External text & variables
-Ip e porta a cui ci si deve collegare
-SSO ticket ( stringa con cui il server vi identifica , cambia ad ogni vostro login e logout

Il DCR :
il dcr non è nient'altro che il client .
Una volta caricato , farà connettere un Socket ad "habbohotel.it" attraverso la porta 30001 ( potete farlo anche voi attraverso un client di una chat).
Il server , appena noterà che vi siete connessi vi inviererà una serie di pacchetti , a cui il DCR risponderà automaticamente inviando al server dei dati


SPIEGAZIONE RIGUARDANTE LO SCAMBIO DI CHIAVI
Il primo pacchetto/dato ricevuto sarà sempre "@@" e serve al server per capire se vi siete connessi col DCR

Primo dato ricevuto : "@@" , il DCR invierà come risposta "@@BCN"

Naturalmente si può ingannare il server , proprio come fanno i bot , ma ne parleremo dopo
----------------------------

il secondo botta e risposta tra client e server serve per decidere la chiave da usare nella criptazione , attualmente il server utilizza il metodo
Perfavore, Entra oppure Registrati per vedere i Link!

quindi potrebbe cambiare metodo
esempio:
il server invia a voi : "DUIH" , questo è il "segnale" per dare inizio allo scambio di chiavi della criptazione

DCR invia secondo lo scambio di dati Diffie-Hellman:
@BD_RB@5AD23D832A1597AB118829BBF314510A01641E8EF2E0CF2978D0242719E7E87DD76B0B017CA9E72A7DB5310229A8B9555B947950CFA284BA70B7760DC2832646
il server vi invia :
@A1ae948d13a05f1e46a6d159e714b9f8fd2e020a7b08e6a81acf225506ad72365c2152f2638b5ff8eab038bcfd019f103a9878d592d35b4ae37889c59049727cc

seguiranno poi varie operazioni per decidere la chiave .
una volta scelta il DCR inizierà a inviare dati criptati in RC4 utilizzando la chiave scelta in precedenza

RC4 è la classe di criptazione vera e propria , ed è fatta in modo che criptando lo stesso dato più volte il risultato sia sempre diverso , quindi non potete inviare due volte il dato criptato nello stesso modo

RC4 ha alcune varianti , infatti la variante attuale è dinamica , perchè cripta secondo una chiave scelta al momento

mentre qualche mese fa era statica
e qualche mese ancora prima era dinamica :emoji_relieved:

HEADERS & SPIEGAZIONI PACCHETTI
il terzo&quarto&quinto&altri botta e risposta tra voi e il server serviranno per far capire al server alcune cose:
-farà capire quale DCR state usando , se quello vero o uno modificato o di versione precedente
-farà capire chi siete attraverso SSO ticket , una stringa scritta nel loader che il DCR invierà al server per l'identificazione
-farà capire che external text e variables state usando


fatto questo il server vi invierà tutti altri dati normali come quali stanze ci sono in giochi e competizioni o in aree pubbliche e cosi via

Come fa il DCR a capire di quali dati stiamo parlando???
semplice :
ottiene l'header che non è altro che i primi due caratteri della stringa ricevuta

ad esempio se ricevete
@b4 7,4,0.0,2,2/sit 1.0/

stacca i primi due caratteri ovvero "@b" , da questo header , il DCR, capisce che stiamo parlando della posizione di un certo habbo e del suo status

4 7,4,0.0,2,2/sit 1.0/
4= id dell'habbo nella stanza
7,4,0.0,2,2/ = posizione dell'habbo e dati sulla sua altezza
sit 1.0/ = status dell'habbo , in questo caso è seduto
esistono altri status come
-carryd 13
-dance
-wave
-Sleep
-Swim ( solo nelle piscine)




LISTA HEADERS DEL CLIENT e FUNZIONI
come abbiamo detto prima ogni header serve al dcr per far capire di quale tipo di dato stiamo parlando ( posizioni , furni , alert) e di conseguenza cambia il modo in cui viene "letto":

una lista degli header più importanti

Header "@\"
notifica l'entrata di un nuovo user , precisandone nome , id nella stanza , badge , vestiti e altre informazioni
esempio:
@\i:0
a:1799494
n:TheIce2
f:hd-180-2.ch-260-62.lg-270-64.sh-905-84.hr-115-31.ha-1021-62
l:3 5 0.0
c:
s:M
x:162



header "@b"
definisce la posizione di un user nella stanza e il suo status ( si sta muovendo , è seduto , sta salutando ecc)
esempio
@b4 7,4,0.0,2,2/sit 1.0/

header "@Z"
indica ke un utente sta urlando una certa cosa esempio:
@ZHciao
@Z = header
H = numero dell'utente codato in VL64 (spiego dopo cos'è)
ciao = frase ke dice
 = sta a indicare la fine di una frase

header "BK"
indica che avete ricevuto un alert dai mod, esempio:
BKciao

header "@`"

indica che state ricevendo informazioni sui furni , sul colore , sulla posizione e sul loro stato ( se il divisore è aperto ecc)
esempio:
@`1345md_limukaappiSAPBIIJ0.0#FFFFFFHTRUE
1345= id del furno
md_limukaappi = sprite del furno , ovvero l'immagine , in questo caso è la coca cola
SAPBIIJO.O = sono le coordinate codate in VL64 ( spiego dopo cos'è)
#FFFFFF = colore ( di solito le coca cole non hanno colore , l'ho aggiunto per fare un esempio)
HTRUE = lo stato in cui si trova , in questo caso stava versando la coca cola


header "A]"
è stato aggiunto un furno , precisa la sprite , coordinate , colore e stato. esempio:
A]1md_limukaappiSAPBIIJ0.0HTRUE
header "BL"
indica che furni avete in mano

header "@n"
colore del pavimento o del muro
esempio:
@nwallpaper/2301

questi erano header del client

HEADER SERVER E LE LORO FUNZIONI


Per far capire al server che tipo di dati avete inviato .
A parte alcuni casi , le conseguenze dell'invio di dati al server saranno viste da tutti


header "AJ"
serve per "signare" un furno , ovvero dargli una proprietà , ad esempio possiamo aprire un frigo/teletrasporto a distanza
esempio
AJ@E23232@DTRUE
AJ = header
@E = "codatura" di 23232 in B64 , che non è VL64 ( spiego dopo cos'è)
23232= id del furno
@D = codatura di TRUE in B64
TRUE = proprietà , in questo caso, se il furno fosse stato un teletrasporto o un frigo , lo avremmo aperto a distanza

header "AP"
uno degli header più conosciuti , serve per far apparire una bibita o macchina fotografica in mano (visibile a tutti)
esempio:
AP20 farà apparire una macchina fotografica
header "@A"
serve per muoversi verso una certa casella , non ho esempi

header "@w"
server per urlare un messaggio
esempio
@w@Dciao
@D = codatura di ciao in B64
non ne ricordo altri


PARTE PRATICA
Ingannare il DCR
mettiamo caso che c'è un teletrasporto in un luogo inaccessibile , come fare ad entrare?
se clicchiamo due volte sul teletrasporto non riusceremo a teletrasportarci perchè il DCR sà che siamo troppo distanti e non invierà il pacchetto per teletrasportarci
quindi come fare??
semplice:
utilizzando l'header "@b" che abbiamo visto prima nella parte teorica , possiamo teletrasportarci in client
basterà inviare al client @b(ID USER) (COORDINATE DEL TELETRASPORTO)
esempio: @b0 9,12,0.0,2,2/
faremo credere al DCR di essere nel teletrasporto e quindi invierà il pacchetto per teletrasportarci

stessa cosa può essere fatta per aprire un frigo a distanza , o nukkare i tele

Inviare al server senza avere la classe di criptazione (ARTMONEY - RAW DATA)
Come sappiamo , se non si ha la criptazione non c'è modo di inviare direttamente al server
ma esiste un modo per inviare indirettamente, conoscendo solo la sintassi del dato da inviare, utilizzando il raw data
Per farlo bisogna utilizzare artmoney , un programma che cambia i valori della memoria
se ad esempio vogliamo farci comparire una macchina fotografica

basterà cambiare il valore dell'header di "cacciare un utente" (A_) con quello del dato cui vogliamo inviare (AP)
ora basterà creare un mutante di nome "20"
ora scacciate il mutante e il gioco è fatto

perchè succede?

il dcr cercerà di inviare A_20 ( ovvero caccia "20") ma , visto che abbiamo cambiato il valore di A_ in AP, invierà AP20 , proprio il pacchetto che volevamo inviare!

Inviare al server senza avere la classe di criptazione (COYOTE'S DLL)
non sò l'esatto funzionamento della coyote DLL
è una dll che permette di inviare dati al server utilizzando la criptazione che riesce in qualche modo ad avere dallo shockwave 10.3.1.8
però è necessario usare il DCR , quindi non si possono fare bot perchè , anche se 5 o 6, laggherebbe troppo ( caricamento shockwave , caricamento furni ecc)


CODARE IN B64 E VL64

il B64 crea un header in base alla lunghezza ( @A se il messaggio è di una lettera , @B se è di due , @C di 3 e cosi via) che va aggiunto all'inizio del messaggio esistente

il VL64 invece , funzionante solo per i numeri , coda diversamente numero e numero , trasformandolo in lettere ( numero 1 = I , 2 = J , 3 = K, ecc)
B64
il B64 è usato nei dati da inviare al server , per codare messaggi o status :
esempio:
se devo codare "AP24" ovvero fare apparire una macchina fotografica

devo basarmi sulla lunghezza della parola , AP24 = 4 lettere
4° lettera dell'alfabeto = D

messaggio codato = @DAP20

Facile , ma se il messaggio è di una trentima di caratteri? non lo so , io uso le dll di jeax ke lo fanno in automatico :emoji_relieved:

VL64

viene usato per codare i dati che il server invia a te ( client)
non sò come funziona , sò solo che funziona solo per i numeri
per encodare / decodare uso le dll di jeax che sono molto buone


Funzionamento dei bot
i bot non sono altro che dei socket che fanno finta di essere connessi col DCR .
inquesto modo è possibile comandare un esercito di bot senza avere il minimo lag prodotto invece dal caricamento del dcr , dei furni , delle immagini di habbo ( prova ad aprire 4 habbo col loader insieme )

i bot per funzionare devono utilizzare la classe di criptazione , al contrario dei normali habbi .
di solito il DCR cripta di suo i dati e li invia , ma in mancanza di questo si deve avere la classe di criptazione
 
Ultima modifica:
  • Like
Reactions: 2 people
uff nn mi si aprono gli spoiler, nn so xk
cmq hai ftt bn a fare una guida su cm creare prog x scriptare
 
Anna nn bisogna avere sempre la pappa buona:emoji_slight_smile: di gab si stara faticando a scrivere quello e ora anche le foto? -_-
 
Finalmente l' hai finita!
Avevo bisogno in habbos e nn c'eri e ho stakkato ora ci sei e nn ci sono io
Bah cmq bella guida!
 
E brava la mia testa quadrata di gab. Anche se io sapevo già queste cose fa sempre piacere tenere informati gli altri...
 
:emoji_relieved: l'ho finita , credo che non ci aggiungerò altro
ora potete pure disturbarmi :emoji_slight_frown:
 
Stato
Discussione chiusa ad ulteriori risposte.