Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.01 c
7-63412
Sam Stone
2003-10-24 11:12
2004.01.20
Входящий трафик


3-63006
chtr
2003-12-23 08:05
2004.01.20
Cannot access field as type Variant


1-63196
Can_kill
2004-01-10 03:11
2004.01.20
Прерывание


1-63222
димка
2004-01-10 20:19
2004.01.20
как проверить запущена ли программа


1-63078
Dublicator
2004-01-07 12:36
2004.01.20
Скрытие приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский