plt(2)
-
Pwndbg 동적 디버깅으로 RTL 32bit, RTL 64bit 풀기 - Ubuntu Linux
- RTL 32bit 풀이 이 문제에서는 아래와 같이 rtl32_1이라는 실행파일이 주어집니다. memset() 함수로 buf를 정리해주고, printf()로 "Input me : "라는 문자열을 출력해줍니다. 다음 줄에서 read() 함수로 0x58(10진수로 88)만큼 buf를 입력받습니다. 그런데 위에서 선언된 buf를 보면 크기가 0x48(10진수로 72)이므로, 이 부분에서 BOF가 일어난다는걸 알 수 있습니다. payload를 구상해보면 'a'를 buf 크기(0x48)만큼 + sfp 4 + system + dummy 4 + /bin/sh 정도로 구성 될 것 같습니다. system과 /bin/sh를 어떻게 실행시켜야할까....하고 고민하다가 IDA로 파일 안에 있는 모든 문자열을 열어보았습니다...
2021.07.19 -
ELF 파일 구조
- ELF 파일 실행 가능한 바이너리, 오브젝트 파일의 형식을 규정한 파일. 여기서 ELF는 Executable and Linkable Format의 약자입니다. (실행, 링킹이 가능한 포멧) ELF 파일은 ELF 헤더, 프로그램 헤더 테이블, 섹션 헤더 테이블로 이루어져있습니다. ELF 헤더는 ELF 파일의 구성을 나타내는 부분입니다. 파일의 가장 첫 부분을 차지하며, 파일의 특성을 알 수 있는 아주 중요한 부분입니다. 프로그램 헤더 테이블은 ELF 안의 *세그먼트들에 대한 정보들로 * 런타임 중에 사용될 메모리 정보 프로세스 이미지를 어떻게 구현해야 할지 나와있는 부분입니다. *섹션 헤더 테이블은 ELF 안에 있는 섹션들에 대한 정보들을 모아둔 부분입니다. * 실행 파일의 정보가 담긴 공간 - ELF..
2021.06.02