Condividi tramite


Portmon v3.03

Di Mark Russinovich

Data di pubblicazione: 12 gennaio, 2012

ScaricaScaricare Portmon (226 KB)
Esegui ora da Sysinternals Live.

Introduzione

Portmon è un'utilità che monitorizza e visualizza le attività di tutte le porte seriali e parallele di un sistema. Grazie ad avanzate funzionalità di filtraggio e ricerca, è uno strumento estremamente utile per esplorare il funzionamento di Windows, vedere come le applicazioni usano le porte o identificare eventuali problemi nelle configurazioni del sistema o delle applicazioni.

Portmon 3.x

Nella versione 3.x di Portmon viene introdotta una serie di potenti funzionalità.

  • Monitoraggio remoto: acquisisce l'output di debug in modalità kernel e/o Win32 da qualsiasi computer accessibile tramite TCP/IP, anche tramite Internet. È possibile monitorare più computer remoti contemporaneamente. Portmon installerà anche il relativo software client se viene eseguito in un sistema Windows NT/2K e acquisito da un altro sistema Windows NT/2K presente nella stessa rete.
  • Elenchi dei filtri più recenti: Portmon è stato esteso con potenti funzionalità di filtraggio ed è in grado di ricordare gli ultimi filtri selezionati, oltre a offrire un'interfaccia che ne semplifica la riselezione.
  • Copia negli Appunti: è possibile selezionare più righe della finestra di output e copiarne il contenuto negli Appunti.
  • Evidenziazione: è possibile evidenziare l'output di debug corrispondente al filtro di evidenziazione e persino personalizzare i colori di evidenziazione.
  • Opzione Log-to-file: consente di scrivere in un file l'output di debug mentre viene acquisito.
  • Stampa: consente di stampare tutto o parte dell'output di debug acquisito.
  • Payload di un singolo file:: Portmon viene ora implementato come un unico file.

Il file della Guida online descrive in dettaglio tutte queste funzionalità e molte altre.

Screenshot di PortMon

Installazione e utilizzo

È sufficiente eseguire il file di programma Portmon (portmon.exe) e Portmon avvierà immediatamente l'acquisizione dell'output di debug. Per eseguire Portmon in Windows 95, è necessario ottenere l'aggiornamento winSock2 da Microsoft. Se si esegue Portmon in Windows NT/2K, il file portmon.exe deve trovarsi in un'unità non di rete ed è necessario disporre dei privilegi amministrativi. I menu, i tasti di scelta rapida o i pulsanti della barra degli strumenti possono essere usati per cancellare la finestra, salvare i dati monitorati in un file, cercare output, modificare il tipo di carattere della finestra e altro ancora. Nella Guida online sono descritte tutte le funzionalità di Portmon.

Portmon comprende tutti i comandi di controllo I/O (IOCTL) delle porte seriali e paralleli e li visualizza insieme a utili informazioni sui parametri associati. Per le richieste di lettura e scrittura, Portmon visualizza la prima dozzina di byte del buffer, usando '.' per rappresentare i caratteri non stampabili. L'opzione di menu Show Hex (Mostra esadecimale) consente di convertire l'output dei dati di buffer dal formato ASCII al formato esadecimale non elaborato (e viceversa).

Come funziona: WinNT

L'interfaccia utente grafica di Portmon è responsabile dell'identificazione delle porte seriali e parallele. Per eseguire questa operazione, enumera le porte seriali configurate in HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm e le porte parallele definite in HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. Queste chiavi contengono le mappature tra i nomi dei dispositivi delle porte seriali e parallele e i nomi accessibili da Win32.

Quando si seleziona una porta da monitorare, Portmon invia una richiesta al relativo driver di dispositivo che include il nome NT (ad esempio: \device\serial0) a cui si è interessati. Il driver usa quindi un'API di filtraggio standard per collegare il proprio oggetto dispositivo di filtro all'oggetto dispositivo di destinazione. In primo luogo, usa ZwCreateFile per aprire il dispositivo di destinazione, quindi converte l'handle ricevuto da ZwCreateFile in un puntatore all'oggetto dispositivo. Dopo aver creato l'oggetto dispositivo di filtro corrispondente alle caratteristiche della destinazione, il driver chiama IoAttachDeviceByPointer per stabilire il filtro. Sul driver Portmon verranno quindi visualizzate tutte le richieste inviate al dispositivo di destinazione.

Portmon vanta una conoscenza predefinita di tutti i comandi IOCTL delle porte seriali e paralleli standard, che rappresentano il modo principale con cui le applicazioni e i driver configurano e leggono le informazioni sullo stato dalle porte. I comandi IOCTL sono definiti nel file DDK \ddk\src\comm\inc\ntddser.h e \ddk\src\comm\inc\ntddpar.h e alcuni sono documentati nel DDK.

Come funziona: Windows 95 e 98

In Windows 95 e 98, l'interfaccia utente grafica di Portmon si basa su un driver di dispositivo virtuale (VxD) caricato dinamicamente per acquisire attività seriali e parallele. Il driver di dispositivo VCOMM (Virtual Communications) di Windows svolge la funzione di interfaccia per i dispositivi seriali e paralleli, in modo che le applicazioni che accedono alle porte possano usare indirettamente i servizi. ll driver VxD di Portmon usa l'hook del servizio VxD standard per intercettare tutti gli accessi alle funzioni di VCOMM. Come il driver di dispositivo di NT, il driver VxD di Portmon interpreta le richieste per visualizzarle in un formato descrittivo. In Windows 95 e 98, Portmon monitorizza tutte le porte in modo che non venga eseguita una selezione delle porte come in NT.

ScaricaScaricare Portmon (226 KB)

Esegui ora da Sysinternals Live.