Временная скидка 60% на годовую подписку!

DoS против irssi клиента

Программа: irssi до версии 0.8.9  Уязвимость обнаружена в irssi клиенте. Удаленный IRC пользователь может аварийно за…

DoS в Shell32.dll

При просмотре через броузер жесткого диска, Windows автоматически анализирует каждый файл в текущей директории для того, что…

WAP тебе в помощь…

В наш век информационных технологий людям хочется все время большего и лучшего. Некоторое время назад необыкновенным считалось использование WAP. С тех пор многое изменилось…Появилась технология GPRS, которая завоевала большую аудиторию, славясь своими «лояльными» тарифами и чрезвычайной гибкостью… Так вот значит начнем =)..

SCO опять DoS`ят

Сайт SCO Group в очередной раз подвергся распределенной DoS атаке в прошедшую среду. Это уже третий случай, когда недовольны…

DoS против IBM WebSphere

Программа: IBM WebSphere 5.0.0, 5.0.1, 5.0.2, 5.0.2.1  Уязвимость обнаружена в IBM WebSphere. Удаленный пользователь …

Спамерский розыгрыш

Согласно веб-сайту Кембридширского полицейского департамента на прошлой неделе произошла особого рода спамерская атака.

Русская Водочная Церемония

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

Юный ОС-Ризёчер №0x07

Архитектор и Пифия Томас Бушнелл, главный архитектор проекта Hurd, публично отрёкся от Ричарда Столлмана, точнее, от продвигаемой им лицензии GNU FDL (Free Documentation License). Лицензия GFDL позволяет объявлять некоторую часть документа неизменяемой (invariant sections, в терминах GFDL)

Решения головоломки №13

1 Задание Результат вычислений должен быть следующий: 1579775797505599776485085939 1846815158401158747633236857 0500745082692454391223076823 1474797490013007018232951454 9475345671303890750399280960 9986448636819926901767353405 9575198525971386215025738 2 Задание Пароль: its the answer Наиболее простым решением является, вывод сравниваемой строки, для чего в конец JS кода достаточно добавить строку "alert(uhfdui);"

Компьютерные вирусы: 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) { // нашли..

Восток наиболее уязвим

По данным исследований, проведенных производителем антивирусного программного обеспечения Symantec, в мировой десятке наибол…

Страница 1 427 из 1 619В начало...1 4001 4101 4201 4251 4261 4271 4281 429 1 4301 4401 450...
Hello Cloud

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

PhD

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

Спасибо за подписку! Мы будем присылать важные новости ИБ в еженедельном дайджесте
Ошибка при подписке Случилась ошибка при создании подписки на наш дайджест. Пожалуйста, попробуйте позднее
Важные события и скидка на подписку:

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

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