gdb란?
gdb(GNU debugger) : 리눅스의 대표적인 디버거로, 오픈소스로 개발되어 있어서 무료 설치 가능하다. 오래되었기에 다양한 플러그인이 개발되어있다.
gdb 설치하기
1. VS코드실행
2. TERMINAL을 우분투로 변경
3. 리눅스 업데이트
$sudo apt-get update
4. gdb 설치
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
5. 설치 확인
$gdb
gdb 실습
1. 파일 작성
2. 디버그 확인
entry?
리눅스는 실행파일의 형식으로 ELF(Executable and Linkable Format)를 규정한다.
- 헤더 : 실행에 필요한 여러 정보
- 여러 섹션 : 컴파일된 기계어 코드, 프로그램 문자열을 비롯한 여러 데이터가 포함
ELF의 헤더중에 진입점(Entry Point, EP)이라는 필드가 있는데, ELF를 실행할 때, 진입점의 값부터 프로그램을 실행.
Entry Point Address 부분에 0x401050 이 적혀있는데, 이 main의 진입점은 저기 부분이다.
이 gdb의 entry 명령어는 진입점부터 프로그램을 분석할 수 있게 해주는 gdb의 명령어.
나와야하는 값이 제대로 나오지는 않았음;;
context
프로그램 실행되면서 레지스터를 비롯한 여러 메모리에 접근함. 컴퓨터의 각종 메모리를 한 눈에 파악하는 것이 좋음.
pwndbg는 주요 메모리들의 상태를 프로그램이 실행되고 있는 맥락(context)라고 부르며, 이를 가독성 있게 인터페이스를 갖추고 있음.
- REGISTERS : 레지스터의 상태
- DISASM : rip부터 여러 줄에 걸쳐 디스어셈블된 결과를 보여줌
- STACK : rsp부터 여러 줄에 걸쳐 스택의 값들을 보여줌
- BACKTRACE : 현재 rip 에 도달할 때 까지 어떤 함수들이 중첩되어 호출됐는지 보여줌.
후기
일단 내맘대로 자꾸 안 되어가지고 보류한다;;
'보안 스터디 > 시스템 해킹' 카테고리의 다른 글
[드림핵/워게임] shell_basic (포너블/시스템해킹) (1) | 2024.01.27 |
---|---|
[드림핵/시스템해킹] Exploit Tech: Shellcode -2 (0) | 2023.12.31 |
[드림핵/시스템해킹] Exploit Tech: Shellcode -1 (1) | 2023.12.31 |
[드림핵/시스템해킹] Tools : gdb -2 (0) | 2023.12.29 |
[드림핵 /시스템 해킹] pwndbg 설치하기 (Tools : gdb) (1) | 2023.12.28 |