Каждое приложение имеет свою память. В Windows все процессы могут использовать «OpenProcess» и «ReadProcessMemory/WriteProcessMemory (NtReadVirtualMemory/NtWriteVirtualMemory)» для чтения или записи памяти приложения.Кто читает/записывает память моего приложения
В ядре системы мы можем подключить функцию SSDT «NtReadVirtualMemory/NtWriteVirtualMemory», чтобы проверить, кто читает и пишет память приложения.
У меня возник вопрос: есть ли способ проверить, кто читает и пишет память приложения в процессе этого приложения?
no. не зацепив другие процессы/ядро (подключив SSDT, как вы уже упоминали в своем вопросе). Вы можете проверить, какой процесс имеет дескриптор для вашего приложения, но это не обязательно означает, что они действительно что-то читали/пишут. – JosephH
Спасибо, Джозеф. Как я могу проверить, какой процесс имеет дескриптор моего приложения? Есть ли какой-нибудь документ об этом? – wenz
Я не верю, что вы сможете подключить SSDT в современных версиях Windows. [Защита от исправления ядра (т. Е. Исправление)] (http://en.wikipedia.org/wiki/Kernel_Patch_Protection) следует запретить. Вы * можете * использовать API поддержки данных ядра и фильтрации. – jww