使用GDB附加调试64位程序
【摘要】 使用GDB附加调试64位程序
@TOC
pwntools开发脚本时如何调试:
1、使用proc.pidof§函数先将被测函数的PID打印出来
2、 用GDB Attach上去调试即可
本次实验的代码如下:
使用checksec指令来看看
没有nx保护,没有pie保护,地址不随机化,没有栈执行的保护,没有stack保护,64位的程序
使用objdump指令看看汇编语句
典型的64位可以看到rbp什么的
看到了expliot函数,这个是我们要利用的函数
然后开启gdb,老规矩,pattern create 200
r
现在开始写exp
代码如下
输出pid主要是为了下一步附加进程分析用的,p64后面的地址是exploit的函数入口地址
getshell成功
调试的话要在sendline之前暂停一下,把gdb附加进去
暂停成功
附加成功,暂停到了cmp指令
然后exp那边先运行了,获取了shell,然后在gdb这边一直单步
单步到这里,我们分析一下,gets中我们会获取什么,是不是我们刚才填充的a啊,对吧
我们可以看到寄存器中都是a,继续单步
我们ret到了expliot函数那里,汉看到了call system函数
调用成功,nice!!如下图
当我们修改一下exp
我们运行一下看看哈
希望大家有所收获!!!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)