代码:
代码:
//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也达不到要的效果。
|