欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

知识杂记

程序员文章站 2022-07-13 08:05:24
...

知识杂记之gdb peda命令(1)

examine命令(简写是x)来查看内存地址中的值:

x/<n/f/u> <addr>

参数:
(1)n、f、u是可选的参数。三个参数能够一起使用

n是一个正整数,表示需要显示的内存单元的个数。
就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。

f 表示显示的格式。
如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。

u 表示从当前地址往后请求的字节数。
如果不指定的话,GDB默认是4个bytes。
u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。

<addr>表示一个内存地址

注意:严格区分n和u的关系,n表示单元个数,u表示每个单元的大小。

x/3uh 0x54320 

表示:从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示输出三个单位,u表示按无符号十进制显示。

gdb-peda命令:

显示/设定gdb的ASLR(地址空间配置随机加载)设置(显示/开启/关闭):

aslr
aslr on
aslr off

检查二进制文件的各种安全选项:

checksec

函数将要被调用时,显示将要被传入函数的所有参数(默认会在反汇编代码下方自动显示):

dumpargs

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

dumprop

从debugged ELF文件获取头文件信息:

elfheader 

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

elfsymbol  

查询一个内存范围的所有的地址和参考地址:

lookup 

Patch memory start at an address with string/hexstring/int

patch 

生成字符串模板 写入内存 用于定位溢出点:

pattern 

生成特定长度字符串:

pattern create size 

定位字符串:

pattern offset value

Display various info from /proc/pid/:

procinfo 

Show various PEDA options and other settings:

pshow 

Set various PEDA options and other settings:

pset 

获取elf头信息 :

readelf 

Get common ROP gadgets of binary or library :

ropgadget

Search for ROP gadgets in memory:

ropsearch 

在内存中查找字符串,支持正则表达式 :

searchmem|find 

生成shellcode :

shellcode 

Generate python exploit code template:

skeleton

可以用来查看栈、bss段是否可以执行:

vmmap

XOR a memory region with a key:

xormem