![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Телнет [WinXP]
AeroTm © (2007-01-07 23:12:00)Понадобилось собрать программку удалёного консольного админа. Использовал прямое перенаправление in/out-консоли в сокет. Вот фрагмент кода:
{CreateServer}
WSAStartUp($202,WSAData);
HSocket:=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_IP,nil,0,0);
adr.sin_family := AF_INET;
adr.sin_addr.s_addr:=INADDR_ANY;
adr.sin_port:=htons(23);
Bind(HSocket,@adr,sizeof(adr));
Listen(HSocket,1);
WSAAsyncSelect(HSocket,Handle,CM_SOCKETMESSAGE, FD_ACCEPT);
{OnAccept}
i:=sizeof(sin);
ClientHSocket:=WSAAccept(HSocket, @sin, @i,nil,0);
Zeromemory(@s_info,SizeOf(s_info));
s_info.cb:=sizeof(s_info);
s_info.dwFlags:=256;
s_info.hStdInput:=ClientHSocket;
s_info.hStdOutput:=ClientHSocket;
s_info.hStdError:=ClientHSocket;
CreateProcess( nil, PChar('cmd.exe'), nil, nil, true, $8000040, nil, nil, s_info, p_info);
В общем случае всё работает. Проблема в следующем. Нашлись две системы (обе XP SP2, но абсолютно не связанных между собой,т.е. дистрибутивы разные), на которых работать код отказался. Все функции отрабатываются нормально, без ошибок. И даже процесс cmd.exe появляется, но тут же закрывается. Соединение не теряется.
Кстати, функция "Телнет" в remote administrator также не работает на этих системах. ( Ошибся форумом? :) ) Что это, политики, драйвера, луна может? Пришлось всё переделать на пайпы, но хочу понять, где и в ком косяк!??
Piroxyline (2007-01-08 15:28:00) [1]
> Eraser © (08.01.07 00:13) [3]
А до SP2 не прокатывает фокус с программой-заставкой cmd.exe?
AeroTm (2007-01-08 12:18:00) [2]
> Eraser © (08.01.07 00:00) [1]
> а cmd.exe на той системе локально запускается?
Да, к тому же пересобранный код на пайпах тоже работает отлично.
> kaZaNoVa © (08.01.07 00:01) [2]
> удалить сп2 он ограничивает много((
на всех остальных машинах с сп2 всё работает. причём установил винду с дистрибутива той винды, на которой код не пашет - и чуда не произошло - мой телнет так же запустился...патчи поверх сознательно не устанавливались. Ещё есть systeminfo с этого компа.
Eraser (2007-01-08 00:13:00) [3]> [2] kaZaNoVa © (08.01.07 00:01)
ага )) у меня к примеру есть программка, которой я могу получить права админа на всех компах ниже SP2, где не установлен один патчик )
kaZaNoVa (2007-01-08 00:01:00) [4]удалить сп2 он ограничивает много((
Eraser (2007-01-08 00:00:00) [5]> [0] AeroTm (07.01.07 23:12)
а cmd.exe на той системе локально запускается?