2019. 9. 18. 13:17ㆍSystem Hacking/쓸모있는 꿀팁
안녕하세요, 오랜만에 포스팅 하네요!
비오비에서 공부하느라 블로그에 소홀했네요..
될때마다 틈틈히 올리도록 하겠습니다.
각설하고 오늘 포스팅 할 내용은, pwnable 할 때 쓰는
다양한 디버거를 어떻게 동시에 쓰냐! 에 관한 것입니다
저희가 CTF나 문제 풀때 gdb-peda, pwndbg, gef등 다양하게
디버깅 툴이 존재하고, 각각의 장점이 모두 있죠?
근데 사이트 찾아보면 다 이렇게 나오더라구요
너무 막 어렵게 나와서.....
저는 간단하게 알려드리겠습니다!
--------------------------------------------------------------------------------------------------------------------------------
준비물은 무엇이냐!
*****peda, pwndbg, gef 파일이 어디에 다운로드되었느냐입니다!!!!!!!!! (일반적으로 다운로드 받은 위치에서 설치를 진행하시겠죠?)
----------------------------------------------------------------------------------------------------------------------------------
제가 /home/f1ash라는 디렉토리(위치)에 peda와 pwndbg 파일을 git clone을 통해서 받아 왔습니다
※ 일반적으로 파일을 다운로드 받고 싶은 위치에 가서 git clone 하시면 그 위치에 파일이 다운로드 됩니다
무슨 말이냐?
ex) 서울시란 폴더에 peda 파일을 받고 싶다 => cd 서울시 => git clone https://github.com/longld/peda.git ~/peda하면 서울시라는 폴더에 peda 파일이 받아집니다
다시 돌아와서 저는 /home/f1ash라는 위치에 peda와 pwndbg 파일을
git clone https://github.com/longld/peda.git ~/peda
git clone https://github.com/pwndbg/pwndbg
해서 받아 왔습니다!
다운받아서 peda와 gdb를 각각 설치한 다음에,
shell창에서 vi ~/.gdbinit이라고 치면
뭐라 적혀 있을 수도 있고, 안 적혀 있을 수도 있습니다
걱정하지 마세요 ㅋㅋ 상관없으니까
insert 모드로 바꾸고
아래와 같이
***형식 => source [파일 위치]
적어주면 됩니다!
아래껀 vm에서의 gdbinit 파일이구요!
저는 $ cd 했을 때 (최상위 디렉토리로 이동해줘!!!!)
/home/f1ash가 나와서 (최상위 디렉토리가 여기구나 ㅇㅇ)
클라우드에 있는 서버에 있는 gdbinit 파일도 보여드릴게요!
현재 위치는 / 최상위 root죠
거기에 tools라는 폴더를 만들었어요 제가 그냥
그리고 거기에 peda와 pwndbg 파일을 받아 놨어요
그래서 클라우드에서는 source의 경로가 /tools/peda, /tools/pwndbg가 되겠죠?
설치위치!!!!!!!! 그리고 설치된 파일 이걸 제가 기억하라고 했잖아요!
똑같이 vi ~/.gdbinit해서 들어가면!
그래서 똑같이 설치위치 적어줍니다!
/tools/peda/peda.py 설치된 파일!
/tools/pwndbg/gdbinit.py 설치된 파일!
+----------------------------------+
여기서 주의해야 하는 사항!
1) 그리고 쉘에서 gdb만 입력하면 되요!
-peda 쓰려고 gdb-peda 이렇게 안치셔도 되요!
-pwndbg쓰려고 pwndbg 이렇게 안치셔도 되요!
그냥 gdb 치셔도 되요!
2) gdbinit 파일에서 쓰고싶은거 하나만 남기고 주석처리 해주세요!
제 VM에서는 peda와 pwndbg 모두 #으로 제가 주석처리해서
파란색 글씨고 gef만 제대로 되어있죠?
클라우드에서는
pwndbg를 제가 #으로 주석처리 해놨죠?
*****쓸 것 하나만! 딱 켜놓으시고 나머지 주석처리해야 잘 알아들어요!
ex) 나 peda만 쓸래! 그러면 pwndbg, gef 다 #으로 주석처리
나 gef만 쓸래! 그러면 peda, pwndbg 다 #으로 주석처리
+----------------------------------+
만약에 난 원래 기본으로 제공되는 (구데기) gdb를 쓰고싶어!
다시 돌아갈래!
그러시면 gdbinit파일에서 모든 source 싹다 #으로 주석처리 하시면 됩니다!
다른 디버거 쓰고싶으시면 언제든지
vi ~/.gdbinit 가서
쓰고싶은거 하나 남기고 나머지 주석처리 해주시면 됩니다!