我可以在C/C++中設置/禁止讀取(或寫入) - 普通數組最後幾個元素的訪問權限嗎?由於我不能使用其他進程的內存,我懷疑這可能是可能的,但是如何?我Google搜索,但無法找到。最近5個元素的閱讀權限
如果我可以,怎麼樣?
因爲我想嘗試這樣的事:
SetPrivilage(arr,LAST_5_ELEMENTS,false);
try
{
for(int i=0;;i++) //without bound checking. i know its evil. just trying if it is possible
{
arr[i]++; //array is 1-billion elements
}
}
catch(int catch_end_of_array)
{
printf("array-inc complete");
}
Memory:
|start of array |00|01|02|03|04|05|06|07|..|..|1B|start of protected page|xx|xx|xx|xx|xx|xx|xx|xx|xx|xx|xx|xx|xx|
讓我們假設我學會了如何保護一個頁面,那麼怎麼可能我宣佈在靠近頁面陣列,使得陣列的終點將是下一個到頁面。 ?
由訪問未分配給您的進程的內存導致的段錯誤不能用於設置讀/寫訪問。如果您需要讀/寫訪問權限,請創建您自己的數組類並在代碼中實現它。 – ronalchn
你爲什麼問到?你的總體目標是什麼?可能還有其他方法可以實現這個目標... –
我正在嘗試使用turn segfault進入優勢 –