Добрый день.
Вопрос по обнаружению отладки под Linux.
Имеем бинарник, защищенный протектором с включенной опцией обнаружения отладчика. Однако GDB прекрасно работает, защита его не обнаруживает.
В чем может быть дело? Обнаружение отладчика под никсами работает?
Обнаружили еще вот что.
KUbuntu 14.04 64 bit. Защищённое приложение запускается как служба (через систему upstart). Если выключена защита от отладки, то всё хорошо. Если включена (не важно user mode или user mode + kernal mode), то служба не запускается. По-видимому срабатывает защита от отладки.
Запрос статуса службы
initctl status <имя службы>
выдаёт
<имя службы> start/running, process 1045
Но процесса 1045 нету, и папки для него в proc тоже нету.
служба не отлаживается. Процесс с PID = 1 это и есть системный процесс отвечающая за запуск служб. Видимо upstart мониторит статус службы через трассировку. Либо какие-то процессы надо добавлять в исключения при определении отладки.
TracePID=1 только в BeforeFork, в AfterFork он 0.
Загрузчик upstart считает количество форков чтобы определить что служба запущена, и наверное для этого ему трейс и нужен.
Отладчиком подключиться после старта можно