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)
- [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.

View File

@ -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` -
#### 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