keylogger фиксирует все действия пользователя на клавиатуре, т.е. это некий «репитер» (повторитель), готовый в любой момент «слить»(куда следует) все то, что он за Вами нафиксировал. Перехват нажатий клавиш может использоваться обычными программами и часто применяется для вызова функций программы из другого приложения с помощью «горячих клавиш» (hotkeys) или, например, для переключения неправильной раскладки клавиатуры (как Keyboard Ninja).
Также стоит отметить, что современные клавиатурные шпионы не просто записывают коды вводимых клавиш – они «привязывают» клавиатурный ввод к текущему окну и элементу ввода. Многие же keylogger’ы отслеживают список запущенных приложений, умеют делать «снимки» экрана по заданному расписанию или событию, шпионить за содержимым буфера обмена и решать ряд задач, нацеленных на скрытное слежение за пользователем. Записываемая информация сохраняется на диске, и большинство современных клавиатурных шпионов могут формировать различные отчеты(записывая их в специализированный журнал регистрации, т.е Log-файл), могут передавать их по электронной почте или http/ftp-протоколу. Кроме того, ряд современных keylogger’ов пользуются RootKit-технологиями для маскировки следов своего присутствия в системе.