系统检测到的基于堆栈的缓冲区溢出–如何修复[克隆磁盘]

概括 :

系统在此应用程序中检测到基于堆栈的缓冲区溢出

一些用户报告说,他们被提示 系统检测到基于堆栈的缓冲区溢出 出于奇怪的原因。在本文中,您将充分了解此问题,并获得以下几种可能的解决方案: MiniTool软件 。





快速导航:

关于基于堆栈的缓冲区溢出错误

基于堆栈的缓冲区溢出(或基于堆栈的缓冲区溢出)是一种错误,指示程序将比实际分配给该缓冲区的数据更多的数据写入位于堆栈上的缓冲区。这是一般的编程故障。

此问题可能发生在您的驱动程序上,并导致 驱动程序溢出堆栈缓冲区蓝屏,导致死亡错误 。但更常见的是,它与您的应用程序有关,一旦出现,堆栈中的相邻数据可能会损坏,程序可能会崩溃或无法正常运行。

论坛上的许多用户都报告了基于堆栈的缓冲区错误,并且在此处显示了一个案例:



基本上,我一直收到错误,错误是–“系统在此应用程序中检测到基于堆栈的缓冲区溢出。此超限可能会允许恶意用户控制此应用程序。 (c0000409)”,我拥有可以超级运行AAA游戏的版本,因此它不是我的硬件。我正在用我的SSD运行它;所有驱动程序均已更新; Windows 10 64位已完全更新;我已经多次卸载了游戏,然后重新下载了缓存。有人对我有什么建议吗? -来自www.reddit.com

检测到基于堆栈的缓冲区溢出

根据遇到此问题的用户的报告,基于堆栈的缓冲区错误消息的溢出主要出现在以下两种情况下:

  • 由于Windows遇到某些问题,以安全模式打开计算机后,例如explorer.exe不断打开。
  • 尝试安装Twitch或Discord桌面应用程序时。

您可能尝试了各种解决方案,但徒劳无功。为了摆脱这个问题,我收集了一些可能的方法,并将其全部放在本文中。希望它们对您有帮助。



笔记: 如果此错误使您无法正常访问应用程序或设置,则可能需要将计算机引导至安全模式,然后尝试以下解决方案。而且,由于此问题可能会导致数据丢失,因此最好 恢复丢失的数据 在您采取措施进行修复之前。

如何解决基于堆栈的缓冲区问题的溢出

  1. 扫描您的计算机是否有病毒或恶意软件
  2. 运行SFC和DISM命令
  3. 干净启动计算机
  4. 执行系统还原
  5. 尝试启动修复
  6. 备份数据并重新安装Windows

修复1:扫描您的计算机是否有病毒或恶意软件

如错误消息所示,特定程序可能正在以特殊特权运行,并将控制权交给恶意用户,因此受到某些恶意代码或程序的影响。因此,有必要对您的计算机进行扫描,以检查是否存在任何潜在的病毒或恶意软件。

建议执行 Windows Defender脱机扫描 以及如何执行此操作:

步骤1 :右键单击 开始 按钮并选择 设定值 从菜单中。



第2步 : 导航 更新与安全 > Windows安全性

第三步 : 点击 病毒和威胁防护保护区 右窗格的“部分”。

第4步 :当您收到 Windows Defender安全中心 窗口中,单击 运行新的高级扫描



第5步 :然后,选择 Windows Defender脱机扫描 然后点击 现在扫描 按钮。

执行Windows Defender脱机扫描

这种扫描将帮助您删除难以删除的恶意软件,并且需要重新启动才能完成该过程。大约需要15分钟,您应该耐心等待扫描完成。

修复2:运行SFC和DISM命令

此外,损坏的系统文件或Windows映像文件也可能导致在计算机上检测到缓冲区溢出。要解决这种情况下基于堆栈的缓冲区溢出问题,可以尝试使用 系统文件检查器 (SFC)和 部署映像服务和管理 (DISM)实用程序。

