Ну тут много причин. DLL была подписана? У API Monitor'а подписанные либы, но не факт что они тоже будут грузится - нужно смотреть что происходит.
В том что для работы нужно чтобы DLL была в CSRSS, как минимум там идет перехват CsrCreateProcess для того чтобы иметь возможность мониторить...
Ну пробуй теперь в API Monitor вставлять этот вызов - все должно заработать, хотя не факт.
Такой драйвер нужно писать / подписывать, я предлагаю способ с уже готовым, подписанным драйвером. У меня 16.22.0.0 в ресурсах лежит драйвер.
Я не понимаю тебя. Я имею в виду, у тебя API Monitor пытается сделать OpenProcess(), фейлится с ACCESS_DENIED и репортит об ошибке, т.к. не может...
Я имел в виду что будет ли процесс csrss загружать неподписанные МС DLL'ки. Если у тебя есть хендл с нужными правами ты и так сможешь код...
Если что я имел в виду перехватить OpenProcess в мониторе и подсунуть ему свою реализацию (смещение 0x54946 от начала секции .text в 64 битном билде)
В API мониторе DLL инжектится через VirtualAllocEx, WriteProcessMemory, CreateRemoteThread / NtCreateThreadEx + в целевом процессе вызывается...
А ProcessExplorer открывает csrss? Не спец по ядру, но мб заюзать его драйвер для открытия процесса? ProcessExplorer именно так и делает, сначала...
Ну ты посмотри, проходит ли инжект в csrss. С большой вероятностью система просто отклоняет все модификации / аллокации памяти / создание...
При запуске 32 битной версии на 64 битной системе запускается 64 битный с параметром psn. Этот вызов отрабатывает успешно? apimonitor-psn-x64.sys...
Это обычные DLL. Можно глянуть почему не грузятся, только там примитивная антиотладка, но она элементарно обходится.
Про какой драйвер речь?
Это зависит от того что в итоге требуется. Если решение проблемы занимает слишком много усилий, то возможно стоит поискать другой инструмент, но я...
Ну это нужно конкретно знать в чем проявляется проблема, с такой расплывчатой формулировкой не понятно даже в принципе что может быть. Мне...
В чем именно проявляется эта нестабильность? МБ попробовать сначала выяснить причину нестабильности.
NtProtectVirtualMemory, но она юзает с умом, передает флаг PAGE_EXECUTE_READWRITE. Также вызывает NtFlushInstructionCache.
M0rg0t, изменяются атрибуты всей страницы в этом и проблема. Ты меняешь атрибуты и при возврате из функции NtProtectVirtualMemory (если это WOW64)...
Поздравляю!
Я к сожалению не спец в этом, но думаю раз ты уже знаешь причину этого (зависимость), то найдешь и способ как избавиться от этого.
Имена участников (разделяйте запятой).