Page 1 of 1

pxmon - Process Execution Monitor

Posted: Mon Aug 02, 2021 2:09 pm
by Kenshin
pxmon (Process eXecution MONitor) – средство для мониторинга исполнения программ (точнее их процессов). Основной целью является наблюдение в реальном времени за активностью программ. Также pxmon может применяться для быстрого тестирования, изучения и поиска подозрительных действий в исследуемой программе, и для высокоуровневой (а значит только поверхностной) отладки. При всём при этом, pxmon – не отладчик (т.к. шагом исполнения процесса является действие, а не инструкция процессора или оператор из языка высокого уровня), не песочница и не антивирус.
Ключевыми понятиями в pxmon являются действие и активность. Действиями называются относительно крупные события в процессе, такие как системный вызов или вызов библиотечной функции, например: чтение файла, выделение памяти, вызов printf и т.д. Под активностью, соответственно, подразумеваются определенные категории таких действий: файловая, сетевая, gui-активность и т.д.
На данный момент pxmon находится в разработке и готова лишь beta-версия. Так что пока есть следующее:
  • отслеживание большинства действий, представленных системными вызовами (некоторые из них отображаются довольно детально, некоторые, такие как сетевые, представлены в виде заглушек аля "Calling a network configuration/statistics function")
  • отслеживание выделенных блоков памяти
  • приостановка/продолжение проверяемого процесса по горячей клавише [Ctrl+Alt+F8] и завершение процесса по [Ctrl+Alt+F10]
  • нумерация действий
  • отслеживание неизвестных функций
  • библиотечные вызовы пока не отслеживаются
Также есть возможность фильтровать активность с помощью флага -f (см. справку с помощью pxmon -h), но фильтрация не доработана пока до ума. Программа очень сырая, но некоторую пользу от неё получить можно уже сейчас. Баги наверняка есть, буду рад услышать репорты о них.
Это консольное приложение, поэтому его необходимо запускать в shell'е:
1.png
1.png (5.89 KiB)
Viewed 6928 times
Примеры работы:
2.png
2.png (15.86 KiB)
Viewed 6928 times
3.png
3.png (18.02 KiB)
Viewed 6928 times
4.png
4.png (28.12 KiB)
Viewed 6928 times

Re: pxmon - Process Execution Monitor

Posted: Mon Aug 02, 2021 2:10 pm
by Kenshin
Сам бинарник (внимание! бета-версия):
pxmon_0_0_b0 (6.22 KiB)
Downloaded 149 times

Re: pxmon - Process Execution Monitor

Posted: Mon Aug 02, 2021 2:14 pm
by Leency
Можешь объяснить что под капотом, как программа отслеживает активность процесса?

Re: pxmon - Process Execution Monitor

Posted: Mon Aug 02, 2021 2:21 pm
by Kenshin
Leency wrote:Можешь объяснить что под капотом, как программа отслеживает активность процесса?
Пока что используется весьма примитивный перехват прерываний с помощью механизма отладки процессов (кстати, из-за этого отслеживается только основной поток процесса, многопоточные пока не поддерживаются), поэтому всё отследить она пока не в состоянии. Возможно в будущем будет задействован дополнительный драйвер или более умный код (эвристика или что-то в этом духе).

Re: pxmon - Process Execution Monitor

Posted: Sat Aug 07, 2021 12:28 pm
by Kenshin
pxmon 0.0 beta 1:
  • мелкие фиксы
  • теперь pxmon сообщает, завершилась ли программа самостоятельно, была ли убита другой задачей или самим монитором
  • теперь можно передавать запущенной программе параметры (например, pxmon "tinypad" "example.asm")
  • улучшенная обработка параметров, поддержка скобок (pxmon "/sys/file managers/eolite"), поддержка длинных опций (--option)
  • теперь два режима работы: режим реального времени и пошаговый режим
Режим реального времени (почти реального, т.к. отслеживание всё-таки затормаживает пациента) - это прежний режим мониторинга. Пошаговый же режим позволяет следить за работой наблюдаемого процесса последовательно, и таким образом успеть просмотреть все действия (чего довольно трудно добиться в режиме реального времени). После каждого действия нужно нажать [Ctrl+Alt+F8]. Для того, чтобы запустить в пошаговом режиме нужно воспользоваться ключом --mt, например:
pxmon --mt cpu
pxmon_0_0_beta_1 (6.57 KiB)
Downloaded 125 times

Re: pxmon - Process Execution Monitor

Posted: Tue Aug 24, 2021 11:13 pm
by turbocat
Хорошая работа! Эта прога достойна внимания. Мне пригодилась для отладки