笔记: 由于运行DISM需要Internet连接,因此您应该在 带网络的安全模式 如果您无法正常启动它。

步骤1 : 按 视窗 + [R 调用 对话。

第2步 : 输入 指令 然后按 Ctrl键 + 转移 + 进入 打开 命令提示符 作为管理员。

第三步 :键入命令 证监会/ scannow 然后按 进入 开始扫描系统文件。一旦发现任何损坏的文件,此工具将用缓存的副本替换它们,并且扫描过程将花费一些时间。如果这样可以成功解决问题,那很好。否则,您需要继续下一步。

运行SFC扫描

第4步 :输入以下命令行,然后按 进入 每次执行之后:

  • DISM /在线/ Cleanup-Image / ScanHealth
  • DISM /在线/ Cleanup-Image / RestoreHealth

操作成功完成后,退出窗口并重新启动计算机。然后,检查基于堆栈的缓冲区溢出问题是否已解决。此外,您可以根据需要再次运行SFC扫描。

修复3:干净启动计算机

如果以系统开头的某些第三方应用程序损坏或遇到问题,则系统可能会检测到基于堆栈的缓冲区溢出。在这种情况下,您可以干净启动计算机,以防止所有第三方程序或服务从系统启动。为此,只需按照以下说明进行操作:

步骤1 : 按 视窗 + 小号 , 输入 msconfig 然后点击 系统配置 从搜索结果中将其打开。

第2步 : 去 服务 标签,检查 隐藏所有Microsoft服务 然后点击 禁用所有 按钮停止所有第三方服务。

禁用第三方服务

第三步 : 切换到 启动 标签,然后单击 打开任务管理器

第4步 :然后,选择一个程序并单击 禁用 。对列表中的其他程序重复该操作,以防止这些第三方应用程序从系统启动并确认更改。

第5步 :当您回到 系统配置 窗口中,单击 申请好的 保存更改。

之后,重新启动计算机以使更改生效,问题应该已经解决。顺便说一句,您可以逐个重新启用这些程序以找出有问题的程序,然后使其保持禁用状态或将其删除。

修复4:执行系统还原(如果可用)

如果您启用了“系统保护”功能来保护您的计算机和 创建了一个还原点 至少在基于堆栈的缓冲区溢出问题发生之前,也许您可​​以尝试将计算机还原到以前的还原点以解决该问题。

笔记: 如果您无法进入安全模式,则可以选择 系统还原 模块直接在 高级选项 前往之前的页面 启动设定

步骤1 :在中键入restore 搜索 框并选择 创建一个还原点 从结果。

第2步 : 这 系统属性 窗口将出现,您需要单击 系统还原 下方的按钮 系统保护 标签。

单击系统还原

第三步 :跳过欢迎页面。选择最新的还原点,然后单击 下一个 按钮。

小费: 要确保在此过程中要卸载或更改程序,只需单击 扫描受影响的程序

选择一个还原点

第4步 :您将需要在下一页中确认还原点。确保所有任务都已保存,然后单击 结束 按钮执行此操作,需要重新启动计算机以应用更改。

在那之后,这个问题应该被删除。

修复5:尝试启动修复

如前所述,如果系统检测到缓冲区溢出,则可能 您的计算机被冻结 或无法启动。如果上述方法不能为您解决问题,那么该是时候尝试启动修复了。

为此,您不必进入安全模式,这里有2个常用选项–在“高级启动设置”中执行操作或使用可启动媒体。让我们一一看一下。

选项1:在高级启动设置中执行启动修复

步骤1 :强制关闭计算机3次以进入Windows恢复环境,然后单击 查看高级维修选项

第2步 : 去 疑难排解 > 高级选项 然后选择 启动修复

选择启动修复

第三步 :然后,您将需要选择一个用户帐户并输入相应的密码。只需按照屏幕上的提示进行操作,然后单击 继续 按钮。

选择用户帐号

该工具将开始诊断您的计算机并修复检测到的潜在问题,这些问题可能导致计算机无法正确加载。维修过程将需要一些时间才能完成,您应该耐心等待。

在此过程中,名为 SrtTrail.txt 创建并保存在以下目录中 C: Windows System32 LogFiles Srt 。您可以检查它以获取此维修的详细信息。

选项2:使用Windows安装媒体执行启动修复

如果无法使用常用方法访问恢复环境,则可以选择使用安装介质,例如USB可引导介质。

步骤1 :使用以下方法刻录USB安装介质 Windows 10媒体创建工具 在普通计算机上。

第2步 :将可启动的USB驱动器连接到有问题的设备,然后通过更改BIOS设置从该设备启动。

第三步 :当您收到 Windows安装程序 窗口,输入您的语言和其他首选项,然后单击 下一个 按钮。

第4步 : 点击 维修电脑 进入恢复环境并启动 启动修复 通过参考以上内容中的步骤。

单击修复您的计算机

修复6:备份数据并重新安装Windows

如果以上方法均无法摆脱基于堆栈的缓冲区溢出错误消息,则可能需要重新安装Windows,以使设备再次正常工作。

这是不得已的方法,因为重新安装Windows将导致系统磁盘上的数据丢失。因此,您必须提前备份或传输所需的文件。如果要备份大量文件,最简单的方法应该是备份整个磁盘。为此,您可以使用 MiniTool分区向导 公用事业。

步骤1 :使用购买的许可证密钥注册到MiniTool分区向导Pro终极版。

立即购买

笔记: 如果您无法正常访问桌面,则需要在另一台普通计算机上创建可启动媒体。然后,从介质启动计算机,然后进入MiniTool恢复环境以执行以下操作。

第2步 :在主界面中,选择系统磁盘,然后单击 复制磁盘 从左窗格。

单击复制磁盘

第三步 :选择要保留备份的目标磁盘,然后单击 下一个

警告: 目标磁盘上的所有数据都将被破坏,因此请确保没有重要的数据。

第4步 : 选择 复制选项 (默认设置很好),确认新磁盘上分区的大小和位置,然后单击 下一个

查看要进行的更改

第5步 :阅读有关如何从目标磁盘引导的信息,然后单击 结束 。回到主界面后,单击 申请 执行挂起的操作。

多亏了MiniTool分区向导,我已经快速备份了驱动器上的所有数据。 点击鸣叫

现在,您已经备份了系统磁盘,您可以重新安装Windows,而无需担心。

为此,您可以继续使用在前面提到的方法中创建的Windows安装介质。进入后 设置 Windows,请点击 现在安装 代替 维修电脑 ,然后按照给定的说明完成安装。

“系统检测到此应用程序中基于堆栈的缓冲区溢出”对于我来说确实是一个令人讨厌的问题。幸运的是,我已经使用本文中提供的一种方法自己修复了该问题。 点击鸣叫

底线

您对此帖子有任何疑问吗?还是您有更好的方法来解决我们讨论中的问题?请告诉我们。您可以在下面的评论框中留言,或通过以下方式与我们联系 [受电子邮件保护]

系统检测到的基于堆栈的缓冲区溢出常见问题解答

什么是缓冲区溢出攻击? 缓冲区溢出(或缓冲区溢出)攻击是一种常见的编程故障,它是堆栈破坏攻击的一部分。 堆栈溢出和缓冲区溢出有什么区别? 堆栈溢出是指执行堆栈超​​出了为执行程序保留的空间,而缓冲区溢出意味着程序将数据写到了为缓冲区分配的内存之外。堆栈溢出是缓冲区溢出的一种特定类型。 为什么缓冲区溢出是危险的? 因为缓冲区溢出会导致计算机严重问题,例如系统崩溃甚至安全漏洞。