Сборка Linux Debugger C - PullRequest
       0

Сборка Linux Debugger C

2 голосов
/ 09 октября 2011

Попытка построить отладчик в C для фаззинга.

В основном в linux я просто хочу запустить процесс с помощью fork, а затем execve (), а затем отслеживать этот процесс, чтобы увидеть, происходит ли сбой через 1 секунду.

В linux это делается путем создания процесса, а затем отслеживания генерируемых им СИГНАЛОВ для всего, что выглядит как сбой?Или речь идет о мониторинге приложения и?Я не уверен.

1 Ответ

6 голосов
/ 09 октября 2011

Используйте системный вызов ptrace(2):

Во время отслеживания ребенок будет останавливаться каждый раз, когда доставлено, даже если сигнал игнорируется. (Исключение SIGKILL, который имеет свой обычный эффект.) Родитель будет уведомлен в его следующее ожидание (2) и может проверять и изменять дочерний процесс, пока он остановлен Затем родитель заставляет ребенка продолжить, при необходимости игнорирование доставленного сигнала (или даже выдача другого сигнала вместо этого).

Интересующие вас сигналы, касающиеся сбоя процесса: SIGSEGV (ограниченный доступ к памяти), SIGBUS (доступ к невыровненным данным), SIGILL (недопустимая инструкция), SIGFPE (недопустимое плавание операции) и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...