WEB开发网
开发学院网络安全黑客技术 SEH in ASM 研究(一) 阅读

SEH in ASM 研究(一)

 2007-01-14 20:14:54 来源:WEB开发网   
核心提示: C0000005h读写内存冲突C0000094h非法除0C00000FDh堆栈溢出或者说越界80000001h由Virtual Alloc建立起来的属性页冲突C0000025h不可持续异常,程序无法恢复执行,异常处理例程不应处理这个异常C0000026h在异常处理过程中系统使用的代码,如果

C0000005h----读写内存冲突

C0000094h----非法除0

C00000FDh----堆栈溢出或者说越界

80000001h----由Virtual Alloc建立起来的属性页冲突

C0000025h----不可持续异常,程序无法恢复执行,异常处理例程不应处理这个异常

C0000026h----在异常处理过程中系统使用的代码,如果系统从某个例程莫名奇妙的返回,则出现此代码,

如果RtlUnwind时没有Exception Record参数也同样会填入这个代码

80000003h----调试时因代码中int3中断

80000004h----处于被单步调试状态

注:也可以自己定义异常代码,遵循如下规则:

       _____________________________________________________________________+
       位:   31~30      29~28     27~16     15~0
       _____________________________________________________________________+
       含义:  严重程度     29位      功能代码    异常代码
            0==成功    0==Mcrosoft  MICROSOFT定义 用户定义
            1==通知    1==客户
            2==警告     28位
            3==错误    被保留必须为0

ExceptionFlags 异常标志

0----可修复异常

1----不可修复异常

2----正在展开,不要试图修复什么,需要的话,释放必要的资源

pExceptionRecord 如果程序本身导致异常,指向那个异常结构

ExceptionAddress 发生异常的eip地址

ExceptionInformation 附加消息,在调用RaiseException可指定或者在异常号为C0000005h即内存异常时含义如下

上一页  1 2 3 4 5 6 7  下一页

Tags:SEH in ASM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接