论坛: 编程破解 标题: POPEN模拟SHELL问题 复制本贴地址    
作者: Garu [syshunter]    版主   登录
代码:

代码: 

//POPEN模拟SHELL,很多小后门用的也是类似方法 

#include <stdio.h> 
#include <stdlib.h> 
#include <sys/types.h> 
#include <unistd.h> 

int main(void) { 
   FILE *fp;                //用于读写POPEN管道的文件描述符 
   int n; 
   char buf[80]; 
    
   while((n=read(0,buf,80))>0) {       //从终端读入命令到buf 
   printf("%%");            
      buf[n]=0; 
      fp=popen(buf,"r");      //用popen创建管道并执行buf,管道为读 
      do {    
         fgets(buf,80,fp);     //从fp返回执行结果到buf 
         write(1,buf,strlen(buf));         //将结果输出到终端 
      }while(!feof(fp)); 
       
   pclose(fp); 
   printf("%%"); 
   } 

   exit(1); 


//奇怪的是printf("%%")不能打印,puts也达不到要的效果。 



地主 发表时间: 08/12 19:01

论坛: 编程破解

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

粤ICP备05087286号