LINUX.ORG.RU

Мужики нужно поставить хук на функцию ядра exec(). Помогите плиз, советом.


0

0

Может можно проще? Нужно получить доступ к командной строке, тоесть фактически перехватить клавиатурный ввод, но прозрачно. Чтобы писать в лог все что было набрано с клавиатуры В виндах знаю как это сделать, но все попытки прменить эти знания в линухе закончились ничем :( Help, please.

anonymous

а exec то зачем ? запускай shell на виртуальном терминале и читай-пиши на него/с него

Z0termaNN
()

А при чем тут exec собственно ? Он, по моему, к вводу с клавиатуры никакого отношения не имеет. А если все таки exec хочешь переписать ( заместить его не удастся ), то лезь в /usr/src/linux, переписывай, пересобирай - и все, ТЕЛЕМАРКЕТ.

timur
()

В том то и дело что предложенные Вами варинты рассмотривались, но они не универсальные. Красивым решением былобы как раз перехват exec() и после списывания параметров в файл передать управление оригинальной. Но неперекопиляцией ядра же решать эту задачу... :( Может у кого есть информация по написаню драйверов под линух. Есть идея, написать щенягу которая бы мониторила клавиатурный буффер, хотябы для x86. Линуха к сожалению недают вызывать биосовские приревания на 3 кольце, кстати правильно делают :) Помогите, плиз.

anonymous
()

Ну, если нежна командная строка можно посматривать периодически в /proc (например по таймеру). Конечно некрасиво, но работать должно, да и в ядро лезть не придется...

anonymous
()

Ну, если нужна командная строка можно посматривать периодически в /proc (например по таймеру). Конечно некрасиво, но работать должно, да и в ядро лезть не придется...

anonymous
()

?????

Ввод с клавиатуры весь нужен ?
Вы понимаете всю ответственность, которая ложится на Вас, если Вы планируете ловить чужие пароли?
Нужно ловить в X или в v_console? В X конечно легко и переносимо, в v_console
и того проще, но linux_only. Хотя прежде
ответте зачем Вам это надо, если для благих целей - буду рад в миг помочь. 

yaroslav_v
()
Ответ на: комментарий от anonymous

Спасибо тоже идея, но мне все таки нужно нето. Конечно я сам виноват в неточных формулировках. МНЕ НУЖНО НАПИСАТЬ ДРАЙВЕР ПОД ЛИНУХ С ПРАВАМИ RING0 предоставлюящий свой API системе. К сожалению иными путями моя задача, как выяснилось, не решается. Полистал исходинки драйверов из ядра работающих с железом(кошмар как будто не для education usage :)). Может кто знает где взять доку про то, как надо писать такие вещи.

anonymous
()
Ответ на: ????? от yaroslav_v

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

А надо это для диплома. Одна из задач в моем дипломе создать хистори всех пользователей, т.е. что то типа bash_history и т.д. но своими силами. А весь ввод с клавиатуры мне нужен, бо как пользователи могут и под иксами сидеть и в консоли(причем хрен знает на какой)...

Если можете помогите плиз, а то уже горит :(

anonymous
()

xxxxx

Условия:
В Linux человек может набирать на клавиатуре, он сидит прямо перед
компьютером. Может нажать Alt+F1 (Alt+F7 - в RedHat) и пойти в X,
но может вдруг пойти в консоль.
Цель:
Создать файл (/tmp/keyboard.logos) и туда писать

Keycode 0x25 : 'a' Down (X)
Keycode 0x25 : 'a' Up (X)
.....
Keycode 0x25 : 'a' Down (v_console 5)
Keycode 0x25 : 'a' Up (v_console 5)

Вы наверное пользовались старыми X. Русский вводили
помните как?

В консоли я с ходу не скажу, но смотреть рекомендую на keymaps .....

Итак программе не требуется иметь root user/group id просто надо ловить и
пропускать SIGHUP. (aka nohup)

P.S. Я когда говорил, что легко, я имел ввиду, что надо лишь вспомнить
школьные годы (всего лет на пять назад) и программки вроде xruskb_xxxxx

P.P.S. Закладки это что такое ? А троянцы это просто образно ?
Уж вспоминать детство, так весело ;-) 

yaroslav_v
()
Ответ на: xxxxx от yaroslav_v

Да уж задача сформулированна верно. :) Кстати идея по поводу xruskb оказалась тем что надо... а так ходелось драйвер написать 8-).

Кстати, а как в старых иксах вводили русские буквы? Я на линух взглянул первый раз гдето 2.5 года назад и была это какаято слакварь. Иксы там были но у меня небыло 3-6 месяцев чтобы это все настроить :) Пришлось ждать дружественый RH 5.2 :)) По поводу P.P.S закладки может не по научному но я(и не только) так называю скрипты с таким же названим, как и прога, но обрабатывающие ввод и/или командную строку после запускающие оригинальую прогу. Ну а трояны более звучное название для linux root kit-ов.

anonymous
()

Чтобы отслеживать все вызванные программы можно также 1) хакнуть shell 2) с помощью LD_LIBRARY_PATH впихнуть свой хук на нужные функции из libc (system, exec*), который будет потом вызывать (как он будет вызывать, не знаю, но наверное как-то можно) требуемые программы. Для X ловить все нажатия клавиш глупо - по-крайне мере надо тогда ловить и сообщения мыши так как есть программы типа GtkKeyboard или что-то похожее, с помощью который можно набирать текст мышью. Ну а если надо просто журнал всех нажатий клавиш на консоли, то по-моему с csh или ksh поставляется утилитка для этого. Ее прямое назначение - отслеживать работу студента.

hvv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.