code, ld, libc , heap 등등으로 base 주소를 출력하는 방법은 잘 알것이다.
그러나 오프셋 연산이 즉각적으로 필요한 경우에 계산기를 켜거나 p 명령을 이용해서 연산을 진행하는 경우가 있다.
이때 code, heap, libc, ld 등의 심볼을 이용한 연산이 안되어서 상당히 불편했다.
근데 나만 몰랐던건지, 대체로 이 방법을 소개하는 글을 본적이 없어서 위 사진처럼 오프셋 계산을 수동으로 진행한 적이 많았는데 , pwndbg 플러그인 파이썬 코드를 보다가 뭔가를 찾았다.
그렇다. libc 명령을 실행하면, libc 주소를 읽어와 출력하는 동작만 하는게 아니고 , $libc 심볼에 주소값을 저장하는 도작까지 같이 수행해주는 것이었다.
그리고 익스플로잇에 주로 쓰이는 함수들의 오프셋도 간편하게 구할 수 있다.
그동안 저걸 일일히 계산하고 찾아가며 소모했던 시간들이 순식간에 아까워졌다. 이렇게 편한 방법이 있었다니..
다만 libc 명령어를 한번 실행한 다음부터 심볼로 저장되어 쓰이니, libc를 한번 실행해준 다음부터 저런식으로 오프셋 계산이 된다.
진짜 나만 몰랐던 건가..