-
-
[旧帖]
[求助]在壳中用异常处理反调试出问题
0.00雪花
-
发表于:
2009-6-25 10:31
2680
-
[旧帖] [求助]在壳中用异常处理反调试出问题
0.00雪花
我在壳中用了简单的异常处理来反调试,壳用的是VC++编写的,但是如果对非VC写的程序加壳,发现可以正常运行,但是对VC程序却会出现异常,用OD跟踪发现,是反调试的异常处理那里会导致程序崩溃。不知道是什么原因?请教各位啦。
SYSTEM_INFO SysInfo;
LPVOID lpvBase;
BYTE * PBase;
GetSystemInfo(&SysInfo);
DWORD dwPageSize = SysInfo.dwPageSize;//获取页面的大小和页面保护和委托的颗粒
DWORD old;
lpvBase = VirtualAlloc(NULL,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
if(lpvBase == NULL)
return false;
PBase=(BYTE *)lpvBase;
*PBase = 0xc3;
//修改内存页面保护属性
VirtualProtect(lpvBase,dwPageSize,PAGE_EXECUTE_READ | PAGE_GUARD,&old);
__try
{
__asm call dword ptr[lpvBase];
VirtualFree(lpvBase,0,MEM_RELEASE);
return true;
}
__except(1)
{
VirtualFree(lpvBase,0,MEM_RELEASE);
MessageBox(NULL,_T("GOOD"),_T("FUCK"),0);
return false;
}
如果对非VC得加壳是正常的,如果对VC的。。就出现异常了,附件是加完壳的程序
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课