From d0177b79a308b294e525e1fef131aba1552cc1f3 Mon Sep 17 00:00:00 2001 From: firmianay Date: Tue, 22 Aug 2017 21:52:52 +0800 Subject: [PATCH] update gdb --- doc/1.1_ctf.md | 4 +-- doc/2.2_gdb&peda.md | 59 +++++++++++++++++++++++++-------------------- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/doc/1.1_ctf.md b/doc/1.1_ctf.md index 30131eb..c8e08f4 100644 --- a/doc/1.1_ctf.md +++ b/doc/1.1_ctf.md @@ -8,7 +8,7 @@ - [Misc](#misc) - [Mobile](#mobile) - [高质量的比赛](#高质量的比赛) -- [搭建一个 CTF 比赛平台](#搭建一个-ctf-比赛平台) +- [搭建 CTF 比赛平台](#搭建-ctf-比赛平台) ## 概述 @@ -35,7 +35,7 @@ CTF 为团队赛,通常以三人为限,要想在比赛中取得胜利,就 详见:[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. - [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. diff --git a/doc/2.2_gdb&peda.md b/doc/2.2_gdb&peda.md index 6383ff1..af0681c 100644 --- a/doc/2.2_gdb&peda.md +++ b/doc/2.2_gdb&peda.md @@ -4,6 +4,7 @@ - [gdb 基本工作原理](#gdb-基本工作原理) - [gdb 基本操作](#gdb-基本操作) - [gdb-peda](#gdb-peda) +- [GEF/pwngdb](#gefpwngdb) ## gdb 的组成架构 @@ -49,32 +50,38 @@ long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); ## gdb-peda -### 安装 - +#### 安装 ```shell -git clone https://github.com/longld/peda.git ~/peda -echo "source ~/peda/peda.py" >> ~/.gdbinit -echo "DONE! debug your program with gdb and enjoy" +$ git clone https://github.com/longld/peda.git ~/peda +$ echo "source ~/peda/peda.py" >> ~/.gdbinit +$ echo "DONE! debug your program with gdb and enjoy" ``` -### peda命令 -* `aslr` - 显示、设置gdb的ASLR -* `checksec` - 检查二进制文件的安全选项 -* `dumpargs` - 在调用指令停止时显示传递给函数的参数 -* `dumprop` - 在特定的内存范围显示ROP gadgets -* `elfheader` - 获取正在调试的ELF文件的头信息 -* `elfsymbol` - 从ELF文件中获取没有调试信息的符号信息 -* `lookup` - 搜索属于内存范围的地址的所有地址/引用 -* `patch` - 使用字符串/十六进制字符串/整形数 -* `pattern` - -* `procinfo` - -* `pshow` - -* `pset` - -* `readelf` - -* `ropgadget` - -* `ropsearch` - -* `searchmem|find` - -* `shellcode` - -* `skeleton` - -* `vmmap` - -* `xormem` - \ No newline at end of file +#### peda命令 +- `aslr` - 显示/设置 gdb 的 ASLR +- `checksec` - 检查二进制文件的安全选项 +- `dumpargs` - 在调用指令停止时显示传递给函数的参数 +- `dumprop` - 在特定的内存范围显示 ROP gadgets +- `elfheader` - 获取正在调试的 ELF 文件的头信息 +- `elfsymbol` - 从 ELF 文件中获取没有调试信息的符号信息 +- `lookup` - 搜索属于内存范围的地址的所有地址/引用 +- `patch` - 使用字符串/十六进制字符串/整形数 +- `pattern` - 生成,搜索或写入循环 pattern 到内存 +- `procinfo` - 显示调试进程的 /proc/pid/ +- `pshow` - 显示各种 PEDA 选项和其他设置 +- `pset` - 设置各种PEDA选项和其他设置 +- `readelf` - 获取 ELF 的文件头信息 +- `ropgadget` - 获取二进制或库的常见 ROP gadgets +- `ropsearch` - 搜索内存中的 ROP gadgets +- `searchmem|find` - 搜索内存中的 pattern; 支持正则表达式搜索 +- `shellcode` - 生成或下载常见的 shellcode +- `skeleton` - 生成 python exploit 代码模板 +- `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