文章作者:netxfly [E.S.T]
信息来源:邪恶八进制安全小组(
www.eviloctal.com)
Server End Source
复制内容到剪贴板
代码:
//netxfly [E.S.T]
#include "stdio.h"
#include "string.h"
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
//Function Ptototype Declaration
//-----------------------------------------------------
void usage(char *);
void SocketListen(int);
//-----------------------------------------------------
//End of Function Ptototype Declaration
//Main Function
int main(int argc,char *argv[])
{
if(argc!=2)
{
usage(argv[0]);
}
else
{
SocketListen(atoi(argv[1]));
}
return 0;
}
//End of Main Function
//SocketListen Function
//---------------------------------------------------------------
//Server End wait to be Connected
//Return Type void
//Parameters: int -->The port which will be bind
//----------------------------------------------------------------
void SocketListen(int port)
{
WSADATA wsa;
SOCKET Slisten,Sconnect;
struct sockaddr_in server,client;
int ret;
int length;
char buffer[1024];
char Input[1024];
if(WSAStartup(MAKEWORD(2,2),&wsa))
{
printf("Init Socket Failure...\n");
exit(0);
}
if((Slisten=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET) //PF or AF?
{
printf("Create Socket Failure...\n");
exit(0);
}
//Fill Sockaddr_in Structure
//--------------------------------------------
server.sin_family=AF_INET;
server.sin_port=htons(port);
server.sin_addr.s_addr=INADDR_ANY;
//--------------------------------------------
length=sizeof(struct sockaddr_in);
ret=bind(Slisten,(struct sockaddr *)&server,length);
if(ret==SOCKET_ERROR)
{
printf("Bind Port Failure...\n");
closesocket(Slisten);
exit(0);
}
ret=listen(Slisten,10);
if(ret==SOCKET_ERROR)
{
printf("Listen Local port Failure...\n");
closesocket(Slisten);
exit(0);
}
Sconnect=accept(Slisten,(struct sockaddr *)&client,&length);
if(Sconnect==INVALID_SOCKET)
{
printf("Accept to Connect Failure...\n");
closesocket(Slisten);
exit(0);
}
send(Sconnect,"Welcome,Hacker\n",strlen("Welcome,Hacker\n"),0);
getchar();
closesocket(Slisten);
closesocket(Sconnect);
WSACleanup();
}
//End Of SocketListen Function
//Usage Function Definiation
//--------------------------------------------------------------
//Provide help For user
//Parameters: string
//--------------------------------------------------------------
void usage(char *help)
{
printf("The Server Of C/s Mode By netxfly 04/30/2005\n");
printf("usage:\n");
printf("%s <port>\n",help);
return ;
}Client End Source
复制内容到剪贴板
代码:
//netxfly [E.S.T]
#include "stdio.h"
#include "string.h"
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
//Function Ptototype Declaration
//-----------------------------------------------------
void usage(char *);
void SocketConnect(char*,int);
//-----------------------------------------------------
//End of Function Ptototype Declaration
//Main Function
int main(int argc,char *argv[])
{
if(argc!=3)
{
usage(argv[0]);
}
else
{
SocketConnect(argv[1],atoi(argv[2]));
}
return 0;
}
//End Of main Function
//SocketConnect Function
//---------------------------------------------------------------
//Connetct to Server End
//Return Type void
//Parameters: char* A string used present IP Address
// int -->The port which will be connetct
//----------------------------------------------------------------
void SocketConnect(char *target,int port)
{
WSADATA wsa;
SOCKET Sconnect;
struct sockaddr_in client;
int length;
char buffer[1024];
char Input[1024];
if(WSAStartup(MAKEWORD(2,2),&wsa))
{
printf("Init Socket Failure...\n");
exit(0);
}
if((Sconnect=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET) //PF or AF?
{
printf("Create Socket Failure...\n");
exit(0);
}
//Fill Sockaddr_in Structure
//--------------------------------------------
client.sin_family=AF_INET;
client.sin_port=htons(port);
client.sin_addr.s_addr=inet_addr(target);
//--------------------------------------------
length=sizeof(struct sockaddr_in);
if(connect(Sconnect,(const struct sockaddr*)&client,length)==SOCKET_ERROR)
{
printf("Connect to Destination Failure...\n");
closesocket(Sconnect);
exit(0);
}
length=recv(Sconnect,buffer,strlen(buffer),0);
buffer[length]='\0';
printf("%s\n",buffer);
getchar();
closesocket(Sconnect);
WSACleanup();
}
//End Of SocketConnetct Function
//Usage Function Definiation
//--------------------------------------------------------------
//Provide help For user
//Parameters: string
//--------------------------------------------------------------
void usage(char *help)
{
printf("The Client Of C/s Mode By netxfly 04/30/2005\n");
printf("usage:\n");
printf("%s <RemoteHost> <port>\n",help);
return ;
}