Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Проблемы с 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
3-62985
Chel
2003-12-23 17:11
2004.01.20
DBGrid


1-63200
www
2004-01-11 00:16
2004.01.20
Какой лучше использовать!!!


8-63257
Anton2000
2003-09-17 17:31
2004.01.20
TrackBar в проигрывателе музыки


14-63392
wnew
2003-12-23 19:19
2004.01.20
Рождественская ёлка:)


1-63130
Юрий Ж.
2004-01-07 22:31
2004.01.20
Вопрос с прозрачностью...