rosieblue
article thumbnail
728x90

0. 로더

http://korea.gnu.org/manual/release/ld/ld-sjp/ld-ko_toc.html

 

GNU 링커, LD 사용하기 - Table of Contents

 

korea.gnu.org

 

 

바이너리가 사용하는 로더 종류와 내 컴퓨터 환경의 로더가 다른 경우 제대로 오프셋을 알아낼 수 없음

이때 patchelf 명령어를 사용해 바이너리가 지정한 로더를 사용할 수 있음

 

 

1. 설치

$ sudo apt-get install patchelf

 

2. ow_rtld가 ld-2.27.so를 사용하도록 설정

$ patchelf --set-interpreter ./ld-2.27.so ./ow_rtld

 

3. 확인

gdb로 ow_rtld에 들어간 다음, vmmap으로 우리가 설정한 로더가 잘 매핑되었는지 확인할 수 있었다.

 

 

 

라이브러리 교체

https://typemiss.tistory.com/2

 

[Pwnable] libc 주어졌을 때 바이너리에 링킹 & 디버깅 (when LD_PRELOAD making segmenation fault)

- 보통 문제에서 elf, libc 가 주어짐 - 익스하는 os 의 libc 버전과 문제에서 준 libc 버전이 안맞아서 LD_PRELOAD 걸어도 segmentation fault 뜨는 경우 있음 1. 주어진 libc 에 대응되는 custom loader 가 추가로 필

typemiss.tistory.com

https://ye0nny.tistory.com/137

 

환경변수 LD_PRELOAD를 이용한 후킹

LD_PRELOAD는 환경변수 중 하나이다. 프로세스를 실행하는 과정에서 라이브러리를 로딩할 때 만약 이 환경변수가 설정이 되어 있다면 해당 변수에 지정된 라이브러리를 먼저 로딩한다. 이 중 libc

ye0nny.tistory.com

 

profile

rosieblue

@Rosieblue

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!