Форум: "Сети";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизПроблемы с MailSlot Найти похожие ветки
← →
Dimman1 (2003-11-12 14:17) [0]Почему CreateMailSlot(PChar("\\*\mailslot\abc"), 0, MAILSLOT_WAIT_FOREVER,nil) возвращает INVALID_HANDLE_VALUE. Если ставлю вместо звезды точку, то работает, но мне НАДО ловить ВСЕ сообщения, которые шлются на данный слот, даже те, которые адресованы для других компьютеров сети. Может я че не так понимаю:/ Вроде в хелпе так написано:/. И как это можно сделать?
← →
Rouse_ (2003-11-12 17:56) [1]http://delphimaster.net/view/6-1066114577/
Желаю успехов
← →
Dimman1 (2003-11-12 19:51) [2]Короче, там не то. С маил слотами у меня все нормально работает, но дело не в том. Короче надо ловить сообщения, которые отправлются например на \\PC1\mailslot\abc, \\PC2\mailslot\abc и т.д., притом что я сижу cкажем на PC3. По идее надо писать в CreateMailSlot имя слота "\\PC1\mailslot\abc", чтобы читать сообщения, посылаемые на PC1 или писать "\\*\mailslot\abc", но не работает ни первый ни второй вариант (INVALID_HANDLE_VALUE). Как быть, и вообще такое возможно?
← →
Dimman1 (2003-11-13 12:24) [3]Ну неужели никто такого не делал???
← →
Closer (2003-11-14 01:49) [4]Просто MailSlot с таким именем создать нельзя, вот и всё. А сооздать его нельзя потому что такой путь "\\*\mailslot\comp1" (со звёздочкой) зарезервирован Microsoft и используется для отправки сообщения всем пользователям домена.
ИХМО: Если всё же ты хочешь перехватывать все сообщения которые приходят тебе, то ты должен спустится на уровень ниже а то и 2 (т.е. работать с NetBios или вобще перехватывать все приходящие на тебя пакеты).
← →
Dimman1 (2003-11-14 11:12) [5]До я уж понял :(
а исходник подобного снифера не подкинешь?:))
← →
Closer (2003-11-15 18:17) [6]К сожалению исходников снифера у меня нету, но полазив 5 минут по Рунету удалось наити пару ссылок. Возможно тебе повезёт больше :)
http://www.sources.ru/cpp/network/sniff_2k_xp.shtml
http://www.sources.ru/NonCGI/Forum2/HTML/002630.html
P.S.
Да, если ты не в курсе, и вдруг захочешь написать снифер под w9x, то тебе понадобятся специальные библиотеки для таботы с TCP\IP стеком. Вот ссылки:
http://www.komodia.com
http://winpcap.polito.it
P.P.S.
Мне чесно говоря было бы влом писать снифер только для того чтобы ловить сообщения :) я бы воспользовался готовым. Наити такой можно непример на SecurityLab.ru
← →
Dimman1 (2003-11-15 20:18) [7]Готовый, я думаю не покатит, там сообщения шифрованые идут, по совоему алгоритму...:) Найти бы такой сниффер который, бы сообщений в отдельные файлики скидывал, и слал моей проги message, чтобы она его раскодировала, и на экран вывела........ :o)))
← →
Closer (2003-11-16 13:15) [8]Да, думаю снифер с таким набором функций тебе не найти, так что прийдётся писать самому.
← →
Almax (2003-11-17 04:18) [9]Ваще, если я не ошибаюсь, то МайлСлот ловит сообщения адресованые только на твой компьютер, т.е чужие сообщения ты МайлСлотом не поймаешь без каких-либо изощрений. И ваще, чтобы до тебя доходили чужие сообщения нужно, чтобы у вас в сети стояли только хабы, они раскидывают пакеты по всей сети, со свитчами перехват пакетов не прокатит. Кстати есть такая прога PopCapturer называется она перехватывает мессаги проходящие через хаб... посмотри. Поищи в Яндексе или ещё где я у себя ссылок не нашёл, она просто старая. Можешь так же просто на чужие компы заслать свою прогу, чтобы она переадресовывала сообщения тебе, но нужен доступ... Дерзай!!!
← →
Dimman1 (2003-11-17 20:31) [10]да я в курсе как хабы работают:)
← →
Dean (2003-11-18 06:05) [11]В серверном приложении создаётся Mailslot:
hServerMailSlot := CreateMailslot( "\\.\mailslot\$Name$",
0,
MAILSLOT_WAIT_FOREVER,
nil );
... а в клиетском так:
hClientMailSlot := CreateFile( "\\*\mailslot\$Name$",
GENERIC_WRITE,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
0,
0 );
Есть книжка А.В. Фролов, Г.В. Фролов "Программирование для Windows NT". Там подробно эта ситуация описывается.
← →
Dean (2003-11-18 06:15) [12]Да... и ещё. Mailslot создаётся только на локальной машине поэтому сработает именно CreateMailslot( "\\.\mailslot\ ... а не CreateMailSlot(PChar("\\*\mailslot\abc"). Точка ставится для создания Mailslot"а на локальной машине, а "*" для работы с группой машин с созданными Mailslot"ами. Вот.
← →
Almax (2003-11-18 16:41) [13]А где ты видел, что можно * ставить в имени майлслота. В MSDN сказано, что формат имени должен быть \\.\mailslot\[path]name а про * там ничего не сказано.
← →
Dimman1 (2003-11-18 20:01) [14]Ну все понял, всем спасибо:). * можно ставить только при записи:(... Придется cниффер писать :(
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c