두근두근이야기

pt_regs, regs값 ebx를 임의로 바꾼다면? 본문

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를 마들 때에도 사용된다.


[출처] pt_regs|작성자 빵꾸


[출처] pt_regs|작성자 빵꾸


'IT > IT ::Advanced SystemProgramming' 카테고리의 다른 글

do_mmap  (0) 2013.04.30
flush_old_exec()  (0) 2013.04.29
linux pid관리  (0) 2013.04.27
get_fs(), set_fs()  (0) 2013.04.27
효율적인 페이지 단위 점진적 검사점의 설계 및 구현  (0) 2013.04.27