C++ и защита памяти процесса

Переменный $ ^O (это - капитал 'O', не нуль) содержит название операционной системы.

В зависимости от того, что Вы хотите, это может или не может дать ответ, который Вы хотите - в моей системе, которую это дает 'Linux', не говоря который дистрибутив. Я не так уверен в том, что это говорит относительно Windows или MacOS.

7
задан Kirill V. Lyadvinsky 19 September 2009 в 20:13
поделиться

4 ответа

Контроль доступа в Windows осуществляется на основе каждого объекта. Если вы хотите защитить объект процесса, вам необходимо установить ACL объекта процесса либо при создании процесса (через lpProcessAttributes из CreateProcess), либо впоследствии (через SetKernelObjectSecurity ). Если вы добавите запись «запретить все» в ACL, попытки открыть процесс злоумышленником будут неудачными.

Конечно, владелец процесса (и, следовательно, любой вредоносный код, запускаемый пользователем) может изменить ACL. вернемся к тому, что было - однако вредоносный код может быть не готов к этому. Чтобы эффективно предотвращать атаки из пользовательского пространства, вам необходимо запустить процесс как неинтерактивный пользователь (например, как LocalSystem).

9
ответ дан 6 December 2019 в 15:24
поделиться

Взлом? Нет. Это называется отладкой (по большей части)

И краткий ответ на ваш вопрос: «Нет, вы не можете этого сделать». Я слышал, что в Vista и более поздних версиях есть некоторые процессы ОС, которые нельзя отлаживать (процессы DRM и тому подобное), но я не уверен, что вы можете заставить свои процессы работать таким образом.

Настоящий вопрос в том, почему вы хотите это сделать, и разве у вас нет более важных вещей, о которых нужно беспокоиться (скажем, производительности и удобства использования, не говоря уже о правильности вашего программного обеспечения)?

4
ответ дан 6 December 2019 в 15:24
поделиться

Что касается редактирования памяти, тривиальный способ обнаружить это - сохранить контрольную сумму для некоторых ваших данных.

1
ответ дан 6 December 2019 в 15:24
поделиться

Не развертывайте / не запускайте свой процесс на машине, контролируемой конечным пользователем: вместо этого запустите свой процесс на своем собственном компьютере и позвольте конечным пользователям общаться с вашим процессом через Интернет. .

0
ответ дан 6 December 2019 в 15:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: