IT/IT ::Advanced SystemProgramming
pt_regs, regs값 ebx를 임의로 바꾼다면?
골든
2013. 4. 30. 03:27
sys_execve함수에서
filename = getname((char *)regs.ebx);
위와 같이 regs에서 ebx를 얻어오면 실행파일명이 오는데
ebx에 임의의 값을 넣어 sys_fork시에 원하는 값을 얻고 싶다! 이게 가능한가?
pt_regs의 값을 임의로 바꾸면 안된다.
이는 user -> kernel context switch 가 일어날 때 레지스터 설정을 저장해둔 것으로 나중에 kernel 에서 user로 갈 때 레지스터를 복구하기 위해 사용된다. system call 이 불릴 때 orig_eax는 system call number를 갖고 있다.
fork()에서는 pt_regs는 child process의 context를 마들 때에도 사용된다.