URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 133483
[ Назад ]

Исходное сообщение
"Использование BPF-программ для решения проблем в устройствах ввода"

Отправлено opennews , 22-Апр-24 21:45 
Питер Хаттерер (Peter Hutterer), мэйнтейнер подсистемы ввода X.Org, работающий в Red Hat, представил новую утилиту   udev-hid-bpf, предназначенную для автоматической загрузки BPF-программ, исправляющих проблемы в устройствах ввода с интерфейсом HID (Human Input Device) или меняющих их поведение в зависимости от предпочтений пользователя. Для создания обработчиков к  HID-устройствами, таким как клавиатуры и мыши, применяется подсистема HID-BPF, появившаяся в ядре Linux 6.3 и позволяющая создавать драйверы устройств ввода в форме  BPF-программ или обрабатывать различные события в подсистеме HID...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61046


Содержание

Сообщения в этом обсуждении
"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 21:45 
Почему бы открыто не написать что это сделано чтобы писать надёжные кейлогеры, которые работают даже в вейленде?

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 22:02 
А давайте б..., задействуем еще DSP звуковой карты для потоковой обработки с устройства ввода, чтоб снять нагрузку с процессора и только потом передадим данные в БПФ а у ж оттуда в драйвер, чтоб точно никто не догадался где подглючивает и куда по дорогк сливает. А то добавлять параметр в драйвер - это же так скуууучно...

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 23:16 
Давайте!
https://www.opennet.ru/man.shtml?topic=as10k1
https://manpages.ubuntu.com/manpages/trusty/en/man8/ld10k1.8...
https://github.com/kxproject/

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 23:20 
PS Основное применение EMU10K1 и 2 - это HRIR/HRTF, ибо миддлвари для EAX опенсорсной нет, да и поддержку в софте дропнули. Как и поддержку аппаратного миди, хотя у него поддержка на порядки лучше, прямо в пайпвайре есть, но ... вместо него хламософт использует fluidsynth, причём обязательно статически прилинкованный.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 11:32 
> А давайте б..., задействуем еще DSP звуковой карты для потоковой обработки
> с устройства ввода, чтоб снять нагрузку с процессора и только потом передадим данные в БПФ

Так то если утрировать - можете выбросить GPU и считать все на CPU, а то что 5 FPS'ов получается - так может хрен с ней, с нагрузкой на проц то? :)


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 14:13 
Зато юниксвейно — в компьютере считать должна только одна микросхема!

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 22:22 
>  Почему бы открыто не написать что это сделано чтобы писать надёжные кейлогеры, которые работают даже в вейленде?

Но ведь для этого уже давно и с успехом используется механизм LKM?


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:10 
Модуль ещё собрать нужно под каждое уникальное ядро. А здесь гарантированная (обратная) совместимость.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:41 
Вот в этом и есть главная ОПАСНОСТЬ байткода для ядра. Начнут же вновь обращённые линуксоиды из подоконников тянуть ото всюду эти байткоды без регистрации и СМС. Так-то модули из исходников собирать это для них хоть было Racket Science.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:07 
Ну, если человек пришел из подоконников не вчера, а хотя бы позавчера, то он знает про dkms.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:25 
Ну, если человек знает, что такое dkms, а не просто где-то слышал красивый buzzword, то он понимает, что dkms, сам по себе, никак не решает проблему несовместимости API разных версий ядра, это просто инфраструктура.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:30 
Зато прекрасно решает проблему несовместимости ABI, позволяя собирать модули одной командой, безо всяких "руцкет сцаенц".

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:35 
Если вы готовы сопровождать свой кейлоггер для каждой новой версии ядра, то пожалуйста. Но в топике злоумышленнику предлагают более экономичный и "ненапряжный" вариант: раз написал и забыл.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 14:11 
И не только злоумышленнику. Но в данной ситуации выгоднее думать только о злоумышленниках.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 24-Апр-24 08:15 
Потому что это не работа пользователя исправлять косяки в устройствах, продающихся на рынке. А корпоративных инженеров на зарплате.



"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:32 
Чтобы не быть голословным: https://aur.archlinux.org/packages/nvidia-390xx-dkms
Посмотрите, сколько kernel-$(uname -r).patch потребовалось написать, чтобы недавно брошенный зонд от невидии продолжал работать с разными версиями ядер.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 03:08 
Остаётся только надеяться, что им не удастся приспособить под свои цели BPF, иначе жизнь пользователей станет слишком простой. А с этим ветераны юникс-воя смириться не смогут.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 04:37 
> жизнь пользователей

