首页
社区
课程
招聘
[求助]关于VS2008编译特性中所谓的Register safe exception handler
发表于: 2009-8-19 18:45 5148

[求助]关于VS2008编译特性中所谓的Register safe exception handler

2009-8-19 18:45
5148
在VS2008 release方式下

我这样设置的异常处理不起作用了
push offset handler 
push dword ptr fs:[0] 
mov fs:[0],esp 


warning C4733: Inline asm assigning to 'FS:0' : handler not registered as safe handler

根据MS官方的文档
http://msdn.microsoft.com/en-us/library/ha52ak6a.aspx

给出的这俩方案
To resolve this warning, either remove the FS:0 definition or turn off this warning and use .SAFESEH to specify the safe exception handlers.

我想问下各位哥哥,还有其他办法么?

有什么 #pragma 之类的可以禁掉这个注册安全异常处理例程么?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
#pragma warning( disable : 4733 )
链接的时候指定 /SAFESEH:NO
2009-8-19 19:44
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
		IMAGE_DOS_HEADER *dos_head=(IMAGE_DOS_HEADER *)GetModuleHandle(NULL);
		IMAGE_NT_HEADERS32 *nt_head=(IMAGE_NT_HEADERS32 *)(((DWORD)dos_head)+((DWORD)dos_head->e_lfanew));
		DWORD OldProtect = 0;
		VirtualProtect(dos_head, 0x1000, PAGE_READWRITE, &OldProtect);
		nt_head->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress = 0;
		nt_head->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size = 0;
		VirtualProtect(dos_head, 0x1000, OldProtect, &OldProtect);


网上找到的资料,留给以后碰到类似问题的人.

可以把数据目录LOAD_CONFIG给空,可以绕过这种注册安全异常Handler
2009-8-20 11:59
0
游客
登录 | 注册 方可回帖
返回
//