update gdb

This commit is contained in:
firmianay 2017-08-22 21:52:52 +08:00
parent 2a2a141599
commit d0177b79a3
2 changed files with 35 additions and 28 deletions

View File

@ -8,7 +8,7 @@
- [Misc](#misc) - [Misc](#misc)
- [Mobile](#mobile) - [Mobile](#mobile)
- [高质量的比赛](#高质量的比赛) - [高质量的比赛](#高质量的比赛)
- [搭建一个 CTF 比赛平台](#搭建一个-ctf-比赛平台) - [搭建 CTF 比赛平台](#搭建-ctf-比赛平台)
## 概述 ## 概述
@ -35,7 +35,7 @@ CTF 为团队赛,通常以三人为限,要想在比赛中取得胜利,就
详见:[ctftime.org](http://www.ctftime.org) 详见:[ctftime.org](http://www.ctftime.org)
## 搭建一个 CTF 比赛平台 ## 搭建 CTF 比赛平台
- [FBCTF](https://github.com/facebook/fbctf) - The Facebook CTF is a platform to host Jeopardy and “King of the Hill” style Capture the Flag competitions. - [FBCTF](https://github.com/facebook/fbctf) - The Facebook CTF is a platform to host Jeopardy and “King of the Hill” style Capture the Flag competitions.
- [CTFd](https://github.com/CTFd/CTFd) - CTFd is a Capture The Flag in a can. It's easy to customize with plugins and themes and has everything you need to run a jeopardy style CTF. - [CTFd](https://github.com/CTFd/CTFd) - CTFd is a Capture The Flag in a can. It's easy to customize with plugins and themes and has everything you need to run a jeopardy style CTF.
- [SecGen](https://github.com/cliffe/SecGen) - SecGen creates vulnerable virtual machines so students can learn security penetration testing techniques. - [SecGen](https://github.com/cliffe/SecGen) - SecGen creates vulnerable virtual machines so students can learn security penetration testing techniques.

View File

@ -4,6 +4,7 @@
- [gdb 基本工作原理](#gdb-基本工作原理) - [gdb 基本工作原理](#gdb-基本工作原理)
- [gdb 基本操作](#gdb-基本操作) - [gdb 基本操作](#gdb-基本操作)
- [gdb-peda](#gdb-peda) - [gdb-peda](#gdb-peda)
- [GEF/pwngdb](#gefpwngdb)
## gdb 的组成架构 ## gdb 的组成架构
@ -49,32 +50,38 @@ long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);
## gdb-peda ## gdb-peda
### 安装 #### 安装
```shell ```shell
git clone https://github.com/longld/peda.git ~/peda $ git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit $ echo "source ~/peda/peda.py" >> ~/.gdbinit
echo "DONE! debug your program with gdb and enjoy" $ echo "DONE! debug your program with gdb and enjoy"
``` ```
### peda命令
* `aslr` - 显示、设置gdb的ASLR #### peda命令
* `checksec` - 检查二进制文件的安全选项 - `aslr` - 显示/设置 gdb 的 ASLR
* `dumpargs` - 在调用指令停止时显示传递给函数的参数 - `checksec` - 检查二进制文件的安全选项
* `dumprop` - 在特定的内存范围显示ROP gadgets - `dumpargs` - 在调用指令停止时显示传递给函数的参数
* `elfheader` - 获取正在调试的ELF文件的头信息 - `dumprop` - 在特定的内存范围显示 ROP gadgets
* `elfsymbol` - 从ELF文件中获取没有调试信息的符号信息 - `elfheader` - 获取正在调试的 ELF 文件的头信息
* `lookup` - 搜索属于内存范围的地址的所有地址/引用 - `elfsymbol` - 从 ELF 文件中获取没有调试信息的符号信息
* `patch` - 使用字符串/十六进制字符串/整形数 - `lookup` - 搜索属于内存范围的地址的所有地址/引用
* `pattern` - - `patch` - 使用字符串/十六进制字符串/整形数
* `procinfo` - - `pattern` - 生成,搜索或写入循环 pattern 到内存
* `pshow` - - `procinfo` - 显示调试进程的 /proc/pid/
* `pset` - - `pshow` - 显示各种 PEDA 选项和其他设置
* `readelf` - - `pset` - 设置各种PEDA选项和其他设置
* `ropgadget` - - `readelf` - 获取 ELF 的文件头信息
* `ropsearch` - - `ropgadget` - 获取二进制或库的常见 ROP gadgets
* `searchmem|find` - - `ropsearch` - 搜索内存中的 ROP gadgets
* `shellcode` - - `searchmem|find` - 搜索内存中的 pattern; 支持正则表达式搜索
* `skeleton` - - `shellcode` - 生成或下载常见的 shellcode
* `vmmap` - - `skeleton` - 生成 python exploit 代码模板
* `xormem` - - `vmmap` - 在调试过程中获取段的虚拟映射地址范围
- `xormem` - 用一个 key 来对一个内存区域执行 XOR 操作
## GEF/pwngdb
除了 peda 外还有一些优秀的 gdb 增强工具,功能大致相同,可以看情况选用。
- [GEF](https://github.com/hugsy/gef) - Multi-Architecture GDB Enhanced Features for Exploiters & Reverse-Engineers
- [pwndbg
](https://github.com/pwndbg/pwndbg) - Exploit Development and Reverse Engineering with GDB Made Easy