Вопрос чтение данных в оперативной памяти за пределами программы

Регистрация
24 Май 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
хочу прочитать из оперативной памяти некоторые значения приводя их к типу
имеется вот такой код:
int *ptr3 = (int*)0x000000000000;

while (ptr3 < (int*)0x000000000000 + (sizeof(int) * 25)){
cout.width(16);
cout << ptr3 << " : " << endl;
ptr3 += sizeof(int);
}

все бы ничего но я не могу взять и разименовать указатель, если в cout использую *ptr3 то ничего просто не работает
как можно просто взять и читать "чужие" данные из оперативной памяти?
 
К чужим данным ты таким образом доступ не получишь. И нулевой указатель разыменовать нельзя - потому как null.
 
В современных операционных системах у каждого процесса (программы, исполняемого файла) свое адресное пространство. Это значит, что память изолирована и процесс не может читать данные другого процесса (а адреса памяти внутри процесса определенным образом отображаются на реальную память с использованием архитектурных особенностей процессора). Это сильно повышает стабильность работы системы, ведь ошибки в одной программе не могут испортить работу другой. Тем не менее операционная система может поддерживать намеренное чтение программой чужого адресного пространства, но это все делается через запросы операционной системе. (Например в Windows есть функция ReadProcessMemory).
 
Назад
Сверху