Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ProcDump-for-Linux — Linux-версия утилиты ProcDump Sysinternals | Kitploit
Инструменты/GitHubGitHub/microsoft/procdump-for-linux
Динамический анализ (песочница)Криминалистика памятиОтладчикиАнализ вредоносных программРеагирование на Инциденты
GitHubmicrosoft/procdump-for-linux

ProcDump-for-Linux

Linux-версия утилиты ProcDump Sysinternals

Репозиторий
3.1k3261 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ProcDump Build Status

ProcDump — это переосмысление для Linux и Mac классического инструмента ProcDump из набора утилит Sysinternals для Windows. ProcDump предоставляет удобный способ для разработчиков Linux и Mac создавать дампы ядра своих приложений на основе триггеров производительности. ProcDump для Linux и Mac является частью Sysinternals.

Использование ProcDump

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

Требования

  • Минимальная ОС Linux:
    • Red Hat Enterprise Linux / CentOS 7
    • Fedora 29
    • Ubuntu 16.04 LTS
    • gdb >= 7.6.1
  • Минимальная ОС Mac: Sierra

Установка ProcDump

Инструкции по установке см. здесь.

Сборка

Инструкции по сборке см. здесь.

Использование

КРИТИЧЕСКОЕ ИЗМЕНЕНИЕ С выпуском ProcDump 1.3 ключи теперь согласованы с версией ProcDump для Windows. Обратите внимание, что версия для Mac в настоящее время имеет ограниченный набор триггеров.

root@kitploit:~
Capture Usage:
   procdump [-n Count]
            [-s Seconds]
            [-c|-cl CPU_Usage]
            [-m|-ml Commit_Usage1[,Commit_Usage2...]]
            [-gcm [<GCGeneration>: | LOH: | POH:]Memory_Usage1[,Memory_Usage2...]]
            [-gcgen Generation]
            [-restrack [nodump]]
            [-sr Sample_Rate]
            [-tc Thread_Threshold]
            [-fc FileDescriptor_Threshold]
            [-sig Signal_Number1[,Signal_Number2...]]
            [-e]
            [-f Include_Filter,...]
            [-fx Exclude_Filter]
            [-mc Custom_Dump_Mask]
            [-pf Polling_Frequency]
            [-o]
            [-log syslog|stdout]
            {
             {{[-w] Process_Name | [-pgid] PID} [Dump_File | Dump_Folder]}
            }

Options:
   -n      Количество дампов для записи перед выходом.
   -s      Последовательные секунды перед записью дампа (по умолчанию 10).
   -c      Порог использования CPU, выше которого создавать дамп процесса.
   -cl     Порог использования CPU, ниже которого создавать дамп процесса.
   -m      Порог(и) использования памяти (МБ), выше которого создавать дампы.
   -ml     Порог(и) использования памяти (МБ), ниже которого создавать дампы.
   -gcm    [.NET] Порог(и) использования памяти GC (МБ), выше которого создавать дампы для указанного поколения или кучи (по умолчанию общее использование .NET памяти).
   -gcgen  [.NET] Создавать дамп при начале и завершении сборки мусора указанного поколения.
   -restrack Включить отслеживание утечек памяти (семейство API malloc). Если используется без других триггеров, используйте 't' для ручного захвата отчета restrack. При использовании с другими триггерами опция 'nodump' может быть использована для предотвращения генерации дампа и создания только отчетов restrack.
   -sr     Частота выборки при использовании -restrack.
   -tc     Порог количества потоков, выше которого создавать дамп процесса.
   -fc     Порог количества файловых дескрипторов, выше которого создавать дамп процесса.
   -sig    Разделенный запятыми список номеров сигналов, при которых любой сигнал приводит к дампу процесса.
   -e      [.NET] Создавать дамп, когда процесс сталкивается с исключением.
   -f      Фильтр (включение) по содержимому .NET исключений (разделено запятыми). Поддерживаются подстановочные знаки (*).
   -fx     Фильтр (исключение) по содержимому стеков вызовов -restrack. Поддерживаются подстановочные знаки (*).
   -mc     Пользовательская маска дампа ядра (в hex), указывающая, какая память должна быть включена в дамп ядра. См. 'man core' (/proc/[pid]/coredump_filter) для доступных опций.
   -pf     Частота опроса.
   -o      Перезаписать существующий файл дампа.
   -log    Записывает расширенную трассировку ProcDump в указанный выходной поток (syslog или stdout).
   -w      Ожидать запуска указанного процесса, если он не запущен.
   -pgid   Указанный ID процесса относится к ID группы процессов.

Отслеживание ресурсов

Ключ -restrack активирует отслеживание ресурсов, позволяя мониторить и сообщать о любых выделениях ресурсов, которые не были освобождены на момент создания дампа ядра. Результаты сохраняются в файл с расширением '.restrack'. В настоящее время отслеживаются следующие функции выделения/освобождения ресурсов:

Выделение:

  • malloc
  • calloc
  • realloc
  • reallocarray
  • mmap

Освобождение:

  • free
  • munmap

Версия для Mac в настоящее время не реализует отслеживание ресурсов.

Примеры

Следующие примеры нацелены на процесс с pid == 1234

Следующая команда создаст дамп ядра немедленно.

root@kitploit:~
sudo procdump 1234

Следующая команда создаст 3 дампа ядра с интервалом в 10 секунд.

root@kitploit:~
sudo procdump -n 3 1234

Следующая команда создаст 3 дампа ядра с интервалом в 5 секунд.

root@kitploit:~
sudo procdump -n 3 -s 5 1234

Следующая команда будет создавать дамп ядра каждый раз, когда использование CPU процесса >= 65%, до 3 раз, с интервалом не менее 10 секунд между дампами.

root@kitploit:~
sudo procdump -c 65 -n 3 1234

