2015-10-10 3 views
0

Можно ли создать кейлоггер, используя функции, определенные в стандартном C, i.e в c89 или c99, без использования API, предоставленных компилятором?Разработка кейлоггера в стандарте C

+1

Нет, это невозможно. В лучшем случае такая программа может читать символы (не нажатие клавиш), введенные в ее консоль. – Davislor

+0

Возможно, вы мотивированы, чтобы посмотреть здесь ... http://codereview.stackexchange.com/questions/46980/windows-keylogger-in-c – LearningCODE

+0

, так что делать, если хотите создать его? используя c –

ответ

3

Окончательный ответ не нет и только если вы хотите знать, почему :

C описывается в терминах абстрактной машины. Не вдаваясь в подробности, это машина, которая не существует, но любая реализация C должна выставлять такое же наблюдаемое поведение как эта абстрактная машина. Некоторые свойства этой машины - это функция, вызывающая «стек» (*) и доступ к модели линейной памяти. Для размещенных средах, добавьте входные и выходные потоки.

Вещи абстрактной машины, в частности не включают, включают понятия наличия операционной системы на месте (ее можно реализовать на максимально возможном количестве устройств) или до тех пор, Даже имея какое-то конкретное устройство ввода, такое как клавиатура, выходит за рамки абстрактной машины C, оно знает только о входных потоках, не заботясь о том, откуда поступают данные.

Что нужно для кейлоггера некоторое место крюка кода в это может быть слоем ОС для ввода буферизации, драйвера клавиатуры или даже непосредственно в аппаратных средств (на простых машинах, как старый C64, управление IO-регистрами для клавиатуры). Как бы то ни было, абстрактная машина C никогда не может описать ее независимым от платформы способом.

Примечание: этот ответ еще далек от завершения. Просто попробуйте дать компактное объяснение, содержащее необходимые ключевые слова, чтобы детально исследовать всех, кто заинтересован.

(*) Это не должно быть стеком, это просто общая реализация.

+0

так что делать, если хотите создать один с помощью C? как я видел несколько клавиатурных шпионов в c –

Смежные вопросы