Linux下gdb(插件pwndbg、pead、gef)安装及调试常用指令 您所在的位置:网站首页 怎样运行插件程序 Linux下gdb(插件pwndbg、pead、gef)安装及调试常用指令

Linux下gdb(插件pwndbg、pead、gef)安装及调试常用指令

2024-07-11 22:14| 来源: 网络整理| 查看: 265

gdb 一、安装指令

如果没安装gdb,先使用以下指令安装gdb

sudo apt-get install gdb

先装,因为这个带有 parseheap、以及 heapinfo 等指令,有的场景下更好用

cd ~/ git clone https://github.com/scwuaptx/Pwngdb.git cp ~/Pwngdb/.gdbinit ~/

pwndbg:pwndbg (/poʊnddb æg/)是一个GDB插件,使GDB的调试不那么糟糕,重点关注低级软件开发人员、硬件黑客、逆向工程师和开发人员需要的特性

peda:GDB的Python开发协助

gef:GEF(发音为ʤɛf -“Jeff”)是一组用于x86/64、ARM、MIPS、PowerPC和SPARC的命令,用于在使用老式GDB时帮助开发人员和反向工程师

把这三个都先下载下来:

git clone https://github.com/longld/peda.git git clone https://github.com/pwndbg/pwndbg.git git clone https://github.com/hugsy/gef.git

pwndbg安装:

cd /pwndbg ./setup.sh

安装插件依赖:

sudo pip install keystone-engine ropper keystone-engine

更换gdb指令,在gef、pwndbg、peda中选择,选哪个就把其他都注释掉

sudo vim ~/.gdbinit ## vim后在文件内输入下方横线中内容,选择三个插件其中一个,另外两个注释掉,保存退出 ------------------------------------------------------------------------- source /home/hollk/tools/pwndbg/gdbinit.py #source /home/hollk/tools/peda/peda.py #source /home/hollk/tools/gef-dev/gef.py ------------------------------------------------------------------------- 二 、用途

启动你的程序,可以按照你的自定义的要求随心所欲的运行程序

可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)

当程序被停住时,可以检查此时你的程序中所发生的事。

动态的改变你程序的执行环境

按照以下指令编译c程序,可以看着源代码进行gdb动调

gcc -g test.c -o test //gcc中-g选项是为了获得有关调试信息,要用gdb进行调试,必须使用-g生成二进制可执行文件 三、常用指令:

checksec 查看elf编译的保护选项

aslr 查看gdb的aslr设置 aslr on 可开启alsr设置

file 文件名 加载objfile

disas addr 对地址addr处的指令进行反汇编,addr可以是函数名(但是不加* 使用函数名就无法用于参数确认;不加*,断点就不会设置到汇编语言层级的函数开头)

b *addr 在addr处下一个断点 b后跟函数名就不用 *

enable 激活断点

disable 禁用断点

info b 查看断点

del num 删除断点

x addr 查看addr处存储的数据值

x/wx $esp   以4字节16进制显示栈中内容

stack 100   插件提供,显示栈中100项

find xxx   快速查找,很实用

r 运行被调试的程序

c 继续运行

ni 单步执行不进入函数调用

si 单步执行并进入函数调用

elfsymbol – 获取non-debugging symbol信息(plt表)

parseheap 可以对heap进行分析,得到相关信息

dumprop –在给定内存范围中Dump出所有ROP gadgets

vmmap 得到虚拟映射地址,同时可查看执行权限

heapinfo 查看bin链信息

heapbase 查看堆地址

finish 执行到函数返回

arena 查看mainarena

telescope 地址 可以查看一小段该地址的内容

dumpargs– 函数将要被调用时,显示将要被传入函数的所有参数

readelf – 获取elf头信息

x/其中n、f、u是可选的参数

x/s 地址  查看字符串

x/wx 地址  查看DWORD

x/c 地址  单字节查看

x/16x $esp+0x12 查看寄存器偏移(16代表查看16个)

set args 可指定程序运行时参数。(如:set args 10 20 30 40 50)

show args 命令可以查看设置好的运行参数。

参数意义:

s 按字符串输出

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

u 按十六进制格式显示无符号整型。

o 按八进制格式显示变量。

t 按二进制格式显示变量。

a 按十六进制格式显示变量。

c 按字符格式显示变量。

f 按浮点数格式显示变量。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有