Кейлоггер Logkeys не работает на Ubuntu box в Vagrant; появляется не видеть события клавиатуры

Я пытаюсь заставить logkeys работать на Vagrant-боксе "ubuntu/precision64" для рабочего проекта, но ничего не регистрируется. Я провел несколько часов, читая и пытаясь отследить проблему.

Код logkeys находит правильное устройство "/dev/input/event2" и открывает его:

input_fd = open(args.device.c_str(), O_RDONLY);

Затем предполагается, что код вводит цикл while, когда читает входные данные:

while (read(input_fd, &event, sizeof(struct input_event)) > 0) {

Цикл while фактически не введен (подтверждается отладочными операторами). Похоже, что никаких клавиатурных событий на самом деле не происходит. Это может быть связано с тем, что я использую эту виртуальную машину, но я не уверен, как некоторые другие вещи проверяются. Например, в нескольких сообщениях, таких как этот, кажется, что event2 на самом деле является правильным устройством в моей виртуальной машине Ubuntu:

cat /proc/bus/input/devices
...
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
...
B: EV=120013
...

Я подтвердил, что logkeys фактически выбрал прослушивание event2 через операторы отладки для консоли, добавленной в код.

Когда я cat /dev/input/event2и введите, нажатия клавиш отображаются на консоли. Я думал, что это был точный тест для определения правильного события, которое нужно слушать; Однако, когда я cat /dev/input/event4, которая должна быть мышью, происходит то же самое - нажатия клавиш на консоли.

У меня нет машины с Ubuntu для тестирования. Я мог бы попробовать это на компьютере VirtualBox с Ubuntu ISO, но не следите за тем, как это будет отличаться от того, что я делаю сейчас. Я пробовал другие версии Vagrant Ubuntu (ubuntu/trusty и еще один) без изменений. Мне нравится скорость и удобство работы моего разработчика на Vagrant box. Ну, обычно это довольно быстро и удобно, но не сейчас.

Кто-нибудь имеет представление о том, что может происходить, и что я пропускаю?

Большое спасибо, JZ.

1 ответ

Решение

Отвечая на мой вопрос для потомков, на случай, если кто-нибудь сделает что-то подобное, что маловероятно!

В моих тестах я подключался только к коробке с vagrant sshи печатал в моем исходном окне терминала. Я изменил свой файл Vagrant, чтобы включить графический интерфейс, с config.vm.provider "virtualbox" { |v| v.gui = true }, и vagrant запустил окно CLI с гостем. Печатание в этом терминале работало, и отладка выводилась на исходный терминал.

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

Другие вопросы по тегам