how to know glibc file version
우리가 흔히들 문제에서 Libc 파일을 받으면, 해당 libc의 원본코드를 보기 위해서는 버전이 뭔지 알아야 한다.
C
root@500a25569bbf:/home/bypass_valid_vtable# ls
bypass_valid_vtable exploit.py flag libc.so.6근데 가령 다음과 같이 libc.so.6 처럼 버전이 명시 되어 있지 않을 수 도 있다. 이때는
C
root@500a25569bbf:/home/bypass_valid_vtable# strings libc.so.6 | grep -i "gnu"
gnu_dev_major
gnu_dev_minor
gnu_get_libc_version
gnu_dev_makedev
gnu_get_libc_release
/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1) stable release version 2.27.
Compiled by GNU CC version 7.3.0.
/usr/lib/x86_64-linux-gnu/gconv
.note.gnu.build-id
.gnu.hash
다음과 같이 문자열을 보면,
GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1) stable release version 2.27.
버전을 알 수 있다.
그런데 간혹 이런 문자열이 안뜨는 경우도 있다.
그럴때는, objdump → 함수들의 하위 3바이트 → https://libc.rip 으로 버전을 알아내야지 뭐
도구가 있다면, build id로 찾아내도 된다.