能力值:
( LV2,RANK:10 )
|
-
-
2 楼
把你的编译后的exe的两个版本打包发上来看看?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
debug文件和release文件是有点区别,对异常的处理也有一些不同,LZ用OLLY看一下异常链上有没有增加相应的异常处理函数入口地址
|
能力值:
(RANK:1130 )
|
-
-
4 楼
push exception_handler
改成
push offset exception_handler
试试看
|
能力值:
(RANK:410 )
|
-
-
5 楼
__asm
{
push offset exception_handler; set exception handler
push dword ptr fs:[0h]
mov dword ptr fs:[0h],esp
xor eax,eax;reset EAX invoke int3
int 3
pop dword ptr fs:[0h];restore exception handler
add esp,4
mov esp,ebp
pop ebp
retn
exception_handler:
mov eax,[esp+0xc]
inc dword ptr [eax+0xb8]
xor eax,eax
ret 16
}
|
能力值:
(RANK:410 )
|
-
-
6 楼
非常感谢大家,才看到这么多朋友回复。
今天太晚了,明天试验下,不行的话,我再把exe发上来请教。
|
能力值:
(RANK:410 )
|
-
-
7 楼
一样的情况
[QUOTE=小虾;462102]__asm
{
push offset exception_handler; set exception handler
push dword ptr fs:[0h]
mov dword ptr fs:[0h],esp
xor eax,eax;rese...[/QUOTE]
我单独创建了个MFC对话框,按钮事件中完整拷贝上面的代码,没有加其它代码。出现同样的情况。
debug下的exe文件可以触发异常。release的exe文件则不能,直接退出。
高手帮忙指点下。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
vs2003的编译器选项的问题,release把链接器的 /SAFESEH:NO 开启,就可以了.
LoadConfig与seh异常处理是有关系的.
你用LordPE看debug版,没有loadconfig目录,r版就有.
如果是生成的exe,直接把pe文件的loadconfig目录清0,程序运行就又可以正常捕获异常.
参考论坛的文章http://bbs.pediy.com/showthread.php?t=46690&highlight=seh 尿尿完了,继续睡觉..............
|
能力值:
(RANK:410 )
|
-
-
9 楼
兄弟,太感谢了。。。。
|
能力值:
(RANK:1130 )
|
-
-
10 楼
原来你不是用的VC6啊。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
以后写出壳来了记得便宜卖我一份就行.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
学习了。。。
|
|
|