Information*/알면도움됨

gdb 활용 팁

ch4rli3kop 2020. 6. 26. 22:39
반응형

gdb 활용 팁

에버노트 정리하다가 끄적여논거 대충 써서 올려본다.

파일에 symbol이 존재하는 경우 디버깅시 매우 행복함을 느낄 수 있다.

(gdb) x/x &변수명 

같이 사용가능.


메모리 볼 때, vmmap 처럼

(gdb) info proc mappings

비슷하게 바이너리에 존재하는 함수 목록을 보고 싶으면 `info functions`을 이용해서 확인할 수도 있다.


gdb.attach(r, 'b* 0x40~') 꼴로 중간에 gdb 디버깅을 사용하면, 브포를 특정 함수에 걸었을 때, 해당 함수 중간에 브포가 걸릴 수 있기 때문에 그럴 경우 finish를 사용해서 함수를 모두 실행시키면 깔끔하다.

(gdb) finish


일반 gdb에서 heap 보려고 할 때, p main_arena.* 로 확인 가능.

(gdb) p main_arena.fastbinsY  # fastbin
(gdb p main_arena.top     # top chunk
(gdb) p main_arena.bins     # bins

위의 데이터뿐만 아니라, 다음 malloc_state struct 등을 확인할 수 있다.

멈췄을 때 자동으로 스크립트를 실행하게 하는 방법이 있음. gdb 상에서 다음과 같이 등록

(gdb) b* main+241
(gdb) define hook-stop
> x/10gx $rip
> x/10gx $rsp
> end
(gdb) c


반응형

'Information* > 알면도움됨' 카테고리의 다른 글

Bruteforce  (0) 2020.08.31
메모리 배열 조정하기  (0) 2020.07.17
linux include 파일 찾기  (0) 2020.06.26
gif 편집할 때  (0) 2020.06.24
nasm을 이용한 asm 코딩  (0) 2020.05.26