Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 写入内存缓冲区并检查它是否已满,Win32平台上是否存在SEH异常? P>是否有可能用Win32 API分配一个大约64KB大小的内存缓冲区,并在缓冲区之后有一个“保护区”(我不知道正确的术语),这样C++代码会写入缓冲区,如果缓冲区满了,它会写一个SEH异常,并且它试图写入“保护区”? < P>是的。使用VirtualAlloc。通过结合使用VirutalProtect,您甚至可以将此保护区仅设置为内存页大小(4096字节,而不是整个64KB)_Winapi_Seh - Fatal编程技术网

Winapi 写入内存缓冲区并检查它是否已满,Win32平台上是否存在SEH异常? P>是否有可能用Win32 API分配一个大约64KB大小的内存缓冲区,并在缓冲区之后有一个“保护区”(我不知道正确的术语),这样C++代码会写入缓冲区,如果缓冲区满了,它会写一个SEH异常,并且它试图写入“保护区”? < P>是的。使用VirtualAlloc。通过结合使用VirutalProtect,您甚至可以将此保护区仅设置为内存页大小(4096字节,而不是整个64KB)

Winapi 写入内存缓冲区并检查它是否已满,Win32平台上是否存在SEH异常? P>是否有可能用Win32 API分配一个大约64KB大小的内存缓冲区,并在缓冲区之后有一个“保护区”(我不知道正确的术语),这样C++代码会写入缓冲区,如果缓冲区满了,它会写一个SEH异常,并且它试图写入“保护区”? < P>是的。使用VirtualAlloc。通过结合使用VirutalProtect,您甚至可以将此保护区仅设置为内存页大小(4096字节,而不是整个64KB),winapi,seh,Winapi,Seh,请注意,对于由操作系统处理的堆栈,您只能通过setthreadstackguarange设置堆栈溢出前的缓冲区数量,以及\u resetstkoflw在堆栈溢出异常发生后修复(还原)保护来控制此操作。是否可能。如果您使用的是VisualStudio,那么有很多功能可以帮助开发人员发现缓冲区溢出:在调试构建中,malloc正是这样做的。

请注意,对于由操作系统处理的堆栈,您只能通过
setthreadstackguarange
设置堆栈溢出前的缓冲区数量,以及
\u resetstkoflw
在堆栈溢出异常发生后修复(还原)保护来控制此操作。

是否可能。如果您使用的是VisualStudio,那么有很多功能可以帮助开发人员发现缓冲区溢出:在调试构建中,malloc正是这样做的。