Info & Tech
pwnable heap 처음 공부할 떄 도움되는 환경구축 도구

heap 공부를 위해 glibc 2.23을 사용하는 바이너리를 동적 분석하기 원하는 경우 기존 분석환경을 진행할 수 있게 도와주는 도구입니다.

개발 과정 및 사용 방법

아래의 링크를 통해 개발과정이나 도구 사용방법을 확인하실 수 있습니다.

도구를 제작한 계기

pwnable에서 heap공부를 시작할 때 tcache의 방해를 안받고 fastbin, smallbin 동작을 확인하려면 glibc 2.23의 malloc.c의 분석이 필요하고 해당 라이브러리를 쓰는 ubuntu 버전은 16.04 입니다.

하지만 ubuntu 16.04에서 환경구축을 하면 python3.6까지만 지원되어 그 이상의 버전은 별도의 컴파일과 과정을 통해 진행해야합니다.

heap분석에 익숙하신 분들은 docker에다가 ubuntu 16.04를 돌리고 거기다 gdb attach나 gdbserver, pwntools를 이용해 분석을 진행하는데, 뉴비가 그렇게 진행하기에는 많은 시행착오를 거쳐서 시간이 꽤 걸릴 수도 있고 하다가 포기할 수도 있습니다.

도구 설명

그래서 이 도구는 뉴비들이 glibc 2.23을 사용하기 위해 별도의 환경구축 없이 도구에서 생성한 파일만 기존의 사용하던 분석 환경으로 옮기고 내부의 patch.sh만 실행하면
glibc 2.23을 사용하는 바이너리를 동적분석 진행 할 수 있게 됩니다.

LegacyDynEnv_figure5.png

LegacyDynEnv_figure6.png

물론 나중에 CTF에서 제공하는 Dockerfile을 빌드하고 분석하기 위해서는 gdb attach나 pwntools로 접근하여 분석하는 방법도 알아야 합니다.

하지만 처음 환경 구축이 어렵다면 해당 도구로 heap을 먼저 공부하고 이후에 환경 구축하는 방법을 익히는 것도 좋을꺼 같습니다.

Author