Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Warrock private server FIXED - in corso

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Per loggarli su disco intendo che ci sono un paio di funzioni che elaborano i pacchetti, sia quelli che entrano (mandati quindi dal client al nostro server) sia quelli che escono (quindi creati dal nostro server e mandati ai client), quello che dobbiamo fare è andare in queste 2 funzioni e inserire del codice nostro che prende il pacchetto cosi com'è in memoria e lo va a salvare sul disco.
Questo perchè non è molto semplice studiarsi i pacchetti guardandoli dalla memoria magari con breakpoint, è molto piu semplice se li salviamo tutti su disco e poi ce li andiamo a vedere aprendo il file con notepad.
Infatti i pacchetti di warrock sono delle stringhe di testo che si capiscono abbastanza bene leggendole da file, ad esempio:

Citazione:33532345 30000 1 0 1 2 200 0 1 2 0 3500 3500 30000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

questo è un pacchetto.

Ogni cifra serve a qualcosa, non sempre le capisci tutte ma a te non importa a te importa capire quale di quelle cifre fa qualcosa che a te serve.
Magari ogni volta che uno zombi ti colpisce ti arriva quel pacchetto e ogni volta vedi che una cifra cambia magari diminuendo, quella diminuzione potrebbe allora essere la quantità di vita del tuo giocatore capito?
(era solo un esempio, non mi pare che ragionasse cosi).
Diciamo che ci vuole molta pazienza e investigazione, all'inizio ci capisci poco ma poi a forza di prove e analisi capisci una cosa, poi due, poi tre e poi ne capisci abbastanza da sistemare le cose.
Bisogna avere fede Wink

Per loggare i pacchetti guarda questi files:

in "virtualUser.cs" la funzione:
private void arrivedData(IAsyncResult iAr)

qui arrivano i pacchetti dal client al server, sono criptati, quindi prima gli lasci decriptare i dati arrivati e appena sono in chiaro li puoi salvare su disco.

in "packet.cs" vai alla funzione:
public byte[] getBytes()

qui gli lasci fare tutto il suo lavoro di costruzione del pacchetto, poi prima della fine della funzione ovvero prima del return, ci metti il codice per salvare il pacchetto su disco. Questo è il pacchetto che il server manda al client.

Se ti chiedi come salvare su disco il pacchetto puoi usare la funzione Log presente nel source, cosi:

Log.WritePlain("S=>" + sPacket);

dove ho messo S=> per dire "è un pacchetto inviato dal server"
e poi gli ho accodato la stringa sPacket che è quella che contiene il pacchetto vero e proprio.


digger
20/05/2014, 22:54
#17
Cerca


Messaggi in questa discussione
RE: Warrock private server FIXED - in corso - da digger - 20/05/2014, 22:54

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [24.03.2013] WarRock Unlimited Ammo & Super Fist Script!!! MAUROW 4 3,315 11/04/2022, 1:01
Ultimo messaggio: Joker0
  InfinityWar War Rock Private Server NosOne1 2 2,088 07/01/2017, 22:30
Ultimo messaggio: boxisio
  HACK WARROCK VELOCE andry0303 1 2,850 07/01/2017, 22:29
Ultimo messaggio: boxisio



Utenti che stanno guardando questa discussione: 1 Ospite(i)