知识杂记
知识杂记之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
上一篇: MySQL数据库开发的三十六条军规(转)
下一篇: Oracle相关知识点