sys_clone과 sys_clone2에 차이는 위에서 말씀하신 것처럼 stack_size 인자가 하나 더 있는 차이밖에 없습니다.
문제가 되는 부분은 clone2는 main_thread와 child_thread가 생성되는데
후킹을 하고 나면 main_thread만 생성되고 main_thread도 좀비로 남아있습니다. 아마도 stack 문제라고 하시는데 커널에서 보면 인자는 잘 넘어오고 do_fork에서 보면 return 값도 0으로 되는데 main_thread에서 child_thread를 생성하기 위해서 다시 sys_clone2를 호출해야되는데 그 부분에서 걸리네요. 저도 아직은 해결하지 못했고요..
궁금증은 sys_clone2로 main_thread가 생성되고 난 후 main_thread에서 sys_clone2를 어떤 방식으로 sys_clone2를 호출하는 지 궁금합니다.
clone2는 child process의 스택의 범위를 지정해준다는 것
clone2는 child process의 스택의 범위를 지정해준다는 것 외에는 clone과 차이가 없습니다. IA-64 커널에만 있고, 자세한 것은 IA-64 linux kernel 책에 나올 것입니다.
Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.
제가 stub 코드에서 sys_clone2를 호출하는 방식을 쓰고 있습니
제가 stub 코드에서 sys_clone2를 호출하는 방식을 쓰고 있습니다.
sys_clone과 sys_clone2에 차이는 위에서 말씀하신 것처럼 stack_size 인자가 하나 더 있는 차이밖에 없습니다.
문제가 되는 부분은 clone2는 main_thread와 child_thread가 생성되는데
후킹을 하고 나면 main_thread만 생성되고 main_thread도 좀비로 남아있습니다. 아마도 stack 문제라고 하시는데 커널에서 보면 인자는 잘 넘어오고 do_fork에서 보면 return 값도 0으로 되는데 main_thread에서 child_thread를 생성하기 위해서 다시 sys_clone2를 호출해야되는데 그 부분에서 걸리네요. 저도 아직은 해결하지 못했고요..
궁금증은 sys_clone2로 main_thread가 생성되고 난 후 main_thread에서 sys_clone2를 어떤 방식으로 sys_clone2를 호출하는 지 궁금합니다.
flyduck
방갑습니다..
잘 부탁드립니다.
댓글 달기