Научная статья на тему 'Реализация механизма перехвата клавиш при идентификации пользователя по клавиатурному почерку'

Реализация механизма перехвата клавиш при идентификации пользователя по клавиатурному почерку Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
96
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Душкин А. В., Кольцов А. С., Смидюк А. О., Губко Д. О.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Реализация механизма перехвата клавиш при идентификации пользователя по клавиатурному почерку»

облегающие голени и сильно расширяющиеся на бёдрах [2]. Русское название брюкам дано по имени французского генерала Гастона Галифе (1830-1909), который ввёл их для кавалеристов. В 1980-х годах галифе вошли в женскую моду, а в 2000-х - в мужскую.

Слова, связанные с боевыми действиями, имеют мощнейший эмоциональный окрас, что обуславливает их переход в повседневный лексикон в качестве эпитетов. Стараясь придать вещам, событиям и явлениям большее значение, мы ассоциируем их с военной терминологией. К примеру, войной в повседневной речи называют жестокое противостояние, совсем не связанное с боевыми действиями. Например, противостояние организаций, социальных групп, отдельных личностей. Или же авангардом называют людей, занимающих лидирующие позиции, хотя изначально французское avant-garde - отряд войска, флота, находящийся впереди главных сил.

Каждое слово несет в себе целую историю, а военные термины и их появление обуславливалось, как правило, ключевыми моментами в истории человечества, поэтому полезно знать историю происхождения слова для правильного его применения.

Список использованной литературы

1. Малый академический словарь русского языка (онлайн версия) // http://www.classes.ru/all-russian/dictionary-russian-academ-term-1425.htm.

2. Толковый словарь русского языка: В 4 т. / Под ред. Д.Н. Ушакова. -М.: СЭ. ОГИЗ, 1935-1940.

РЕАЛИЗАЦИЯ МЕХАНИЗМА ПЕРЕХВАТА КЛАВИШ ПРИ ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО КЛАВИАТУРНОМУ

ПОЧЕРКУ

А.В. Душкин, начальник кафедры, д.т.н., доцент, А.С. Кольцов, профессор, к.т.н., доцент, А.О. Смидюк, курсант, Д.О. Губко курсант, Воронежский институт ФСИН России, г. Воронеж

Операционная система Microsoft Windows является событийно управляемой. Хуком называется механизм, с помощью которого некоторая функция может узнавать о событиях (сообщения ОС, действия мышью, нажатия клавиш) до того, как они достигают приложения, которому предназначались. Эта функция может выполнять какие-либо действия по происшествии события, а в некоторых случаях изменять или удалять его. Такие функции, получающие сообщения о событии, называются фильтрующими функциями и классифицируются в соответствии с типом события, которое они

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

Чтобы фильтрующая функция получала уведомление о системном событии, она должна быть установлена на событие, то есть, связана с ним. Установка функции, обрабатывающей какое-либо событие операционной системы, называется установкой хука на это событие.

Если на одно событие установлена более чем одна фильтрующая функция, Windows обслуживает последовательность этих функций. Все они по очереди получают уведомление о событии, обрабатывают его и передают управление последующей в цепочке функции.

Рис. 1. Структура обработки события операционной системы несколькими фильтрующими функциями

Первой в цепочке обработки хука стоит наиболее поздно установленная функция, последней - первая установленная фильтрующая функция.

Установка клавиатурного хука позволяет избежать модификации используемого оператором программного обеспечения и обрабатывать нажатия клавиш, произведённые в любом приложении.

Установка хука имеет свои особенности. Чтобы учесть их, рассмотрим специфику работы многозадачной операционной системы Microsoft Windows.

Многозадачность операционной системы Windows обеспечивается на аппаратном уровне (это входит в функции центрального процессора). При переключении между задачами приложение и все используемые им ресурсы (динамические библиотеки, память программ и данных) сохраняются в памяти, освобождая место для данных активизируемого приложения. Это обеспечивает разделение адресного пространства между процессами операционной системы. Каждый активный процесс занимает всё адресное пространство операционной системы, и программист не должен заботиться о том, что ресурсы приложения перекроются с областью памяти, занимаемой другим приложением. Никакое приложение не может получить доступ к области памяти, занимаемой другим

процессом.

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

