C - Содержание оперативной памяти в файл
Нужно записать содержание всей ОЗУ в файл, открфваю файл, делаю указатель на 0 и в цикле пытаюсь писать в файл все инврементируя указатель. Пишет "ошибка сегментирования".
Пиши по 64К
Если ты пишешь под виндой, то максимум что ты сможешь сделать, это прочитать содержимое адресного пространства процесса. ОЗУ ты так просто не прочитаешь.
Ты сможешь прочитать только адресное пространство своего процесса, в другие процессы тебя винда не пустит (конечно, если ты не экспериментируешь в Win3.x).
А как тогда работат сканирование памяти антивирусами?
А ты видел в Task Manager висит обычно DLL-ка антивируса (доктора вэба это spidernt.dll). Вот она инжектируется в другие процессы (как?? это написано в книге Рихтера "Разработка под Windows"). Каждый процесс может выставить флаги разрешений для обращени к его адресному пространству.
Догадывался. :) Тогда примерно таким способом и надо писать содержимое памяти в файл.
Надо делать драйвер, который из ring0 будет читать память. Наверняка в ядре есть функция для чтения памяти по линейному адресу