Портмон версии 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.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.