공부일지
https://portswigger.net/web-security Web Security Academy: Free Online Training from PortSwigger The Web Security Academy is a free online training center for web application security, brought to you by PortSwigger. Create an account to get started. portswigger.net 웹해킹 & 보안완벽가이드 개정판이 2014년이후로 발간되지 않아서 검색 해본결과 위 사이트로 이제 계속해서 새로운 내용이 나온다고 한다고 해서 웹해킹공부를 하면서 위 사이트 내용을 하나씩 번역을 해보려고 한다.

힙구조를 공부하려고 실습을하려고 예제파일을 만들어서 heap이 할당된 메모리 맵을 보려고 하던중 malloc을 호출해서 힙을 할당하기도 전에 메모리 맵에 힙이 할당된걸 보게되었다. 위 코드 사진을 보면 malloc이 없는데도 cat /proc/pid번호/maps로 메모리 맵을 보니 저렇게 힙영역이 할당되어있었다. 아마도 저기 getchar함수 때문에 이런일이 발생하는것 같아서 간단하게 gdb로 getchar내부 함수의 흐름을 보려고한다. getchar내부에 보면 __GI__uflow를 호출하고 __GI_ulfow에서 eax+0x14를 호출하는데 이는 __GI_IO_default_uflow함수이다 그리고 __GI__IO_default_uflow에서 $eax+0x10의 값인 __IO_new_file_unde..

이번글에서는 dynamic linking과 lazy binding 그리고 추가로 return to dl resolve 기법에 대해서 설명을 해보려고 한다. Dynamic linking이란 공유 라이브러리를 사용하여서 static linking처럼 실행파일내에 라이브러리를 포함 시키는것이 아닌 실행파일이 실행될때 공유라이브러리를 메모리에 올려서 라이브러리를 사용하는 방식을 뜻한다. 보통 컴파일을 할때 따로 옵션을 주지않으면 Dynamic linking방식으로 linking을 하게된다. *라이브러리란? -라이브러리(영어: library)는 소프트웨어를 만들 때 쓰이는 클래스나 서브루틴들의 모임을 가리키는 말이다. -라이브러리(library)는 다른 프로그램들과 링크되기 위하여 존재하는, 하나 이상의 서브루틴..