私はLinuxでptraceをいじっています。/ proc / pid/memインターフェースを使用してトレースされたプロセスのメモリを書き込もうとしています。
このタスクを実行するために使用している関数は次のとおりです。
void write_proc(pid_t child, unsigned long int addr) {
char mem_file_name[100];
char buf[10]="hope";
int mem_fd;
memset( (void*)mem_file_name, 0, 100);
memset( (void *)buf, 0, 10);
sprintf(mem_file_name, "/proc/%d/mem", child);
mem_fd = open(mem_file_name, O_RDONLY);
lseek(mem_fd, addr , SEEK_SET);
if (write(mem_fd, buf, 5) < 0 )
perror("Writing");
return;
}
しかし、私は常にエラーを受け取ります:書き込み:不正なファイル記述子。
この方法を使用してトレースされたプロセスを作成することは可能ですか?