Поделиться через


Портмон версии 3.03

Марк Руссинович

Опубликовано: 12 января 2012 г.

ЗагрузкаСкачать Портмон (226 КБ)
Запустите сейчас из Sysinternals Live.

Введение

Portmon — это программа, которая отслеживает и отображает все действия последовательного и параллельного портов в системе. Он имеет расширенные возможности фильтрации и поиска, которые делают его мощным инструментом для изучения способа работы Windows, просмотра того, как приложения используют порты, или отслеживания проблем в конфигурациях систем или приложений.

Портмон 3.x

Версия 3.x порта знаменует собой введение ряда мощных функций.

  • Удаленный мониторинг: захват выходных данных отладки ядра и /или Win32 с любого компьютера, доступного через TCP/IP, даже через Интернет. Одновременно можно отслеживать несколько удаленных компьютеров. Портмон даже установит свое клиентское программное обеспечение, если вы используете его в системе Windows NT/2K и захватываете из другой системы Windows NT/2K в том же сетевом районе.
  • Последние списки фильтров:Portmon были расширены с мощными возможностями фильтрации, и он запоминает последние выборы фильтров с интерфейсом, который упрощает их повторное выделение.
  • Копирование буфера обмена: выберите несколько строк в окне вывода и скопируйте их содержимое в буфер обмена.
  • Выделение: выделите выходные данные отладки, соответствующие фильтру выделения, и даже настройте цвета выделения.
  • Ведение журнала в файл: запись выходных данных отладки в файл в качестве записываемого файла.
  • Печать: печать всех или частей захваченных выходных данных отладки на принтер.
  • Полезные данные одного файла:Портмон теперь реализован в виде одного файла.

В встроенном файле справки описаны все эти функции и более подробно.

Снимок экрана PortMon

Установка и использование

Просто выполните файл программы Portmon (portmon.exe), и Портмон немедленно начнет записывать выходные данные отладки. Чтобы запустить Portmon в Windows 95, необходимо получить обновление WinSock2 от Корпорации Майкрософт. Обратите внимание, что если вы запускаете портмон в Windows NT/2K portmon.exe должны находиться на несетвом диске, а у вас должны быть права администратора. Меню, горячие клавиши или кнопки панели инструментов можно использовать для очистки окна, сохранения отслеживаемых данных в файл, вывода поиска, изменения шрифта окна и т. д. В справке по электронной строке описываются все функции Portmon .

Портмон понимает все команды управления последовательными и параллельными портами ввода-вывода (IOCTLs) и будут отображать их вместе с интересными сведениями о связанных параметрах. Для запросов на чтение и запись Portmon отображает первые несколько десятков байтов буфера, используя "." для представления непечатаемых символов. Параметр меню Show Hex позволяет переключаться между ASCII и необработанным шестнадцатеричным выводом буферных данных.

Как это работает: WinNT

Графический интерфейс Portmon отвечает за идентификацию последовательных и параллельных портов. Для этого перечисляются последовательные порты, настроенные в разделе HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm, и параллельные порты, определенные в разделе HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. Эти ключи содержат сопоставления между именами устройств последовательного и параллельного порта и именами доступных для Win32 устройств.

При выборе порта для мониторинга Портмон отправляет запрос на драйвер устройства, который включает в себя имя NT (например, \device\serial0), которое вас интересует. Драйвер использует стандартные API фильтрации для подключения собственного объекта устройства фильтра к целевому объекту устройства. Во-первых, для открытия целевого устройства используется ZwCreateFile . Затем он преобразует дескриптор, который он получает обратно из ZwCreateFile в указатель объекта устройства. После создания собственного объекта устройства фильтра, соответствующего характеристикам целевого объекта, драйвер вызывает IoAttachDeviceByPointer для установки фильтра. С этого момента на драйвере Portmon будут отображаться все запросы, направленные на целевое устройство.

Portmon имеет встроенные знания обо всех стандартных последовательных и параллельных портах IOCTLs, которые являются основным способом настройки и чтения сведений о состоянии приложений и драйверов из портов. IoCTLs определяются в файле DDK \ddk\src\comm\inc\ntddser.h и \ddk\src\comm\inc\ntddpar.h, и некоторые из них документируются в DDK.

Как это работает: Windows 95 и 98

В Windows 95 и 98 графический интерфейс Portmon использует динамически загруженный VXD для записи последовательного и параллельного действия. Драйвер устройства Windows VCOMM (Virtual Communications) служит интерфейсом для параллельных и серийных устройств, поэтому приложения, обращаюющиеся к портам, косвенно используют свои службы. Портмон VxD использует стандартный перехват служб VxD для перехвата всех доступа к функциям VCOMM. Как и драйвер устройства NT, VxD portmon интерпретирует запросы, чтобы отобразить их в понятном формате. В Windows 95 и 98 Portmon отслеживает все порты, поэтому нет выбора портов, как в NT.

ЗагрузкаСкачать Портмон (226 КБ)

Запустите сейчас из Sysinternals Live.