Я пытаюсь прочитать всю память процесса. Я использовал это
ProcessModule pm = process.MainModule;
temp = new byte[pm.ModuleMemorySize];
byte[] d = new byte[temp.Length];
int read;
int size = temp.Length;
MessageBox.Show("Size: " + size);
if (ReadProcessMemory(process.Handle, pm.BaseAddress, temp, size, out read)) {
//d = temp;
fileData = encoder.GetString(temp);
} else MessageBox.Show("Error: " + Marshal.GetLastWin32Error());
Иногда это работает совершенно нормально, но с другими приложениями не работает и возвращает «Ошибка 299».
Я запускаю свое приложение как x64 и как администратор. Кажется, не имеет значения, какой тип процесса я пытаюсь прочитать. Даже большие (26 МБ) читаются нормально. Затем я пытаюсь прочитать одну из моих других программ на C #, но она не работает.
РЕДАКТИРОВАТЬ: Возможно ли, что это происходит только при попытке чтения процессов C # .exe? Почему это могло быть?