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 #해설

원문링크 : glibc를 통한 fwrite() 실행 구조 분석