А что изменится? Пользователь сидит на всём готовом. Сопроводителю поправить/пересобрать открытые сорцы не проблема. А вот копровендоры как не хотели нормально поддерживать свои железки и раскрывать исходники, хотя бы, по окончании поддержки, так и не хотят.
Вот утопающие и спасают себя костылями и припарочками, попутно ломая всё вокруг, вместо раздачи воспитательно-регулирующих поджопников оборзевшим хозяйчикам.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 14:09 
А если сопроводителю будет легче, то пользователю будет ещё больше готового, а это очень-очень плохо, потому что пользователь должен страдать (и сопроводитель тоже, но главное — пользователь).
Я правильно вас понял?

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 24-Апр-24 08:10 
> сопроводителю будет легче,

Если Невидия будет самостоятельно, в кодовой базе ядра, сопровождать свои модули для всех железок, которые ещё не вышли из эксплуатации. Или, хотя бы, откроет исходный код libGLX_nvidia.so.390.157, чтобы можно было её пересобрать со свежей glibc, чтобы избавится от ряда проблем. Или... Вот тогда и пользователю, и сопроводителю, и такой-то матери будет легко, веселО и замечательно. Но шерифа проблемы индейцев не ... Так понятнее?



"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 29-Апр-24 15:43 
рэкет ученых это пять

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 02:09 
>  Модуль ещё собрать нужно под каждое уникальное ядро. А здесь гарантированная (обратная) совместимость.

Похоже, Линусу с его stable ABI is nonsense придётся самому сесть на собственный палец.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 23:54 
> Почему бы открыто не написать что это сделано чтобы писать надёжные кейлогеры, которые работают даже в вейленде?

Потому, что это сделано, чтобы исправлять последствия халтуры за зарплату бизнеса.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено glkoo , 24-Апр-24 08:39 
Так и сейчас вроде можно простым cat /dev/input/eventX логгировать нужные эвенты.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено crypt , 22-Апр-24 21:59 
штатный интерфейс для малваре! как иновационно!

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 22:16 
> мэйнтейнер подсистемы ввода X.Org

мне любители вялого сказали, что оно умерло и там уже никого не осталось


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 22:23 
> мне любители вялого сказали, что оно умерло и там уже никого не осталось

Иксы — это шляпа. А шляпа пока жива.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:24 
Теперь она будет жива, пока живо ИБМ.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 23:58 
>> мэйнтейнер подсистемы ввода X.Org
> мне любители вялого сказали, что оно умерло и там уже никого не осталось

Фанатики. Религия. Они такие.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 22:18 
Опять бекдор под видом благих намерений пытались внедрить

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 00:40 
Ничего, любителям иксов не привыкать. У них каждая программа может включить кейлоггер. Какой-нибудь дискорд может кейлоггерить, что ты там набираешь в VSCode, какой-нибудь VSCode может заскриншотить окно биткоин-кошелька и отправить в микрософт, а биткоин-кошелек может снять видео твоих действий в браузере. В вяленом ничего из этого невозможно, так как клиенты изолированы друг от друга.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:19 
> любителям иксов не привыкать

Любители иксов и не привыкают. Привыкают любители вялого. К ограничениям и проблемам под сказки о безопафосности. А иксами люди просто пользуются, потому что на них всё работает.
А для биткойна пускают отдельный икс-сервер на отдельном пользователе. Потому что зачем тебе кейлоггер, когда любой процесс, запущенный с правами того же пользователя, может запросто прочитать кэш пароля или даже весь кошелек из памяти процесса или файловой системы и отправить в /dev/thief?
Запомните, дети, безопасность -- это модель угроз, а не волшебные программы из магазина, "безопасные, мамой клянусь".


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 07:45 
Меня спасёт святой антивирус!

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 08:51 
> Какой-нибудь дискорд может кейлоггерить, что ты там набираешь в VSCode, какой-нибудь VSCode может заскриншотить окно биткоин-кошелька и отправить в микрософт, а биткоин-кошелек может снять видео твоих действий в браузере

С такой логикой, любая программа и без вяленого может прочитать любой файл в твоем home. Что ж теперь делать-то?

