![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SOCK_RAW [D7, WinXP]
Unax © (2004-02-14 17:52:00)Уважаемые мастера, как получить доступ к сокету SOCK_RAW под учетной записью не администратора.
Код такой
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
iRead = sendto(s, buf, size, 0, adr, adrlen);
После вызова sendto ошибка 10013, "Сделана попытка доступа к сокету методом, запрещенным правами доступа"
Если я работаю с правами администратора, то функция ошибки не дает.
Всем спасибо.
Unax (2004-02-15 21:46:00) [1]Вопрос насчет статьи http://www.delphimaster.ru/articles/icmp.html
Где взять документацию по icmp.dll и вообще есть ли документация на другие библиотеки которые предоставляет микрософтина. Или все это дело в MSDN описано?
Verg (2004-02-15 12:57:00) [2]
> Unax © (15.02.04 12:38) [24]
Нет. Я его попробовал просто так. Прямо их демки и все. Ну да - работает, прикольно.
Нет задач под это дело.
Unax (2004-02-15 12:38:00) [3]>> Verg
А нет каких-нить простых примерчиков с использованием WinPCap
Unax (2004-02-15 12:36:00) [4]:) А я не знал.
Verg (2004-02-15 12:27:00) [5]
> Unax © (15.02.04 12:25) [21]
Дык :) Это ж их штатный портал.
Unax (2004-02-15 12:25:00) [6]Я качал отсюда:
http://winpcap.polito.it/
Там и документация есть.
Verg (2004-02-15 12:22:00) [7]
> Unax © (15.02.04 12:14) [19]
> Была бы она еще в Дельфевом варианте. Мне как-то Дельфи
> ближе чем С.
Что ты имеешь ввиду? Исходники? Че-то я не встречал отважных, пишуших кернел моде драйверов на делфи :)
А всяких портаций интерфейса в сети полно.
Вот, например,
http://www.misalpina.com/ghost3k/delphi.php
Unax (2004-02-15 12:14:00) [8]Была бы она еще в Дельфевом варианте. Мне как-то Дельфи ближе чем С.
Verg (2004-02-15 12:14:00) [9]Кому интересно, вот модуль:
unit mstcpip;
interface
uses Winsock2;
type
_tcp_keepalive = packed record
onoff : u_long;
keepalivetime : u_long;
keepaliveinterval : u_long;
end;
const
// New WSAIoctl Options
SIO_RCVALL = IOC_IN or IOC_VENDOR or 1;
SIO_RCVALL_MCAST = IOC_IN or IOC_VENDOR or 2;
SIO_RCVALL_IGMPMCAST = IOC_IN or IOC_VENDOR or 3;
SIO_KEEPALIVE_VALS = IOC_IN or IOC_VENDOR or 4;
SIO_ABSORB_RTRALERT = IOC_IN or IOC_VENDOR or 5;
SIO_UCAST_IF = IOC_IN or IOC_VENDOR or 6;
SIO_LIMIT_BROADCASTS = IOC_IN or IOC_VENDOR or 7;
SIO_INDEX_BIND = IOC_IN or IOC_VENDOR or 8;
SIO_INDEX_MCASTIF = IOC_IN or IOC_VENDOR or 9;
SIO_INDEX_ADD_MCAST = IOC_IN or IOC_VENDOR or 10;
SIO_INDEX_DEL_MCAST = IOC_IN or IOC_VENDOR or 11;
// Values for use with SIO_RCVALL* options
RCVALL_OFF = 0;
RCVALL_ON = 1;
RCVALL_SOCKETLEVELONLY = 2;
implementation
end.
Verg (2004-02-15 11:55:00) [10]Сниферы еще любят пользоваться библиотекой WinPcap.
Unax (2004-02-15 11:55:00) [11]Хотя я не знаю как сделаны эти сниферы, может быть без помощи SOCK_RAW.
Unax (2004-02-15 11:53:00) [12]Оказывается те сниферы что у меня есть, работают в качестве службы с учетной записью SYSTEM. Наверное это единственный способ получить доступ к RAW сокетам не зная пароль админа.
Verg (2004-02-15 11:45:00) [13]
> Verg © (15.02.04 11:17) [11]
> Да? Разве в WINSOCK2 от Алекса нет этой константы?
Упс. Точно нет. Значит я эти константы уже сам довставлял да и забыл про это.
Да и вообще-то эти константы должны бить определены (если уж подходить совсем педантично) в модуле mstcpip, а не в winsock2.
Verg (2004-02-15 11:31:00) [14]
> А вообще может-быть отправка запрещена, а принимать пакеты
> можно.
Нет, любая операция с этим сокетом приведет к WSAEACCES, если нет прав Админа.
Unax (2004-02-15 11:20:00) [15]Спасибо. Если бы было в Winsock2 не спрашивал бы.
Verg (2004-02-15 11:17:00) [16]Да? Разве в WINSOCK2 от Алекса нет этой константы?
Ну вот, на всякий случай тогда
SIO_RCVALL = IOC_IN or IOC_VENDOR or 1;
SIO_RCVALL_MCAST = IOC_IN or IOC_VENDOR or 2;
SIO_RCVALL_IGMPMCAST = IOC_IN or IOC_VENDOR or 3;
SIO_KEEPALIVE_VALS = IOC_IN or IOC_VENDOR or 4;
SIO_ABSORB_RTRALERT = IOC_IN or IOC_VENDOR or 5;
SIO_UCAST_IF = IOC_IN or IOC_VENDOR or 6;
SIO_LIMIT_BROADCASTS = IOC_IN or IOC_VENDOR or 7;
SIO_INDEX_BIND = IOC_IN or IOC_VENDOR or 8;
SIO_INDEX_MCASTIF = IOC_IN or IOC_VENDOR or 9;
SIO_INDEX_ADD_MCAST = IOC_IN or IOC_VENDOR or 10;
SIO_INDEX_DEL_MCAST = IOC_IN or IOC_VENDOR or 11;
Unax (2004-02-15 11:07:00) [17]>> Verg
Возникает такой вопрос, как работают снифера не под админом. Ведь они же каким-то образом ловят IP-пакеты, а SOCK_RAW этого не позволяет. Ты недавно в форуме приводил код снифера, не получается проверить: SIO_RCVALL undeclared. Чему равна эта константа?
А вообще может-быть отправка запрещена, а принимать пакеты можно.
Verg (2004-02-15 10:43:00) [18]Так кто же знал, в свою очередь, что тебя интересует реализация именно ping, а не абстрактный SOCK_RAW в общем случае.
Unax (2004-02-15 10:24:00) [19]А я знал что ли. Я уже сделал с помощью SOCK_RAW, но работает только в 9х и под администратором в NT.
Теперь буду знать, спасибо.
Verg (2004-02-15 10:03:00) [20]В смысле с этого (ping/icmp) и надо было начинать....