Рекомендации разработчиков операционной системы Windows предлагают альтернативный способ решения этой задачи. Фильтрующую функцию необходимо разместить в теле динамической библиотеки (dll, dynamic link library). Приложение при запуске загружает в своё адресное пространство все необходимые динамические библиотеки, содержащие функции, используемые им.

Согласно идеологии многозадачной операционной системы Microsoft Windows, несколько приложений, использующих функции, находящиеся в теле динамической библиотеки, не загружают собственную копию библиотеки при запуске. Напротив, они используют уже загруженную другим процессом библиотеку благодаря тому, что операционная система проецирует её в адресное пространство процессов при переключении задач. В связи с этим все активные процессы будут иметь в своём адресном пространстве проекцию фильтрующей функции, которая будет обрабатывать события клавиатуры в каждом из них.

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

Задачу сбора данных от всех запущенных приложений можно решить двумя способами. Разработчики Microsoft Windows предлагают только эти два способа связи приложений, которые никогда не пересекаются в адресном пространстве.

Первый состоит в создании и использовании отображаемой области памяти. Один из процессов занимает некоторую область памяти, другие при запросе к операционной системе получают её копию в своё адресное пространство и используют для обмена данными с другими приложениями.

Второй способ состоит в создании собственного класса сообщений операционной системы. Процессы могут генерировать системное сообщение при необходимости, и если другие процессы «подписываются» на него путём установки стандартного простого обработчика, они получают уведомления о его происшествии. Такие сообщения широко используются операционной системой для управления приложениями, сервисами, отображением окон, файловой системой и составляют ядро Winbdows.

Недостаток первого способа проявляется в том, что моменты нажатия пользователем клавиш носят случайный характер. Пользователь может отойти от компьютера на длительное время, и в течение его управляющее приложение должно постоянно проверять разделяемую область памяти на появление новой информации от фильтрующих функций всех запущенных приложений. Если учесть, что объём информации, поступающий от функций, составляет 5-6 байт, то создание и поддержание отображаемой (общей) области памяти становится особенно неэффективно с точки зрения операционной системы. К тому же программисту необходимо самостоятельно реализовывать механизм временной целостности потоков от всех приложений.

В данном случае выгоднее использовать способ сообщений. Фильтрующие функции всех приложений при нажатии пользователем клавиши генерируют сообщение, которое поступает управляющему приложению. Операционная система обеспечивает временную целостность таких сообщений (т.е. сообщение о событии, произошедшем позже второго, не сможет прийти раньше его). Объём информации, передаваемой сообщениями, составляет восемь байт (два двойных слова), что достаточно для передачи информации о нажатой клавише.

ПРОБЛЕМЫ И ПУТИ РЕШЕНИЯ ПАТРИОТИЧЕСКОГО ВОСПИТАНИЯ ПОДРАСТАЮЩЕГО ПОКОЛЕНИЯ

А.Н. Зайцев, доцент, к.п.н., доцент, О.В. Крюков, доцент, к.п.н., Воронежский институт ГПС МЧС России, г. Воронеж

Время - справедливый судья, искусный лекарь. Чем дольше уходит от нас то или иное событие, тем взвешеннее и объективнее должны быть его оценки.

Вот уже более четверти века прошло после вывода Ограниченного контингента советских войск с территории Афганистана - южной, некогда соседней нам страны. По человеческим меркам отделяют нас не годы - эпоха. Другая была страна, совсем иная ситуация в мире. Но люди не стали другими. Многие по-прежнему говорят: «Болит в моей душе Афганистан». Потому что все также «иголками» дает о себе знать незаживающая душевная рана, память о потерянных родных и друзьях. И, наконец, все также сознание от беспокойных и горьких вопросов, суть которых в одном: почему так случилось?

Что же представляла собой та война в Афганистане, достойны ли ее участники народного уважения, стоит ли заботиться об их судьбах? Для этого нам придется дать хотя бы короткую характеристику 70-х годов. В 1977 г. блок НАТО принял решение о резком увеличении военного бюджета - ежегодно до конца XX века, а в 1979 году - о размещении в Западной Европе новых американских ядерных ракет средней дальности.

Пентагон принял «Директиву в области обороны на 1978-1988 гг.»,

i Надоели баннеры? Вы всегда можете отключить рекламу.