2015-06-01 6 views
3

Я пытаюсь выполнить ReadProcessMemory по определенному процессу, но он использует ObRegisterCallbacks, чтобы предотвратить другой процесс для создания дескриптора на нем (OpenProcess). Я слышал о том, как люди создают свои собственные чтения памяти в C# без ReadProcessMemory или OpenProcess. Если бы кто-нибудь мог показать мне, как я буду создавать такую ​​библиотеку, которая была бы удивительной (или если бы я мог быть связан с существующей).C# ReadProcessMemory альтернативный

Это строго ЧТЕНИЯ память, мне не нужно писать памяти для процесса

ответ

0

ReadProcessMemory и OpenProcess являются частью официального Windows API. Они фактически вызывают другие функции ОС, такие как ZwReadVirtualMemory/NtReadVirtualMemory и ZwOpenProcess/NtOpenProcess. Проблема в том, что эти функции могут быть доступны только драйверам. Однако вы можете создать драйвер программного обеспечения (путем создания драйвера режима ядра (KMDF) или модели драйверов Windows (WDM) в Visual Studio). Нижняя сторона - это все C++ и сложно.

Возможно, вы захотите изучить библиотеку C# с открытым исходным кодом под названием WhiteMagic. Это вносит DLL в процесс и позволяет считывать/записывать память из самого приложения. Для ввода DLL используется OpenProcess, однако возможно заменить вариант инъекции альтернативой, например: https://github.com/dwendt/UniversalInject.

Смежные вопросы