文档章节

Code - Windows 堆栈恢复

NDSM
 NDSM
发布于 2014/08/05 17:10
字数 280
阅读 92
收藏 0
SEH
#include <stdio.h>
#include <windows.h>

void die_recursion()
{
	static unsigned long s=-1;
	printf("递归%lu次\n",++s);
	die_recursion();
}


/*
Return:
异常被忽略,控制流将在异常出现的点之后,继续恢复运行。
EXCEPTION_CONTINUE_EXECUTION (-1) 

异常不被识别,也即当前的这个__except模块不是这个异常错误所对应的正确的异常处理模块。
系统将继续到上一层的try-except域中继续查找一个恰当的__except模块。
EXCEPTION_CONTINUE_SEARCH (0)  

异常已经被识别,也即当前的这个异常错误,系统已经找到了并能够确认,
这个__except模块就是正确的异常处理模块。控制流将进入到__except模块中。
EXCEPTION_EXECUTE_HANDLER (1) 
*/
int get_seh_info(int seh_code)
{
	if(seh_code == STATUS_STACK_OVERFLOW)
	{
		printf("文件:%s<发生堆栈上溢>\n",__FILE__);
		return EXCEPTION_EXECUTE_HANDLER ;
	}
	else
	{
		return EXCEPTION_CONTINUE_SEARCH;
	}
}


int main()
{
	int i=0;
	for(i = 0; i < 10 ;i++)//调用死递归10次
	{
		__try
		{
			die_recursion();//死递归
		}
		__except(get_seh_info( GetExceptionCode() ) )
		{
			if( _resetstkoflw() )
			{
				printf("恢复堆栈成功\n");
			}
			else
			{
				printf("恢复堆栈失败\n");
			}
		}
	}
	return 0;
}

 

 

© 著作权归作者所有

上一篇: C++ 强货币类型
NDSM
粉丝 14
博文 47
码字总数 24990
作品 0
程序员
私信 提问
向PE文件植入后门代码技术讨论

  写在前面的话   这篇文章将介绍使用codecaves对PE文件植入后门代码。有几个很好的工具可以帮到你了。比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病毒。...

FreeBuf
2018/08/09
0
0
Windows 10 1903 的第二次累积更新,还是存在 bug?

微软开始推出 Windows 10 1903 版本的第二次累积更新,修复了一些问题,主要有两个,第一个是 Windows 事件查看器自定义视图时崩溃的问题,另一个是夜间灯关闭后无法工作的问题,他们把这次更...

afterer
06/29
5.6K
22
try catch无法捕获 StackOverflowException

在以前版本的 .NET Framework 中,您的应用程序可以捕获 StackOverflowException 对象(例如,从无限递归恢复)。 但是,现在我们建议不要使用这种做法,原因是需要大量附加代码才能可靠地捕...

C_Sharp大大
2013/08/17
306
0
理解Canvas Context 的save() 和 restore()

🙂简述 之前写过一个基于canvas实现的共享写作画板应用,当时在写这个应用的有画板绘制的“前进”和“后退”功能,当时查了MDN上的Canvas文档,看到了有save()和restore()两个方法。文档上...

forrest酱
07/03
0
0
Windbg查看调用堆栈(k*)

https://www.52pojie.cn/thread-664189-1-1.html 无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义...

nothingfinal
2017/11/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
27分钟前
4
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
38分钟前
2
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
38分钟前
3
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
44分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
44分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部