Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB5] mission impossible? monitorare gioco multiplayer

    dunque... gioco multiplayer internet basato su directX

    gare da circa dieci minuti

    il quesito è questo: trovare un modo per capire, ANCHE SE IL GIOCO NON E' IN PRIMO PIANO (magari xché in attasa della gara successiva si naviga in internet), quando una gara finisce ed inizia la successiva

    inizialmente ho pensato di analizzare tutti i pacchetti TCP che pervengono al PC, immaginando di poter intercettare un pacchetto di "fine gara".... ma dopo estenuanti ricerche mi pare di aver capito che VB non è il linguaggio di programmazione adatto

    qualcuno ha un' idea vincente?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Fare una cosa del genere con VB5 non e' molto saggio.

  3. #3
    Originariamente inviato da oregon
    Fare una cosa del genere con VB5 non e' molto saggio.
    si, immagino, ma la domanda rimane: lento o poco funzionale che sia, la cosa è fattibile?

    la mia impressione è che, quando i vari giochi on line passano in secondo piano, ogni comunicazione col server del gioco cessi... o no?

    la cosa strana è che sul web (dove si trova anche come costruire una bomba atomica casalinga) non si trovi nulla a riguardo, per approfondire la cosa

  4. #4
    Primo punto: sai ricavare i "pacchetti TCP"?
    Secondo punto: sai analizzarli?

    Quello che ti voglio dire è che se sai fare tutto ciò in Visual Basic allora ti conviene provare, ma sicuramente per fare ciò sono indicati altri linguaggi di programmazione..Per quanto riguarda la comunicazione con il server quando non giochi non è detto che cessi..
    Magari bisognerebbe vedere di cosa si tratta: supponiamo che quando finisce un gioco in cui non partecipi tu venga avvertito da un msgbox o da una finestra con titolo noto: potresti intercettare questa finestra e capire che è finito, è questo sarebbe veramente banale con visual basic; basterebbero un timer e qualche funzione API..

  5. #5
    Originariamente inviato da MdE2005
    Primo punto: sai ricavare i "pacchetti TCP"?
    Secondo punto: sai analizzarli?
    ehhh, se lo sapessi fare, non chiederei

    ho scaricato tonnellate di codici di sniffers tcp VB, ma nessuno che facesse minimamente il lavoro che mi serve, cioè verificare il contenuto dei pacchetti che arrivano dal server di gioco... forse anche perchè non si capisce bene porta ed indirizzo in cui cercarli

    in realtà il gioco usa proptocollo UDP (controllato con il buon vecchio netstat DOS) e sempre netstat mi dà, come indirizzo del gioco, 0.0.0.0:XXXX (dove xxxx è la porta), il vero indirizzo dei server a cui di volta in volta ci si può collegare non viene mai visualizzato da netstat, probabilmente è il gioco stesso che lo rende "non trasparente" al programma.... boh

    Per quanto riguarda la comunicazione con il server quando non giochi non è detto che cessi..
    il gioco (ma vedo che è cosa comune ai principali multipayer on line) aggiorna continuamente un file .log in cui riporta attimo per attimo i messaggi di console

    peccato che tale aggiornamento cessi quando si passa al desktop o ad altro eseguibile (se nò il lavoro era bello e fatto) per riprendere appena viene riportato al top... questo mi fa pensare cle la comunicazione cessi

    purtroppo non viene lanciata nessuna finestra di fine gara... in realtà, quando è al top, viene lanciato un messaggio vocale di fine gara, che ovviamente non viene lanciato a gioco in secondo piano, ché sennò il problema non si sarebbe proposto

    per inciso, in primo o in secondo piano che sia il gioco, netstat continua a vederlo a 'sto stramaledetto indirizzo 0.0.0.0:XXXX... cercando di leggere qualcosa dalla porta xxxx con i vari sniffers di porta trovati, ho sempre visualizzato delle bellissime listview bianche... più che se fossero lavate dash... usando gli sniffers IP, se metto 0.0.0.0 mi danno errore, se metto il vero IP del server mi dicono se sono rimbambito (indirizzo sconosciuto)

    cmq riprendendo la domanda di prima: qualcuno ha idea di come approfondire la conoscenza del modo in cui i multiplayers on line comunicano con i vari PC?

  6. #6
    per analizzare i pacchetti puoi :
    1) sullo switch del centro stella abilitare (se cisco) i flussi netflow e leggerli come normale file di testo etc etc ..
    2)mettere una macchina Gateway con linux e iptables e loggare in tempo reale i pacchatti ...


    Secondo me non è tanto il modo di come loggare i pacchetti ... ma sapere cosa cercare !!!
    I have tried all ... but the preferred remains SLACKWARE !
    RHCE (Linux Red Hat Certified Engineer)
    CNAC (Cisco Networking Academy Certified)
    "Non auro, sed ferro, recuperanda est patria"

  7. #7
    Originariamente inviato da Boromir
    per analizzare i pacchetti puoi :
    1) sullo switch del centro stella abilitare (se cisco) i flussi netflow e leggerli come normale file di testo etc etc ..
    2)mettere una macchina Gateway con linux e iptables e loggare in tempo reale i pacchatti ...
    amico mio, se lo avessi scritto in arabo o in sanscrito avrei capito esattamente alla stesso modo :master:

    Secondo me non è tanto il modo di come loggare i pacchetti ... ma sapere cosa cercare !!!
    appunto: mi verrebbe bene un codice che, noto un certo eseguibile , partendo da quell' eseguibile (e non da altro) controllasse la porta aperta da quell' eseguibile e leggesse il flusso di dati in arrivo su quella porta... anche qualora non fosse il codice più veloce del mondo la domanda è: con VB è fattibile o no?? ... e se si... il codice pls ???

    in alternativa, non sapendo programmare in C++, se esistesse una routine freeware C++ che fa il suddetto lavoro (passandogli chissà come il nome dell' eseguibile) e creando un file .log, leggendo il log da VB forse otterrei lo stesso risultato...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    NO .. con VB non e' fattibile.

    Ovviamente lo puoi fare in C/C++ ... ma non c'e' una "routine freeware" ...

    Esiste una libreria free (la WinPCap) con relativo driver, che e' ben documentata e che ti permette di ottenere queste informazioni.

  9. #9
    Originariamente inviato da oregon
    NO .. con VB non e' fattibile.

    Ovviamente lo puoi fare in C/C++ ... ma non c'e' una "routine freeware" ...

    Esiste una libreria free (la WinPCap) con relativo driver, che e' ben documentata e che ti permette di ottenere queste informazioni.
    si, di winpcap ho già letto durante le mie ricerche... purtroppo non è assolutamente documentato il suo utilizzo con VB

    sorprendente (in negativo) che, pur essendo stata sviluppata dal politecnico di torino, tutta la documentazione sia in inglese

    mi toccherà imparare il C++... mannaggia

    certo che, così come nel VB si trovano MILIONI di esempi di codice, trovassi on line il codice di una routine che si appoggi a WinPcap simile a quella che cerco.... la avrei risolta a metà, se non al 99%

    perché pensi che non se ne trovino? non credo che la mia sia una richiesta così fuori dal normale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.