Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизИзминение Security Attributes файла Найти похожие ветки
← →
Sniffer (2003-09-06 12:39) [0]Проблема такая см(*)
procedure SetSecurity(FileName : String);
var
Sid : PSID;
ACL : TACL;
B, C : Cardinal;
sa: TSecurityAttributes;
sd: TSecurityDescriptor;
cbAcl : Cardinal;
begin
sa.nLength := sizeof(sa);
sa.bInheritHandle := false;
sa.lpSecurityDescriptor := @sd;
B := GetSidLengthRequired(4);
C := 128;
GetMem(Sid, B);
LookupAccountName(nil, "Adm", Sid, B, nil, C, B);
InitializeSecurityDescriptor(sa.lpSecurityDescriptor,SECURITY_DESCRIPTOR_REVISION);
cbAcl := sizeof(ACL) + SizeOf(ACCESS_MASK) + 8
+ GetLengthSid(Sid) - sizeof(DWORD) ;
InitializeAcl(ACL,cbACL,2);
AddAccessAllowedAce(ACL,2,$0000FFFE,SID);
ShowMessage(SysErrorMessage(GetLastError));
(*) Почему здесь получаю сообщение :
"Код защиты данных имеет неверную структуру?"
SetSecurityDescriptorDacl(sa.lpSecurityDescriptor,TRUE,@ACL,FALSE);
SetFileSecurity(PChar(FileName), DACL_SECURITY_INFORMATION,sa.lpSecurityDescriptor);
FreeMem(Sid, B);
end;
← →
Song (2003-09-06 12:50) [1]XP ?
← →
Sniffer (2003-09-06 12:51) [2]Да XP
← →
Song (2003-09-06 12:54) [3]В XP перевод процесса в системный таким образом не работает.
Только w2k
← →
Sniffer (2003-09-06 12:57) [4]А как же тогда в XP?
← →
Song (2003-09-06 12:59) [5]Не могу сказать, не знаю.
← →
Sniffer (2003-09-06 13:00) [6]У меня одна непонятка, я ж не перевожу процесс в системный а изменяю атрибуты файла. Может, Song, ты что-то не так понял?
← →
Song (2003-09-06 13:02) [7]Ты изменяешь аттрибуты защиты файла. Я по исходнику вижу, что ты хотел сделать.
← →
Sniffer (2003-09-06 13:03) [8]Вот я и говорю, что изменяю атрибуты файла. А процесс причём?
← →
Song (2003-09-06 13:09) [9]Эти аттрибуты в т.ч. используются при запуске его процесса.
← →
Sniffer (2003-09-06 13:12) [10]Процесса, который запустится при запуске файла?
← →
Song (2003-09-06 13:12) [11]Да.
← →
Sniffer (2003-09-06 13:17) [12]Но винда же может может поменять атрибуты твким образом, чтобы никакая другая файл например не удалила. И ничего справляется, она ж тоже как бы переводит процесс в системный.
← →
Song (2003-09-06 13:34) [13]Ну я не спорю, я не Билл Гейтс, и если я не могу ответить, это не значит что винда не может этого уметь.
← →
Sniffer (2003-09-06 13:47) [14]Да ещё, после выделения памяти под SID, возникает ошибка: "область данных переданная системному вызову слишком мала", почему?
← →
Sniffer (2003-09-06 14:30) [15]Помогите плиз
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c