보안 스터디/시스템 해킹

[드림핵/시스템해킹] Tools : gdb -2

성밍쟁 2023. 12. 29. 17:58
728x90
반응형

프롤로그

솔직히 가상머신에서 VI 편집기 열어가면서 하기 너무 귀찮을 거 같아서 Visual Stduio Code 에서 어떻게든 하고 싶어서 이것저것 찾아보았는데, wsl2 버전을 설치해보라는 피드백을 받아서 한 번 설치해보

 

1. wsl2 설치하기

https://webnautes.tistory.com/1847

 

WSL2를 설치하여 Ubuntu 22.04 사용하는 방법

Windows 11에 WSL2 ( Windows Subsystem for Linux )를 설치한 후, Ubuntu 22.04를 설치한 과정을 다루고 있습니다. Windows 10에서도 거의 동일하게 진행가능합니다. 2017. 12. 15 최초작성 2021. 05. 19 2021. 08. 01 2022. 11. 25

webnautes.tistory.com

이 글을 참고하였다.

 

2. pwndbg 설치하기

https://taesan-smj.tistory.com/16

 

[드림핵 /시스템 해킹] pwndbg 설치하기 (Tools : gdb)

프롤로그 저번 글에서 WSL을 이용하여 VS코드에서 pwndbg를 사용하려고 하였다. 그러나 계속 gdb에서 메모리에 접근할 수 없다고 나오면서 원인을 파악할 수 없었다. 이를 해결하는 법을 위에 3대의

taesan-smj.tistory.com

해당 글 4번을 참고하여 설치하였다

 

 

 

Conetxt

프로그램의 실행과정을 자세히 관찰하려면 컴퓨터의 각종 메모리를 한 눈에 파악할 수 있는 것이 좋음. 프로그램이 실행되고 있는 맥락(Context)을 확인하자.

(1) REGISTERS : 레지스터들의 상태

 

 

(2) DISASM : rip부터 여러 줄에 걸쳐 디스어셈블된 결과

(3) STACK : rsp 부터 여러 줄에 걸쳐 스택의 값들을 보여줌

(4) BACKTRACE : 현재 rip에 도달할 때 까지 어떤 함수들이 중첩되어 호출됐는지 보여줌. 

 

 

Break & Continue

break : 특정 주소에 중단점을 설정

continue : 중단된 프로그램을 실행시키는 기능

 

 

run

단순히 실행. 중단점 지점까지 그냥 실행만 시켜준다

 

 

 

disassembly

프로그램의 코드는 기계어로 이루어져 있으므로, 기계어를 디스어셈블 하는 기능을 탑재하고 있다.

 

이때, u/nearpc 를 사용하면 더 가독성 있게 바꿔준다

 

 

 

그 외 

x: 메모리 조회

ni : 명령어 실행, 함수 내부로는 들어가지 않음

si : 명령어 실행, 함수 내부로 들어감

tele : 메모리 조회, 메모리값이 포인터의 경우 재귀적으로 따라가며 모든 메모리값 출력

vmmap : 메모리 레이아웃 출력

 

 

에필로그

일단 이건 이론으로만 봐도 모르겠다. 실제 실습해봐야 알듯? 

지금으로써는 이걸 깔아서 테스트 할 수 있는 상태가 되었다 정도만 알아야할 것 같다.

 

728x90
반응형