peda
gdb에서 가상메모리 자체를 조금 더 효율적으로 보여주는 방법 중 하나이다. PEDA - Python Exploit Development Assistance for GDB
Key Features:
- Enhance the display of gdb: colorize and display disassembly codes, registers, memory information during debugging.
- Add commands to support debugging and exploit development (for a full list of commands use
peda help):aslr– Show/set ASLR setting of GDBchecksec– Check for various security options of binarydumpargs– Display arguments passed to a function when stopped at a call instructiondumprop– Dump all ROP gadgets in specific memory rangeelfheader– Get headers information from debugged ELF fileelfsymbol– Get non-debugging symbol information from an ELF filelookup– Search for all addresses/references to addresses which belong to a memory rangepatch– Patch memory start at an address with string/hexstring/intpattern– Generate, search, or write a cyclic pattern to memoryprocinfo– Display various info from /proc/pid/pshow– Show various PEDA options and other settingspset– Set various PEDA options and other settingsreadelf– Get headers information from an ELF fileropgadget– Get common ROP gadgets of binary or libraryropsearch– Search for ROP gadgets in memorysearchmem|find– Search for a pattern in memory; support regex searchshellcode– Generate or download common shellcodes.skeleton– Generate python exploit code templatevmmap– Get virtual mapping address ranges of section(s) in debugged processxormem– XOR a memory region with a key
Installation
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
echo "DONE! debug your program with gdb and enjoy"
gdb 명령어 (지금까지 사용해본 것)
- 기본
$ gdb a.out[실행파일]
- b main main 까지 break를 건다.
- r breakpoint까지 실행시킨다.
- s 한 step씩 디버깅과 함께 진행한다.
- q 종료한다.
- info variables 각 section별 주소값들의 크기를 출력해준다.
- info files (추가 필요)
readelf
실행파일의 헤더 부분들을 출력해준다.
$ readelf -S -W a.out