能力值:
( LV2,RANK:10 )
|
-
-
26 楼
好东西 收藏了 谢谢楼主的分享!
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
学习了 。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
好好学习下~
|
能力值:
( LV3,RANK:20 )
|
-
-
29 楼
多谢LZ分享。SEH刚开始接触。来学习下
|
能力值:
( LV9,RANK:250 )
|
-
-
30 楼
辛苦了 感谢分享 晚上细细品读一下 ~
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
多谢,好文。。。
|
能力值:
( LV3,RANK:30 )
|
-
-
32 楼
花了点时间看了下,好文,不仅让人知其然,更让人知其所以然。只是有点疑惑,异常处理完成后,为什么不是从异常点继续执行,而是从异常处理后面的代码继续执行?接触不深,问题较菜,求解。
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
好文章,慢慢学习
|
能力值:
( LV7,RANK:100 )
|
-
-
34 楼
是从异常点继续执行还是顺着异常处理的代码块继续执行,是由程序猿提供的 lpfnFilter(即 __except 括号内的代码)的返回值决定的。
如果需求是前者,那么可以返回 EXCEPTION_CONTINUE_EXECUTION;
如果是后者那么可以返回 EXCEPTION_EXECUTE_HANDLER
|
能力值:
( LV3,RANK:30 )
|
-
-
35 楼
原来如此,异常处理后不像正常函数执行那样通过ret返回调用者,而是根据lpfnFilter的返回值,直接跳到异常处理后面的代码,或者异常点继续执行,不知我理解是否对?
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
下载附件看,帖子太长了
|
能力值:
( LV3,RANK:30 )
|
-
-
37 楼
收藏起来,慢慢研究!感谢!
|
能力值:
( LV3,RANK:20 )
|
-
-
38 楼
楼主看了两天就这么厉害了?大概看了多久啊?
交流下哈,看的时候这里一直困惑:
你写的如下://好象软件调试中也是这么说的
如果 PreviousMode 是 KernelMode,那么,
如果 FirstChance 为 TRUE,那么将该异常传达给内核调试器,如果内核调试器没有处理,那么调用 RtlDispatchException 进行处理。
如果 FirstChance 为 FALSE,那么再次将该异常传达给内核调试器,如果内核调试器没有处理,那么 BUGCHECK。
我翻别的资料有这么说的:
用户态和内核态第一次机会给调试器,第2次机会给注册的异常处理器。
如果在内核态抛出了异常并自己处理(比如除零异常自己修改除数和调整EIP),按你上面的提法如果调试器不处理就只能蓝屏?
纯粹交流哈,
|
能力值:
( LV7,RANK:100 )
|
-
-
39 楼
分析和写这篇笔记大概用了40个小时左右,但是目前在分析x64异常处理的过程中发现自己对x86这块还没有完全吃透,目前正在分析琢磨,希望晚一些能对这个笔记进行一些补充。
另外,如果自己抛出的异常,内核调试器(如果存在,后续简称KD,我懒……)会先得到处理机会,如果KD没有处理,则使用 RtlDispatchException 开始常规的异常派发,这个时候就会调用自己提供的异常处理。如果处理了整个异常派发就结束了,不会再给回到 KD。如果整个异常链上没有任何处理块能处理,那么要不就再给 KD 一次机会,要么就就 BSOD。
需要说明的是,内核态除零异常直接 BSOD,不会给 KD 机会,也不会给程序猿提供的异常处理机会
[欢迎交流
这篇笔记难免会因为我个人水平的问题出现纰漏或错误,之所以分享出来也是希望能有对这块同样感兴趣的朋友一起讨论,纠正我的错误,大家一起吃透它。]
|
能力值:
( LV12,RANK:310 )
|
-
-
40 楼
mark,学习,路过,……
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
顶LZ!
新手入门,认真学习下LZ的SEH理解,更要学习LZ的态度!
|
能力值:
( LV3,RANK:20 )
|
-
-
42 楼
恩,这几天又看了些,楼主确实吃的比我透点.
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
不错 正巧最近也在学习异常的处理!!收藏下
|
能力值:
( LV7,RANK:100 )
|
-
-
44 楼
更新记录:
v1.0.2, 2011-10-31:调整若干描述语句;增加 ExceptionNestedException 返回值的补充说明。
|
能力值:
( LV6,RANK:90 )
|
-
-
45 楼
感谢楼主,学习了,楼主的精神让人感动呀
|
能力值:
( LV9,RANK:330 )
|
-
-
46 楼
喜欢这样的技术贴。
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
谢谢了,好东西呀
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
下载了,慢慢学习,老了,学不动了,很感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
mark
|
能力值:
( LV3,RANK:30 )
|
-
-
50 楼
感谢
|
|
|