Вниз
Скачать: CL | DM;

Изминение 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.019 c
14-58886
blackman
2003-08-29 16:54
2003.09.18
Пятница. Вечер. Пора...


14-58846
iNew
2003-08-29 11:21
2003.09.18
Вопрос по EXE


3-58516
Nucl
2003-08-28 16:35
2003.09.18
OleDB for mssql


3-58514
SiJack
2003-08-28 15:07
2003.09.18
Управление доступом к БД


1-58726
Xtz
2003-09-07 21:01
2003.09.18
Как использывать таймер в консольном приложении и без QExtCtrls




   Наверх