Следующая команда будет создавать дамп ядра каждый раз, когда использование CPU процесса >= 65%, до 3 раз, с интервалом не менее 5 секунд между дампами.

root@kitploit:~
sudo procdump -c 65 -n 3 -s 5 1234

Следующая команда создаст дамп ядра, когда использование CPU выходит за пределы диапазона [10, 65].

root@kitploit:~
sudo procdump -cl 10 -c 65 1234

Следующая команда создаст дамп ядра, когда использование CPU >= 65% или использование памяти >= 100 МБ.

root@kitploit:~
sudo procdump -c 65 -m 100 1234

Следующая команда создаст дамп ядра, когда использование памяти >= 100 МБ, а затем еще один дамп, когда использование памяти >= 200 МБ.

root@kitploit:~
sudo procdump -m 100,200 1234

Следующая команда создаст отчет об утечке памяти (без дампов) каждый раз, когда пользователь нажимает 't':

root@kitploit:~
sudo procdump -restrack 1234

Следующая команда создаст 3 отчета об утечке памяти (без дампов) с интервалом в 5 секунд:

root@kitploit:~
sudo procdump -n 3 -s 5 -restrack nodump 1234

Следующая команда создаст дамп ядра и отчет об утечке памяти, когда использование памяти >= 100 МБ.

root@kitploit:~
sudo procdump -m 100 -restrack 1234

Следующая команда создаст отчет об утечке памяти (без дампов), когда использование памяти >= 100 МБ.

root@kitploit:~
sudo procdump -m 100 -restrack nodump 1234

Следующая команда создаст дамп ядра и отчет об утечке памяти, когда использование памяти >= 100 МБ, выполняя выборку каждого 10-го выделения памяти.

root@kitploit:~
sudo procdump -m 100 -restrack -sr 10 1234

Следующая команда создаст дамп ядра и отчет об утечке памяти, когда использование памяти >= 100 МБ, исключая все стеки вызовов, содержащие фреймы со строкой "cache":

root@kitploit:~
sudo procdump -m 100 -restrack -fx *cache* 1234

Следующая команда создаст дамп ядра, когда общее использование .NET памяти >= 100 МБ, а затем еще один дамп, когда использование памяти >= 200 МБ.

root@kitploit:~
sudo procdump -gcm 100,200 1234

Следующая команда создаст дамп ядра, когда использование .NET памяти для поколения 1 >= 1 МБ, а затем еще один дамп, когда использование памяти >= 2 МБ.

root@kitploit:~
sudo procdump -gcm 1:1,2 1234

Следующая команда создаст дамп ядра, когда использование памяти кучи больших объектов .NET >= 100 МБ, а затем еще один дамп, когда использование памяти >= 200 МБ.

root@kitploit:~
sudo procdump -gcm LOH:100,200 1234

Следующая команда создаст дамп ядра в начале и в конце сборки мусора поколения 1 .NET.

root@kitploit:~
sudo procdump -gcgen 1

Следующая команда создаст дамп ядра в каталоге /tmp немедленно.

root@kitploit:~
sudo procdump 1234 /tmp

Следующая команда создаст дамп ядра в текущем каталоге с именем dump_0.1234. Если используется -n, файлы будут называться dump_0.1234, dump_1.1234 и так далее.

root@kitploit:~
sudo procdump 1234 dump

Следующая команда создаст дамп ядра при возникновении SIGSEGV.

root@kitploit:~
sudo procdump -sig 11 1234

Следующая команда создаст дамп ядра при возникновении SIGSEGV, где дамп ядра будет содержать только анонимные закрытые отображения.

root@kitploit:~
sudo procdump -mc 1 -sig 11 1234

Следующая команда создаст дамп ядра, когда целевое .NET приложение генерирует исключение System.InvalidOperationException.

root@kitploit:~
sudo procdump -e -f System.InvalidOperationException 1234

Фильтр включения поддерживает частичное совпадение и подстановочные знаки, поэтому следующая команда также создаст дамп ядра для System.InvalidOperationException:

root@kitploit:~
sudo procdump -e -f InvalidOperation 1234

или

root@kitploit:~
sudo procdump -e -f "*Invali*Operation*" 1234

Все опции также можно использовать с -w, чтобы ожидать любой процесс с заданным именем.

Следующая команда ожидает процесс с именем my_application и создает дамп ядра немедленно, когда он найден.

root@kitploit:~
sudo procdump -w my_application

Текущие ограничения

  • В настоящее время работает только на Linux с ядром версии 3.5+ или macOS Sierra+.
  • Нет полной функциональной совместимости с версией ProcDump для Windows, в частности, отсутствует функция поддержания активности и пользовательские счетчики производительности.

Обратная связь

  • Задайте вопрос на StackOverflow (пометьте тегом ProcDumpForLinux)
  • Запросите новую функцию на GitHub
  • Голосуйте за популярные запросы функций
  • Сообщите об ошибке в GitHub Issues

Участие в разработке

Если вы заинтересованы в исправлении ошибок и внесении прямого вклада в код, пожалуйста, ознакомьтесь с документом "Как внести вклад", который охватывает следующее:

  • Как собрать и запустить из исходных кодов
  • Рабочий процесс разработки, включая отладку и выполнение тестов
  • Правила оформления кода
  • Отправка pull request'ов

Пожалуйста, также ознакомьтесь с нашим Кодексом поведения.

Лицензия

© Microsoft Corporation. Все права защищены.

Лицензировано под лицензией MIT.

ProcDump для Linux:

  • Клонирует, компилирует и статически линкуется с libbpf (https://github.com/libbpf/libbpf)
  • Копирует исходный код разрешения символов из BCC (https://github.com/iovisor/bcc)
  • Использует eBPF
Скачать инструмент