Временная скидка 60% на годовую подписку!
Главная Софт (страница 492)

Софт

Компьютерные вирусы: 50 любопытных фактов №2

№26 В начале 1992 г. появляется первый генератор полиморфных вирусов MtE. Его главное предназначение — возможность интеграции в другие вирусы для обеспечения их полиморфизма. Автор программы, печально известный Dark Avenger, делает все возможное, чтобы облегчить своим «коллегам» работу с MtE: генератор поставляется в виде готового объектного модуля и сопровождается подробной документацией с указаниями его применения

Кодим в ядре 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 пишет что-то типа:

Компьютерные вирусы: 50 любопытных фактов №1

Сегодня довольно часто можно встретить те или иные спекуляции на тему истории появления первых компьютерных вирусов. Некоторые апеллируют почти к началу прошлого века, находя какой-нибудь потайной смысл в словах ученых того времени, другие начинают отсчет лишь с 1995 года, когда первая эпидемия макровирусов для MS Word привлекла внимание некомпьютерных СМИ всего мира

DoS в Linksys WRT54G

В Linksys WRT54G обнаружена возможность организации DoS атаки. Пустой GET запрос на 80 (или 8080) порт подвесит встроенный w…

Alchemy Eye Pro v5.4

Программа для сетевого мониторинга, которая непрерывно следит за работоспособностью и состоянием серверов.

Cain & Abel 2.5b44

Cain & Abel - утилита взлома паролей для ОС Microsoft. Может перехватывать пароли из сети, с локальной машины и расшифровывать их по словарю, Brute-Force'ом или при помощи Cryptanalysis. Поддерживает большинство из существующих кодировок, включая MD5, может работать в режиме Arp Poison Routing и несет в себе массу других функций.

В погоне за эксплоитами

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

FreeProxy 3.50

Прокси-сервер для MS Windows систем, который поддерживает следующие протоколы: HTTP, SMTP, POP, FTP через HTTP, TCP туннелирование, NNTP и SOCKS5.

Лучшие вирусы Ноября

«Лаборатория Касперского» выпустила обзор вирусной активности за Ноябрь. Вот как выглядит двадцатка наиболее распространенны…

Cisco против вирусов

Компания Cisco совместно с компаниями Network Associates, Symantec и Trend Micro - крупными производителями антивирусного пр…

Взлом НТВ+ с помощью распределенных вычислений

Было на территории СНГ до поры - до времени хорошее и бесплатное спутниковое телевидение: все пользовались пиратскими карточками, которые можно было приобрести за копейки где угодно, ну, если руки растут откуда надо, то и сделать самому, благо прошивки для карточек достать в сети не мог разве что ленивый

Samurize v1.0.1

Прога предназначена для мониторинга разнообразных системных ресурсов под операционными системами Windows 2000/XP и отображения собранной статистики прямо на рабочем столе.

Защита DNS №1

DNS служба является достаточно критичным и важным компонентом Интернета. Дело в том, что это служба нужна для того, чтобы пользователи могли общаться с узлами не по их ip адресам, которые собой представляют набор цифр, а по именам

DoS против Pan newsreader

Программа: Pan Newsreader 0.13.3.93  Уязвимость обнаружена в Pan newsreader. Удаленный пользователь может аварийно за…

Страница 492 из 594В начало...460470480490491492493494 500510520...

Бумажный спецвыпуск

Cyber Camp 2025

Еженедельный дайджест

Спасибо за подписку! Мы будем присылать важные новости ИБ в еженедельном дайджесте
Ошибка при подписке Случилась ошибка при создании подписки на наш дайджест. Пожалуйста, попробуйте позднее
Важные события и скидка на подписку:
«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
4500 р.
на год
450 р.
на месяц

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

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