본문으로 바로가기

main() 호출과정

category Security/System 2015. 10. 5. 01:07
반응형

1. fork()를 통해 process 복사

2. execve() system call -> sys_execve() 호출 (User mode -> Kernel mode)

3. do_execve() 동작 

4. open_exec()로 file 정보를 읽어 적합한 binary handler 호출

5. flush_old_exec()가 기존 프로세스 정보를 삭제하고 현재의 프로세스를 "current"로 설정함

6. 새로운 프로세스에 사용할 Memory Layout 설정

7. 동적링커를 로딩하여 elf포맷이면 load_elf_interp()가 동작하여 /lib/ld_linux.so.2를 로딩

8. start_thread()로 elf_interpreter 실행

9. sys_execve() 종료 (Kernel mode -> User mode)

10. _start에 의해 main() 호출

반응형

'Security > System' 카테고리의 다른 글

세미나 1주차  (0) 2016.04.23
바이너리 실행권한 확인  (2) 2016.04.21
리눅스 보호기법 확인  (2) 2015.02.26
Stripped 된 바이너리의 Symbol 정보찾는법  (0) 2015.02.21
Stack, Prologue, Leave, Ret  (0) 2014.05.13