Чтобы прочитать память другого приложения, вам нужно открыть процесс в отношении OpenProcess с по крайней мере PROCESS_VM_READ
правами доступа и затем использовать ReadProcessMemory , чтобы прочитать любой адрес памяти изпроцесс.Если вы являетесь администратором или имеете права отладки, вы сможете открыть любой процесс с максимальными правами доступа, вам нужно только включить SeDebugPrivilege
до этого (см., Например, http://support.microsoft.com/kb/131065).
Если вы не знаете,много о памяти процесса назначения, вы можете просто перечислить блоки памяти в отношении VirtualQueryEx (см. Как можно использовать VirtualAllocEx, чтобы освободить место для пещеры кода? в качестве примерагде я проверяю программный код. Данные программы вы можете исследовать аналогичным образом).
Наиболее практическая проблема, которую я вижу, состоит в том, что вы задаете свой вопрос слишком общим способом. ЕслиВы объясняете, какой тип данных вы ищете, я мог бы предложить вам лучший способ. Например, если вы могли бы где-то увидеть данные, вы могли бы изучить соответствующие окна и элементы управления в отношении Spy ++ (часть инструментов Visual Studio).Наиболее важными являются класс окон (или элементов управления) и сообщения, которые будут отправлены намомент, когда отображаются самые интересные окна.Вы также можете использовать Process Monitor для отслеживания доступа к файлам и реестру в тот момент, когда будут отображаться окна с интересной информацией.По крайней мере, в начале вы должны проверить память процесса с помощью ReadProcessMemory в тот момент, когда искомые данные отображаются в окне.
Если у вас ничего не получитсяв ваших исследованиях я бы порекомендовал вам добавить в ваш вопрос больше информации.