보안 스터디/시스템 해킹

[드림핵] Tools : gdb (시스템 해킹)

성밍쟁 2023. 12. 20. 02:01
728x90
반응형

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 에 도달할 때 까지 어떤 함수들이 중첩되어 호출됐는지 보여줌.

 

 

 

 

후기

일단 내맘대로 자꾸 안 되어가지고 보류한다;;

728x90
반응형