Разработка USB-кейлоггера оказалась непростым проектом. Мы должны были соблюсти следующие требования:
1. Собирать данные, не оказывая влияния на работу клавиатуры. Мы должны были сделать устройство абсолютно невидимым, чтобы оно не влияло на работу компьютера. Запись данных не должна была вызывать задержек, заметных пользователю ПК. Для этого мы применили специальное аппаратное решение.
2. Соблюсти строгие требования к габаритам устройства. Размер кейлоггера составляет всего 57x20x13 мм. Он крошечный. От нас же требовалось вместить в него необходимое количество памяти. В первой версии поместилось всего 2 Мбайта. Но в последующих версиях мы смогли увеличить размер внутренней памяти до 16 Мбайт.
3. Обеспечить корректное функционирование устройства при подключении клавиатуры через USB-хаб. Кейлоггер должен был подключаться к клавиатуре через USB-хаб. Мы также должны были учесть, что в некоторых случаях хаб меняет режим работы USB.
4. Обеспечить возможность расширять функционал устройства в будущем. Заказчик хотел расширять функционал кейлоггера после релиза первой версии. Таким образом, мы должны были обеспечить масштабируемость устройства. Более поздние версии получили следующие особенности:
- SD-карта. На внутренней памяти устройства может храниться до 16 Мбайт. Но SD-карта позволила сохранять на кейлоггере несколько гигабайт данных.
- Часы реального времени со встроенной батареей. Благодаря им в текстовый реестр добавляются временные метки. При отключении ПК встроенная батарея позволяет сохранять точные данные о нажатии клавиш.
- Шифрование текстовых файлов для ограничения доступа к информации.