Changing Protection Attributes
Although the practice is rare, it is possible to change the protection attributes associated with a page or pages of committed physical storage. For example, say you’ve developed code to manage a linked list, the nodes of which you are keeping in a reserved region. You could design the functions that process the linked list so that they change the protection attributes of the committed storage to PAGE_READWRITE
at the start of each function and then back to PAGE_NOACCESS
just before each function terminates.
By doing this, you protect your linked-list data from other bugs hiding in your program. If any other code in your process has a stray pointer that attempts to access your linked-list data, an access violation ...
Get Windows® via C/C++, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.