| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для Linux/Unix > LKM |
| Автор: oleg1973 10.1.2005, 01:46 | ||
| разбирался я тут с LKM разобрался шас и вам расскажу че там и как кароче кернел модуле ето драйвер выполняется с правами рута в ринг 0 грузится командой insmod *.o (с версии 2.6 расширение сменили на КО) 2.6 пока рассматривать не будем я там сам еще не все понял удаляется модуль командой rmmod *.o посматреть все загруженые модули можно с lsmod сами понимаете в ринг0 преимущества огромны но и опасностей куча ошибся и кранты хорошо если сегментайщ фаулт а то и зависнет все нафиг и так для написания модуля нам понадбится fasm
компилим fasm main.asm main.o кароче есть 3 весчи которые должны быть в модуле init_module - собственно процедура инициализации модуля, должна возврашать 0! cleanup_module - выгрузка модуля, тут пофигу че возврашать kernel_version - изза этой чтуки если у вас кернел не 2,4,20 модуль пахать не будет поддержка версий модулей задается при компиляции кернела если не ощибаюсь ну и все в принципе printk - аналог printf но только в кернеле загрузив модуль имеем 100% контроль над системой можно пропатчить idt и сделатся невидимым одно плоха, не у всех стоит поддержка загрузки модулей ,я про серверные варианты, на всяких попсовых мандрайках по умолчанию есть оно кароче модули чтука удобная для написания руткитов и тому подобных вещей |
| Автор: GrayCardinal 16.4.2006, 20:19 |
| oleg1973, в 2.6 - той сегфаулт хапнуть сложнее гораздо. В основном вежливые BUG Добавлено @ 20:20 И зачем править ldt ? можно ж проще гораздо... Добавлено @ 20:31 К примеру call'баки стандартного файлового дескриптора какого-нить процесса поменять на свои. Или протокол UDP'шный грохнуть, повесить свой. Я к тому, что нафиг тебе вообще процесс ? |