Как мне обнаружить в моей программе, что она запускается под отладчиком? Я знаю, что это, кажется, указывает на то, что я пытаюсь сделать то, что не должен, и это слишком грязно. Я думаю, что это интересный вопрос. В частности, есть ли способ сделать это в среде POSIX? Например, используя sigaction (2), чтобы обнаружить, что какой-то обработчик установлен? Еще хуже мысль; Есть ли какой-нибудь встроенный ассемблерный код, который я мог бы использовать в архитектуре x86?
Пока мы это обсуждаем, возможно ли в конечном итоге запустить отладчик, такой как gdb (1), и прервать работу в том месте, где вы выполняете этот возможный взлом. Спасибо за любые грязные однострочники или маловероятные ссылки на стандарты, связанные с этим.