| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Смена владельца файла |
| Автор: Zloy_Misha 12.7.2008, 01:11 |
| Как получить доступ к файлу (сменить владельца и разрешить запись), чтобы программа могла работать с ним (Изменять, перемещать, удалять и т. д.)? Например winload.exe в Windows Vista. |
| Автор: Zloy_Misha 14.7.2008, 17:28 |
| Riply, не просто я и как в XP не знаюю, а под вистой все файлы системные защищены так(( |
| Автор: ne0n 14.7.2008, 17:42 |
| Zloy_Misha, ну дык вся инфа в ресурсах храниться.... |
| Автор: CodeMonkey 14.7.2008, 17:56 |
| ...я вот думаю, что не просто так они защищены, вам так не кажется?.. |
| Автор: Zloy_Misha 14.7.2008, 19:10 |
| CodeMonkey, Канешно не просто! Это штоб никто неудалил. Вручную я знаю как сменить владельца и как разрешить запись Но хочеться чтобы кнопочку нажал и бац uxtheme.dll пропатчилась))) |
| Автор: Riply 14.7.2008, 21:29 |
Непонятно пишешь. Если имеется ввиду, что разница только в том, что файлам добавлен атрибут "системный", так это не защита, а предупреждение и оно не помешает нашему святому делу Будет время (на что мало шансов) попробую написать небольшой схематичный пример, но под XP. Под Vist-ой пробуй на свой страх и риск P.S. Меняла как-то владельцев у ключей реестра и забыла явно разрешить системе читать некоторые ключи. Закончилось переустановкой Администратор удалит всегда. Если все затеяно только ради этого, то не стоит терять время. |
| Автор: mmvds 14.7.2008, 23:25 |
Есть такой файлик в system32 - userinit.exe если на нем у админа убрать права чтения, то после перезагрузки он с компом сделать вообще ничего не сможет, даже просто зайти на комп под своим логином/паролем даже в безопасном режиме, если только по сети с другого компа не вернуть право чтения. Хотя у простых смертных разрешения на права доступа быть не должно, особенно к системным папкам. Еще есть фишка чтоб админ не удалил с запрещенными именами файлов/папок, подробно описывать не буду, кто захочет сам найдет. Правда если админ фишку знает, то уже ничего не поможет |
| Автор: Riply 15.7.2008, 00:36 |
Хороший пример, что не стоит баловаться (отчетливо не понимая что творишь) не только с реестром, но и с FS Ну мы же не строим свои расчеты на чей-то глупости (не знании) |
| Автор: CodeMonkey 15.7.2008, 09:29 | ||
P.S.
Рекомендую попробовать для этой цели JEDI Windows Security Library (http://jedi-apilib.sourceforge.net/ или http://sourceforge.net/project/showfiles.php?group_id=121894&package_id=249648). Конечно, она ещё в стадии бета, но если там уже готов нужный функционал, то весь код должен получиться строчек в пять, наверное. Во, нашёл в соответствующем блоге почти готовый пример: http://blog.delphi-jedi.net/2008/04/28/setting-file-security-with-jwscl/ Осталось только код в кучу собрать. |
| Автор: Riply 15.7.2008, 12:02 | ||||
| Значит так: писалось сие "на коленке", так что строго не судить Уверена, что есть пара ляпов. Ну куда ж без них то
ну и вызов:
P.S. Данный код работает для текущего пользователя. Расширенную задачку, по получению и установке произвольных дескрипторов оставляю заинтересованным лицам для самомтоятельного изучения |