Mi sto comentando con un programma che permette di gestire l'accesso remoto di un altra persona al mio PC.

In pratica quando l'altro tenta di acedervi (ad esempio cn un terminale telnet), dopo aver inserito la pass, ottiene il ProductID del mio PC (contenuto nel registro di sistema)

Cmq ecco il codice:

codice:
#include <winsock.h>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>

SOCKET s1,s2;
WSADATA WSAdata;
struct sockaddr_in in1,in2;
HKEY hKey;

void connettiti(void)
{
int lenght;
WSAStartup(0x0202,&WSAdata);
s1=socket(PF_INET,SOCK_STREAM,0);
in1.sin_family=PF_INET;
in1.sin_port=htons(2003);
in1.sin_addr.s_addr=INADDR_ANY;
bind(s1,(struct sockaddr*)&in1,sizeof(struct sockaddr_in));
lenght=sizeof(struct sockaddr);
listen(s1,1);
printf("\nIN ATTESA...");
s2=accept(s1,(struct sockaddr*)&in2,(LPINT)&lenght);
printf("Ok...\n");
}

char* ricevi(char* buff,int lenght)
{
int i;
for (i=0;i<lenght;i++)
{
recv(s2,buff+i,1,0);
send(s2,buff+i,1,0);
}
return buff;
}

char* prendi_ProductID(char* buff)
{
unsigned long d=0xFF;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
RegQueryValueEx(hKey,"ProductId",NULL,NULL,(LPBYTE)buff,&d);
RegCloseKey(hKey);
return buff;
}

int main(void)
{
char buffer[100];
while(1)
{
connettiti();
strcpy(buffer,"\rtoc toc neo... \r\ninserisci password:");
send(s2,buffer,strlen(buffer),0);
if (strncmp(ricevi(buffer,8),"01234567",8)==0)
{
strcpy(buffer,"\r\nlogin OK\r\nProductID:");
send(s2,prendi_ProductID(buffer),strlen(buffer),0);
}
shutdown(s1,2);
closesocket(s1);
shutdown(s2,2);
closesocket(s2);
WSACleanup();
}
return(0);
}
Il problema è che nn va!!

IL compilatore mi dà i seguenti errori:

15 undefined reference to _WSAStartup@8
16 undefined reference to _socket@12
18 undefined reference to _htons@4
20 undefined reference to _bind@12
22 undefined reference to _listen@8
24 undefined reference to _accept@12
33 undefined reference to _recv@16
34 undefined reference to _send@16
61 undefined reference to _shutdown@8
62 undefined reference to _closesocket@4
65 undefined reference to _WSACleanup@0


Come mai? Dov'è il problema?