로딩
요청 처리 중입니다...

glibc를 통한 fwrite() 실행 구조 분석

 glibc를 통한 fwrite() 실행 구조 분석

미리 알아둘 것 _IO_FILE 구조 이해 (기본적인 리눅스 파일시스템 관리 구조) 이번에는 파일의 데이터를 이용해 다른 파일이나, 화면에 쓰는(표준출력; Standard output)데 사용되는 fwrite() (또는 fputs() 함수)의 작동 원리에 대해 이해하고 이것이 어떻게 악용될 수 있나 살펴봅니다. 우선 (적어도) C언어에서는 파일을 다루기 위해서는 대상 파일을 여는 작업이 필요하며, fopen() 함수를 통해 이를 수행합니다.

이렇게 파일이 열리게 되면, fopen() 함수는 파일을 다룰 수 있는 고유한 값인 file descriptor를 제공하게 되며, 이를 통해 파일에 입출력을 할 수 있습니다. 이때, C/C++를 포함한 많은 프로그래밍 언어들은 fopen() 등의 메서드를 통해 파일이 열리고 나서 발생하는 모든 입출력(I/O) 흐름을 IO Stream이라고 합니다.

FILE* fopen (const char* fileName, const char* fileMode...

# _IO_FILE # struct # system # vtable # 구조분석 # 원리 # 자료구조 # 콜스택 # 함수 # 함수분석 # linux # kernel # glibc # _IO_jump_t # analysis # C # Clang # CS # C언어 # exploitation # flag # fwrite # 해설