libc

System Hacking Advanced

[dreamhack] Overwrite _rtld_global

개념정리프로그램이 실행되고 프로세스로 등록될 때, 프로그램에 명시된 코드 뿐만이 아니라 프로그램에서 쓰이는 변수를 관리하기 위한 영역을 할당하는 코드가 로더에 의해 실행된다. 프로세스를 종료하는 과정에서 실행되는 라이브러리 함수가 존재하는데, 그 중에서 _rtld_global 구조체와 관련된 라이브러리 함수를 알아보고 어떻게 취약점이 발생하는지 알아보자. return 명령으로 프로그램이 종료된다면 __run_exit_handlers()에 있는 _dl_fini()가 호출된다. ○ _dl_fini()#define __rtld_lock_lock_recursive(NAME) \ GL(dl_rtld_lock_recursive) (&(NAME).mutex)void_dl_fini (void){#ifdef SHARE..

keyme
'libc' 태그의 글 목록