С чего вдруг VSCode скриншотить, а биткоин-кошельку записывать видео? Если же ты уже поставил и запустил левый скомпрометированный кошелек из Snap Store (ты же читал новости?) то теббе по-любому конец - он и без вяленого стырит твои деньги.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 09:24 
Не знаю с чего вдруг, но скриншоты от тебя мне уже пришли.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 14:15 
> С такой логикой, любая программа и без вяленого может прочитать любой файл в твоем home. Что ж теперь делать-то?

Защищать локально хранимые БД паролей мастер-паролем, использовать пароли для SSH и PGP ключей?
Да не, бред какой-то.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 22-Апр-24 23:22 
В ссылки на релевантные новости добавьте новость про Ревуа, у него  в блоге как раз упоминалось, что его проблему можно было бы "пофиксить" этим способом.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Chatul Taalul , 23-Апр-24 00:48 
напоминает технологию драйверов фильтров для ядра NT

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:22 
Фильтров чего?

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 23-Апр-24 09:23 
Оно так называется: драйвер-фильтр. https://en.wikipedia.org/wiki/Filter_driver

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 01:28 
Nobby или кто там, хотели срабатывание действия по отпусканию клавиш? Это решение для вас!

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 07:42 
Чел срабатывать на отпускание должны сами иксы. И это решается только патчем иксов. И только в силу админ ресурсов нельзя поменять изменение языка на отпускание по дефолту. А так штатный драйвер клавиатуры прекрасно сообщает что кнопка отпущена или зажата там проблем точно нет запусти тот же xev.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 23-Апр-24 09:19 
На самом деле первый эксперт почему-то забыл, что пользователи KDE (где "всё настраивается") хотели вызывать контекстное меню правой клавишей мыши не только по нажатию, но и по отпусканию. Изменить поведение - штатная возможность Qt и решается при помощи плагинов. Решается - в смысле, решено в Windows, а для KDE мой патч джва года валяется здесь на форуме, но для сборщиков пакетов он бесполезен, поскольку из конфига то он читает, а кнопку для записи конфига я не делал.

diff --git a/src/platformtheme/khintssettings.cpp b/src/platformtheme/khintssettings.cpp
index 6703eaf..91e6c3e 100644
--- a/src/platformtheme/khintssettings.cpp
+++ b/src/platformtheme/khintssettings.cpp
@@ -89,6 +89,7 @@ KHintsSettings::KHintsSettings(const KSharedConfig::Ptr &kdeglobals)
     m_hints[QPlatformTheme::MouseDoubleClickInterval] = readConfigValue(cg, QStringLiteral("DoubleClickInterval"), 400);
     m_hints[QPlatformTheme::StartDragDistance] = readConfigValue(cg, QStringLiteral("StartDragDist"), 10);
     m_hints[QPlatformTheme::StartDragTime] = readConfigValue(cg, QStringLiteral("StartDragTime"), 500);
+    m_hints[QPlatformTheme::ContextMenuOnMouseRelease] = readConfigValue(cg, QStringLiteral("ContextMenuOnMouseRelease"), 0);

     KConfigGroup cgToolbar(mKdeGlobals, "Toolbar style");
     m_hints[QPlatformTheme::ToolButtonStyle] = toolButtonStyle(cgToolbar);


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 10:35 
Зачем вообще показывать контекстное меню именно по отпусканию мыши? Там же все продумано: зажали правую кнопку мыши (ПКМ) и, не отпуская ПКМ, наводим мышь на пункт меню. Отпускаем ПКМ -- и вуаля, фактически одним кликом мыши и меню показали, и пункт меню активировали.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 23-Апр-24 10:54 
> Зачем вообще показывать контекстное меню именно по отпусканию мыши?

Зачем такую возможность обеспечили авторы библиотеки Qt? Очевидно, они удовлетворяли запросы пользователей библиотеки. В KDE достаточно дать возможность пользователю поставить "галочку", но почему-то при наличии 100500 настроек это не реализовано.

> Там же все
> продумано: зажали правую кнопку мыши (ПКМ) и, не отпуская ПКМ, наводим
> мышь на пункт меню. Отпускаем ПКМ -- и вуаля, фактически одним
> кликом мыши и меню показали, и пункт меню активировали.

"Часто приходится иметь дело с обоими платформами и не могу назвать логику обработки клика по зажатому ПКМ - удобной. То курсор отведёшь до того как меню отрисует на старых железках, то ещё что. В итоге мисклик по пункту, который физически прочитать на успеваешь и хрен знает, что ты сейчас сделал."

