stdout <-> _IO_2_1_stdout_

dandb3·2023년 5월 12일
1

이것저것 TMI

목록 보기
11/17
  • 그런데 찾아보면 stdout이라는 전역 변수 자체가 존재한다는 것을 알 수 있다.
  • 일단 확실한 건 stdout이라는 녀석은 FILE *에 해당하고, _IO_2_1_stdout_은 실제 FILE *을 가지고 있다.
  • stdout은 이 _IO_2_1_stdout_을 가리키고 있다고 보면 된다.
  • 메모리에 매핑된 위치?
    - stdout의 경우 data section에 존재함.
    - _IO_2_1_stdout_은 libc 내부에 존재함.

  • 실제로 stdout이 _IO_2_1_stdout_의 주소를 값으로 가진다.
  • 하나 더 TMI인 부분은 vmmap을 보면 write가 가능한 영역에 stdout이 속한다는 것도 알고 있으면 좋다.
  • 요거는 stdio.c에서 가져온 부분.
  • 그래서 NO_PIE인 바이너리의 경우 stdout을 통해서 libc의 주소를 leak할 수 있다..? 가 결론인가..?
profile
공부 내용 저장소

0개의 댓글