[PWN][进阶篇]使用GDB附加调试64位程序(上)

简介: [PWN][进阶篇]使用GDB附加调试64位程序

使用GDB附加调试64位程序

pwntools开发脚本时如何调试:

1、使用proc.pidof§函数先将被测函数的PID打印出来

2、 用GDB Attach上去调试即可


本次实验的代码如下:

image.png

使用checksec指令来看看

image.png

没有nx保护,没有pie保护,地址不随机化,没有栈执行的保护,没有stack保护,64位的程序

使用objdump指令看看汇编语句

1.png

典型的64位可以看到rbp什么的

image.png

看到了expliot函数,这个是我们要利用的函数

image.png

然后开启gdb,老规矩,pattern create 200

r

1.png

image.png

现在开始写exp


代码如下

image.png

输出pid主要是为了下一步附加进程分析用的,p64后面的地址是exploit的函数入口地址

image.png

getshell成功


调试的话要在sendline之前暂停一下,把gdb附加进去

image.png

暂停成功

image.png

附加成功,暂停到了cmp指令

1.png

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
7天前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
13 1
|
7天前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
11 0
|
23天前
|
NoSQL Linux C++
Linux C/C++ gdb调试正在运行的程序
Linux C/C++ gdb调试正在运行的程序
|
23天前
|
NoSQL Linux C++
Linux C/C++ gdb调试core文件
Linux C/C++ gdb调试core文件
|
23天前
|
NoSQL Linux C++
Linux C/C++ gdb调试
Linux C/C++ gdb调试
|
1月前
|
NoSQL Ubuntu 测试技术
【GDB自定义指令】core analyzer结合gdb的调试及自定义gdb指令详情
【GDB自定义指令】core analyzer结合gdb的调试及自定义gdb指令详情
29 1
|
1月前
|
NoSQL 编译器 C语言
【GDB调试技巧】提高gdb的调试效率
【GDB调试技巧】提高gdb的调试效率
29 1
|
1月前
|
NoSQL Ubuntu 开发工具
【gdb调试】在ubuntu环境使用gdb调试一棵四层二叉树的数据结构详解
【gdb调试】在ubuntu环境使用gdb调试一棵四层二叉树的数据结构详解
21 1
|
1月前
|
NoSQL C++ 开发者
【C/C++ 调试 GDB指南 】GDB中的‘info’命令:一次全面的探索
【C/C++ 调试 GDB指南 】GDB中的‘info’命令:一次全面的探索
99 0
|
1月前
|
NoSQL Shell 程序员
【C/C++ 调试 GDB指南 】GDB调试工具介绍:从基础到高级
【C/C++ 调试 GDB指南 】GDB调试工具介绍:从基础到高级
124 0