https://opennet.ru/openforum/vsluhforumID3/127955.html#55


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 11:14 
> курсор отведёшь до того как меню отрисует на старых железках

Такое железо надо отдавать в музей Поля Чудес. Ну или выработать в себе терпение: нажали ПКМ, отошли пить кофе, вернулись -- читаем меню.

> Фиксят это аля отодвинем менюшку на пару пикселей, глядишь не нажмётся случайно

Нормальный фикс, везде применяется.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 11:33 
А когда отошли пить кофе, кто будет продолжать нажимать ПКМ? Можно струбцину, конечно, приспособить :)

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 23-Апр-24 15:15 
>> курсор отведёшь до того как меню отрисует на старых железках
> Такое железо надо отдавать в музей Поля Чудес. Ну или выработать в
> себе терпение: нажали ПКМ, отошли пить кофе, вернулись -- читаем меню.

Я понимаю, что сборщикам операционных систем плевать на хотелки пользователей. Не потому что первые плохие, а поскольку дописать 3 строки - это слишком сложно. Гораздо проще придумать под это обстоятельство массу красивых объяснений.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 16:46 
> дописать 3 строки - это слишком сложно

Это не одноразовые три строки. Это три строки, за которые берешь ответственность: перед всяким релизом нужно проверять, что они продолжают работать, это плюс один пункт в тест-план тестировщикам. Это нужно проверять также и после каждого обновления Qt. Это плюс один риск того, что слетят юнит-тесты (ах да, нужно написать плюс один юнит-тест). Это плюс одна фраза в GUI, которую надо перевести на сотню языков. Это плюс одна переменная, которая неясно, как себя поведет в каждом конкретном месте по всему DE, и применится ли она ко всему подряд: ожидай появления целого нового класса багрепортов на ровном месте.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 24-Апр-24 10:09 
Да, "гораздо проще придумать под это обстоятельство массу красивых объяснений."

> Это нужно проверять также и после каждого обновления Qt.

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


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 11:31 
Может, KDE-разрабов об этом никто не просил ещё?

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено n00by , 23-Апр-24 15:16 
> Может, KDE-разрабов об этом никто не просил ещё?

Лень идти по вышеприведённой ссылке и откапывать там ссылки на багтрекер.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 12:15 
>  И только в силу админ ресурсов нельзя поменять изменение языка на отпускание по дефолту.

Неа, дело не в админ ресурсе, а в том что эти чуваки хотят нарушить спецификацию.
it's an _explicit_ violation of the XKB specification (see section 4.4).
(bugzilla.freedesktop.org/show_bug.cgi?id=865)

И ради чего? Чтобы у пары гиков заработали шорткаты в емаксе?
Ну так пусть сами патчат. А в основные кода это не попадет примерно никогда.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 14:17 
> Неа, дело не в админ ресурсе, а в том что эти чуваки хотят нарушить спецификацию.

Поэтому вполне закономерно, что продукт с такой спецификацией должен быть выведен из эксплуатации.


"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 15:14 
Люди говорят про кейлоггеры, а я вот хочу драйверы для специальных устройств ввода типа моей g800v.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Пряник , 23-Апр-24 16:27 
Фу, мембранка.

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 23-Апр-24 16:15 
Но уже сказать кому нибудь, чтобы выпускали телефоны и компы с одной программой, чтоб ни заменить, ни установить ничего нельзя было
И чтобы переферия только одна подходила, от того же бренда
В модельном ряду должны быть девыйсы для телеги, ютуба и прочего, самого популярного у домохозяек
За подписку можно добавлять еще один сервис в дополнение к основному, как сейчас у сотовых операторов
Вот тогда - заживем. И безопасно будет. Зачем домохозяйке возможность ставить программы?
А если уж домохозяйка прошаренная, тогда пусть сдает экзамен на компьютерную грамотность и курс CS, и так уж быть, позволим ей печатать в терминал

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 24-Апр-24 00:51 
ввод есть, если сеть и графика из BPF будут доступны, то юзер-спейс становится не нужен - можно прямо туда прикладной софт писать, практически замена java и .net

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено 3draven , 27-Апр-24 19:40 
Интересная мысль :) Взять либы гнома нижнего уровня и туда загнать на уровне ведра работать :)

"Использование BPF-программ для решения проблем в устройствах..."
Отправлено Аноним , 27-Апр-24 00:20 
Кто нибудь напишет программу, чтобы работать с ней с повреждённым экраном или сенсором?