Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: По поводу объектов ядра  (Прочитано 8774 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AndreyG
Гость
« : 15-09-2003 04:36 » 

Уважаемый Гром доступно объяснил, как защитить объект ядра при помощи SECURITY_ATTRIBUTES. А если стоит противоположная задача и мне надо защитить все остальное от этого самого процесса? Что мне делать тогда?
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #1 : 15-09-2003 04:57 » 

AndreyG, вопрос странный, если не сказать больше...
В понятие все остальное входят и память и ресурсы процессора, что именно за задача стоит - опиши поподробнее.
Записан

А птичку нашу прошу не обижать!!!
AndyGee
Гость
« Ответ #2 : 15-09-2003 05:11 » 

Возможно, я неправильно выразился.
Задача в следующем: из одного приложения мне необходимо запустить другое (консольное), при этом допуская мысль о том, что оно может быть вредоносным. Так вот, надо его запустить и не дать навредить.
Записан
Diletant
Помогающий

de
Offline Offline

« Ответ #3 : 15-09-2003 07:21 » 

IMHO, в вопросе все немножко переставлено с ног на голову. Если в операционной системе пользователю Everyone, разрешено все, то никакими ухищрениями при запуске процесса защитить диск не удастся. Это под NT. А под Win9x такой защиты посто не существует.
Записан
AndyGee
Гость
« Ответ #4 : 15-09-2003 07:33 » 

Понятно... т.е. задача решаемая мной должна решаться скорее на уровне локальной политики безопасности... спасибо...
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #5 : 15-09-2003 08:22 » 

Пришел смотрю.
Из всоего процесса, если это не драйверный, ни какого ограничения на системные ресурсы никогда наложить нельзя, ибо ты сам сидишь под определенным доступом, вернее уровнем доступа.
Даже с условием запуска с администраторского доступа к кернелю ты просто так доступ не получишь и объекты ядра в твоем случае не причем.

Решать запреты - не думаю что только политикой можно, я не скажу как и что можно сделать - не работал - но посмотри параметры твоего CreateProcess...

Там ограничиваются всякие параметры и размеры памяти и т.д. выделяемые потоку/процессу..

Т.е. решение за плоскостью объектов ядра..
Записан

А птичку нашу прошу не обижать!!!
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #6 : 15-09-2003 08:47 » 

Вот этими ф-циями проверяют и подцепляют нужный DACL к объектам ядра(экспортируются из ntdll.dll)

NTSYSAPI
NTSTATUS
NTAPI
NtQuerySecurityObject(
   IN HANDLE FileHandle,
   IN SECURITY_INFORMATION SecurityInformation,
   OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
   IN ULONG Length,
   OUT PULONG ResultLength
);

NTSYSAPI
NTSTATUS
NTAPI
NtSetSecurityObject(
   IN HANDLE FileHandle,
   IN SECURITY_INFORMATION SecurityInformation,
   IN PSECURITY_DESCRIPTOR SecurityDescriptor
);

Как пример
Код:

RtlInitUnicodeString)&UnicodeString,lpFileName:;
InitializeObjectAttributes)&ObjectAttributes,&UnicodeString,OBJ_CASE_INSENSITIVE,NULL,NULL:;

ntStatus = NtOpenFile)&FileHandle,AccessMask,&ObjectAttributes,&IoStatusBlock,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,FILE_OPEN_REPARSE_POINT:;
if )NT_ERROR)ntStatus::
__leave;

ntStatus = NtSetSecurityObject)FileHandle,SecurityInformation,pSecurityDescriptor:;
if )NT_ERROR)ntStatus::
__leave;



Подробнее смотри- "Windows NT Native API", книга есть на этом сайте.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines