lo sniffer non serve a molto con il protocollo usato da Unreal in quanto il modo in cui sono letti/scritti i dati e' decisamente complesso.
prima di tutto fa' ampio uso di bits (ecco perche' non vedi nulla se provi a sniffare) e metodi atti a usare meno bytes/bits del normale, tipo far occupare un solo byte ad un numero a 32 bit che dovrebbe occuparne 4.
poi e' diviso in vari canali, che sono Control (1), Actor (2) e File (3) piu' se non sbaglio vari sottocanali (ChIndex).
ora, mentre per i canali Control e File non ci sono assolutamente problemi in quanto il loro formato e' abbastanza standard, lo stesso non vale per l'Actor che e' quello che contiene tutti i dati di gioco (movimenti, azioni, messaggi e cosi' via) ed e' non solo incasinato ma anche abbastanza differente per ogni gioco basato sul motore di Unreal.
Qualche mese fa' difatti provai a gestire questo canale che e' costituito da circa 228 tipi di dati ma arrivato a circa 80 mi sono rotto le palle anche perche' la cosa non mi sembrava un granche' per vari motivi.
Comunque il plugin sperimentale che feci per sudppipe (un proxy udp) e' disponibile al link seguente e permette di vedere il contenuto dei canali Control e File e dumpare il contenuto grezzo del canale Actor:
http://aluigi.org/papers.htm#unreal http://aluigi.org/mytoolz.htm#sudppipecomunque ripeto che e' sperimentale, difatti non implementa alcuna funzione di riconoscimento dei vecchi canali (quelli gia' aperti) che quindi vengono classificati come canale 0 (anziche' 1, 2 o 3).
esempio d'uso:
per l'help: sudppipe -l unreal_sudp -L "" SERVER 7777 1234
per America's Army: sudppipe -l unreal_sudp -L "-a -x" xp 7777 1234
dopodiche' collega il tuo client al server 127.0.0.1:1234 ed il tool sparera' a video tutto quello che riceve e riesce a parsare.