일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- pwndbg
- return to libraty
- HOS
- libc-database
- 계산기
- RAO
- PLT
- ioploaddrivers
- dangling pointer
- frida-dump
- libc.so
- Android
- JOP
- brop
- windows
- kernel debug
- randtbl
- sgerrand
- fastbin
- kaslr
- SCP
- elf 헤더
- cmake
- top chunk
- canary leak
- patchelf
- house of force
- windows kernel
- WinDBG
- ntwritefile
- Today
- Total
sh711 님의 블로그
patchelf 및 glibc 본문
라이브러리 변경
patchelf --replace-needed libc.so.6 [변경 라이브러리 경로] [파일명]
ld 변경
patchelf --set-interpreter [ld 경로] [파일명]
로컬에서 glibc 빌드 시 ld버전 등의 문제로 원활하게 빌드가 불가능하다
아래 링크 도커 이미지를 통해 손쉽게 원하는 glibc 버전 환경 구성이 가능하다
https://github.com/sgerrand/docker-glibc-builder
GitHub - sgerrand/docker-glibc-builder: A glibc binary package builder in Docker
A glibc binary package builder in Docker. Contribute to sgerrand/docker-glibc-builder development by creating an account on GitHub.
github.com
도커 내 glibc가 설치된 디렉터리를 로컬로 복사한다
docker pull sgerrand/glibc-builder
docker run --env STDOUT=1 sgerrand/glibc-builder [2.35] /usr/glibc-compat
docker cp [컨테이너명]:/usr/glibc-compat ~/glibc-2.35
혹은 자동 복사
docker run --rm -v /path/to/local/dir:/usr/glibc-compat sgerrand/glibc-builder 2.30 /usr/glibc-compat
glibc 버전 찾기
지금까지 여기를 사용했지만 libc-database 도구를 사용하려한다
libc-database
libc.rip
https://github.com/niklasb/libc-database
GitHub - niklasb/libc-database: Build a database of libc offsets to simplify exploitation
Build a database of libc offsets to simplify exploitation - niklasb/libc-database
github.com
해당 깃 클론 후 ./add ubuntu debian 입력 시 db에 라이브러리와 심볼 파일들이 다운받아진다
라이브러리 버전 찾기