能力值:
(RANK:410 )
|
-
-
2 楼
push offset SehHandler ;这一句保存着SehHandler地址,当程序产生异常时,程序的线程将会中断并跳到这个SehHandler地址处继续运行并处理这个异常或修复这个异常,所以若程序产生异常时,我们可以找到这个地址并在这个地址设断就可以继续跟踪程序了,否则程序就会在我们眼皮底下跑了(这就是用SEH反跟踪的一例,至于用SEH如何来进行反跟踪这就看你了,如在SEH可以将Drx寄存器清0破坏调试环境等操作)。
push fs:[0]
mov fs:[0],esp
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
最初由 小虾 发布 push offset SehHandler ;这一句保存着SehHandler地址,当程序产生异常时,程序的线程将会中断并跳到这个SehHandler地址处继续运行并处理这个异常或修复这个异常,所以若程序产生异常时, 我们可以找到这个地址并在这个地址设断就可以继续跟踪程序了,否则程序就会在我们眼皮底下跑了(这就是用SEH反跟踪的一例,至于用SEH如何来进行反跟踪这就看你了,如在SEH可以将Drx寄存器清0破坏调试环境等操作)。 push fs:[0] mov fs:[0],esp 非常感谢!!!我自己在想想!!!
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
我还想知道一个问题,我想这个问题我自己实际跟一次就解决了,但是我还是想确认一下。 。。
比如:
mov eax,30h
xor ebx,ebx
div ebx //这里会产生异常
mov edx,30h
mov ecx,18h
如果我不按照前面的说的。。G到SehHandler处。。。如果我按F8的话,会不会执行mov edx,30h或者是跳到内核代码去执行!!!
|
能力值:
(RANK:410 )
|
-
-
5 楼
应该是出现调试器无法处理该异常,然后程序就会自动退出。不过我没在其他平台上试过,不太敢肯定这个,你自己写个SEH程序自己调试一下就清楚。。
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
谢谢!!!
|
|
|