Как я пошел бы о записи сниффера TTY Linux?

В образовательных целях (не, что любой должен заботиться о мотивациях позади такого осуществления) я хотел бы записать программу, которая может чтение-запись для чередования ttys/ptys. Я прочитал газеты (с 1990-х), но не могу использовать реализацию, которую они используют на современном Linux/glibc

Я надеялся, что кто-то исследовал в это в прошлом (не слишком далеко в прошлом), или по крайней мере, прочитайте документацию, имеющую отношение к нему, который они могли обеспечить, это просветит меня далее.

Я также задаюсь вопросом, если (рассмотрение того, что Linux не имеет потоков), если это осуществление должно быть сделано через загружаемый модуль ядра [lkm].

У меня есть много вопросов и вероятно неверное толкование некоторых фундаментальных идеологий, которые позволяют таким целям быть помещенными на месте, кто-то мог помочь?:)

5
задан wallyk 29 September 2012 в 00:48
поделиться

2 ответа

Код linspy.c в этой статье Phrack является модулем ядра Linux. Он не будет компилироваться с современным ядром, потому что внутренние интерфейсы ядра часто меняются.

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

2
ответ дан 15 December 2019 в 00:55
поделиться

Я дважды заходил по ssh в удаленный Linux-сервер, создавая / dev / pts / 0 и / dev / pts / 1. С 0 я могу открыть 1 для чтения, тем самым украшая все, что пользователь вводит, до 1. Если я хочу, чтобы они видели, как они набирают, я должен записать его обратно в / dev / pts / 1. Конечно, их ввод никогда не попадает в их оболочку, поэтому я должен создать процесс оболочки на моем конце (на 0) и передать его ввод по конвейеру, а затем передать оболочку обратно на 1.

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

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

0
ответ дан 15 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: