Объединяя 2 космических воспоминания - PullRequest
0 голосов
/ 10 декабря 2010


Есть ли способ прочитать другую память процесса, как если бы ее память была частью моей памяти процесса в C ++ / Windows (без использования ReadProcessMemory)?

А как насчет "CreateRemoteThread"? Я хочу иметь возможность читать память другого процесса, но не только в моем удаленном потоке и из самого приложения. это сделает работу?

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

В MSDN есть пример, который объясняет, как использовать CreateFileMapping для разделения памяти между двумя процессами.

По сути, вы создаете отображение файла с явным именем, используя файл подкачки какрезервное хранилище, затем откройте сопоставление этого файла во втором процессе с тем же именем.Чтобы отобразить один и тот же адрес в обоих процессах, вам нужно будет передать предварительно согласованный диапазон памяти и передать его в MapViewOfFileEx.Имейте в виду, что вы не можете гарантировать, что какой-либо адрес памяти не используется между двумя процессами в целом, поэтому вам может не потребоваться использовать один и тот же адрес между двумя процессами.

1 голос
/ 11 декабря 2010

Одна вещь, которую вы, возможно, захотите попробовать, - создать временный файл и затем сопоставить файл из обоих процессов. Это должно дать вам общие страницы памяти.

...