информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыSpanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] Подскажите как сесть на порты (обновление 2) 29.11.01 09:59  
Автор: PS <PS> Статус: Elderman
Отредактировано 29.11.01 11:59  Количество правок: 2
<"чистая" ссылка>
Стоит задача написать прогу, либо сервис под W2K сидящюю на всех портах и выдающюю предупреждение, когда кто либо из вне по ним лезет. После пользователь решает дать запросу идти в сервис или нет.
Вопрос как это сделать ? Принцип нужон.

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

И вообще у меня возник такой вопрос: а что реально происходит когда я открываю сокет ?
Моя мысль такая (имхо): существует извесный системе сервис (типа TCP/IP service), которому идет запрос на заведение сокета. Туда же должно передаватся некая точка входа в моей проге.
Теперь пришел TCP/IP пакет, который попал в сервис. Тот смотрит, ага порт такой-то, посмотрим в своих списках, кто у нас открыл этот порт. Ага, есть такая прога, вот ее точка входа. Вызывает какую-то ф-ю (мною не реализованая, но как то связаная с select) и передает ей пакет (или его часть)...
Я прав или нет ? Кто может реально описать что происходит в системе ? В MSDN ничего нет, там только как пользовать, а это я и так знаю.
[Win32] Совет дилетанта. 29.11.01 11:00  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> Стоит задача написать прогу, либо сервис под W2K сидящюю на
> всех портах и выдающюю предупреждение, когда кто либо из
> вне по ним лезет.

Сразу скажу, что это общий треп, ибо под виндой c vxd
и битовой картой портов я ниче не делал - тока в
в своем супервизоре. ;(

Наскока я знаю, стандартно задача грузиться виндой с определенной
картой портов(битовая массива длиной до 64 килобит). Некотрые
порта там стоят в состоянии "Запрещено", те при обращении
к ним возникает исключение, если текущий уровень задачи меньше
IOPL. Вроде как запрещенными являются порты винта и др.

Если задача хочет все же работать с портами, то ей нужна ф-ция
какой-либо vxd, которая регистрится и имеет права на эти порты.

Пусть у нас нет прав на какой-либо порт. Мы ломимся за ним в эту
vxd - а в vxd явно имеет права на редактирование tss задачи этой,
ибо правей у нее больше, может, даже у нее IOPL = 0.
Узнать tss задачи vxd может через стек. Вроде в ней же валяется эта
битовая карта этой задачи, или где-то рядом.

Затем в те порта (биты в портовой карте) можно прописать, к примеру,
что порт такой-то у этой задачи НЕ ИМЕЕТ ПРАВА обращения - и все,
задача будет давать exception при обращении к этому порту.

Ну и так далее...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach