#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int g_fd;
int main(){
char* args[2];
char* env[2];
args[0] = "/bin/ps | grep ps";
args[1] = 0;
env[0] = 0;
env[1] = 0;
g_fd = open("tmp", O_RDWR|O_CREAT);
printf("g_fd : %d\n", g_fd);
int pid = fork();
// child.
if(pid==0){
dup2( g_fd, fileno(stdout) );
execve( args[0], args, env );
}
else{
char buf[1024];
int n;
sleep(1);
lseek(g_fd, 0, SEEK_SET);
while( n=read(g_fd, buf, 1024) ){
buf[n]=0;
printf("parent(%d) : [%s]\n", n, buf);
}
printf("n:%d\n",n);
}
printf("end\n");
return 0;
}
'Programming' 카테고리의 다른 글
Android Rootkit (0) | 2013.04.24 |
---|---|
Android rootkit developing environment (0) | 2013.04.23 |
sniffer.c (0) | 2013.03.19 |
proxy.c (0) | 2013.03.19 |
arpreply.c (0) | 2013.03.19 |