首页 > 编程语言 >编写并调试一个堆栈溢出的程序

编写并调试一个堆栈溢出的程序

时间:2024-03-25 18:55:59浏览次数:39  
标签:name SO 调试 堆栈 overflow stack 溢出

编写并调试一个堆栈溢出的程序

编写存在栈溢出漏洞的 c++ 程序:

stack_overflow.cpp

#include <iostream>
using namespace std;
void hello(){
    char name[8];
    scanf("%s",name);
    printf("hello,%s!\n",name);
}
void stack_overflow(){
    printf("Aha,suprise!\n");
}
int main(){
    hello();
    return 0;
}

对于 GCC 编译器,可以尝试使用 -fno-stack-protector​ 选项来禁用堆栈保护。

使用 -g ​使其可调试

编译命令:g++ stack_overflow.cpp -o stack_overflow -g -fno-stack-protector

使用 gdb 查看 stack_overflow 函数的地址:0x000055555555520e

命令是 info addr stack_overflow

0e 对应的字符是 SO

image

在终端中,你可以直接输入 SO 字符的 ASCII 码,即按下 Ctrl+V,然后输入 Ctrl+N(对应 ASCII 码的 0x0E),这样就能够输入 SO 字符。

所以该地址的 ASCLL 编码为:^NRUUUU (小端序)

image

image

前面用 16 个'a'用来覆盖 name 缓冲区和栈上的 EBP,后面用 ^NRUUUU 覆盖栈上的 EIP

image

如此即可篡改返回地址,执行 shellcode

​​

标签:name,SO,调试,堆栈,overflow,stack,溢出
From: https://www.cnblogs.com/l1fan/p/18095074/write-and-debug-a-program-overflowing-zuzpoy

相关文章

  • 小程序调试工具内置小程序自动化测试工具试用
    小程序调试工具加载完小程序后,左上角菜单依次选择“工具-自动化测试”  打开自动化测试工具页面后等待程序加载完,点击“开始录制”  点击左侧小程序预览窗口,用例详情内生成执行步骤(用例步骤),完成后点击停止录制 回到小程序调试工具,点击右上角“云测” 打开云测管......
  • BOSHIDA DC电源模块的设计与调试技巧
    BOSHIDADC电源模块的设计与调试技巧DC电源模块的设计与调试是电子工程师在实际项目中常常需要面对的任务。一个稳定可靠的DC电源模块对于电路的正常运行起到至关重要的作用。以下是一些设计与调试的技巧,帮助工程师们更好地完成任务。 第一,正确选择电源模块的参数是至关重要......
  • 什么是栈溢出
    什么是栈溢出?介绍了解栈溢出,首先要了解什么是栈。栈是一种典型的先进后出(FirstinLastOut)的数据结构,其操作主要有压栈(push)与出栈(pop)两种操作。进栈(PUSH):将一个数据放入栈里叫进栈(PUSH),相当于在扑克牌的在最上面放了一张新的扑克牌。出栈(POP):将一个数据从栈里取出叫......
  • windows server2012安装百度云网盘导致内存溢出
    步骤首先需要下载软件shexview,一款免费的软件,用于查看Windows资源管理器安装的插件。下载地址https://www.nirsoft.net/utils/shexview-x64.zip下载后解压运行shexview.exe: 打开能看到Windows资源管理器安装的插件,可以看到我已经将所有百度网盘的插件全部禁用掉了。 ......
  • 毕业设计3489基于微信小程序的就业管理系统设计与实现【源代码+文档+调试+讲解视频】
    摘要本文旨在介绍一个基于微信小程序的就业管理系统的设计与实现。该系统通过服务器端和客户端两种用户角色,实现了个人用户管理、企业管理、就业指导管理、职位管理以及系统管理等功能。同时,系统提供了用户友好的界面设计和便捷的操作体验,为求职者和企业提供了一个高效、便......
  • 扔掉print,用icecream来调试你的代码
    print是我们平时写些python小工具时,最常用的调试工具。因为开发代码时,常常通过print将执行流程、变量的值以及其他关键信息输出到控制台来观察,以便了解程序执行情况和调试bug。但是,print的输出过于简单,在输出变量内容,函数调用,执行过程等相关信息时,往往需要自己手动去补充很多的输......
  • 关于使用PZ6808L开发板,调试USART3的问题分析
    首先,写代码方面相信,大家都可以搞定,网上也有很多人写的程序,这里关于如何驱动USART3,就不进行赘述了。关于这款开发板RS232模块,是给F4使用的,但是他留了两个接线柱,就是F1的USART3的两个接口。接下来就是接线的问题,如下图,将这个4个接线柱,两两交叉进行连接,跳线帽肯定搞不了,如下图......
  • Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工
    一、前言在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的硬件设备,互通有无,你中有我我中有你,实现良性竞争。ONVIF是一个全球性的开放式行业协议,其目标是......
  • 权限提升-Windows权限提升篇&溢出漏洞&宝塔面板Bypass&CS插件化&MSF模块化
    知识点1、Web到Win系统提权-权限差异原因2、Web到Win系统提权-溢出漏洞(MSF&CS)3、Web到Win系统提权-集成软件(哥斯拉模块Bypass)章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我们要学习权限提升转移......
  • 基于ssm的风景文化管理平台,旅游信息管理系统,附源码+数据库+论文+PPT,包远程安装调试
    1、项目介绍根据木里风景文化管理平台的功能需求,进行系统设计。前台功能:用户进入系统可以实现首页,旅游公告,景区,景区商品,景区美食,旅游交通工具,红黑榜,个人中心,后台管理,购物车等进行操作;后台主要是管理员,管理员功能包括首页,个人中心,用户管理,旅游公告管理,景区管理,景区商品管理,门......