Как изменить permissoin каталога $ Extend? Python? C ++?

Я хочу скрыть текстовый файл, переместив его в $Extend каталог (Что это за каталог?). Итак, я бегу cmd как администратор и запустите следующий код:

C:\Windows\system32>copy I:\ToHide.txt I:\$Extend
Access is denied.
0 file(s) copied.

C:\Windows\system32>

Как видите, я не смог и получил Доступ закрыт ошибка. Поэтому я попытался получить каталог назначения ($Extend) и поменяй его ACLs как показано ниже:

C:\Windows\system32>takeown /f I:\$Extend

SUCCESS: The file (or folder): "I:\$Extend" now owned by user "Abraham-VAIO\Abra
ham".

C:\Windows\system32>cacls I:\$Extend /G Abraham:F
Are you sure (Y/N)?Y
The system cannot find the file specified.

C:\Windows\system32>

Q1: Почему cacls не мог видеть этот каталог, а takeown мог !?

После этого я использую приведенный ниже код Python:

import win32api
import win32con
import win32security

FILENAME = "I:\\$Extend"open (FILENAME, "w").close ()

print "I am", win32api.GetUserNameEx (win32con.NameSamCompatible)

sd = win32security.GetFileSecurity (FILENAME, win32security.OWNER_SECURITY_INFORMATION)
owner_sid = sd.GetSecurityDescriptorOwner ()
name, domain, type = win32security.LookupAccountSid (None, owner_sid)

print "File owned by %s\\%s" % (domain, name)

И я получаю Доступ закрыт снова :

>>> ================================ RESTART ================================
>>>

Traceback (most recent call last):
File "C:\Users\Abraham\Desktop\teste.py", line 6, in <module>
open (FILENAME, "w").close ()
IOError: [Errno 13] Permission denied: 'I:\\$Extend'
>>>

Q2: этот код Python равен takeown или это альтернатива cacls?

Q3: Почему я получаю отказано в доступе, когда я работаю вхолостую (и после этого python в командной строке) от имени администратора?

Последние вопросы:

В4: Почему я не могу открыть этот каталог с помощью Windows Explorer, хотя я могу открыть его с помощью WinRAR? Windows ограничивает некоторые API для Explorer, но они доступны для других программ?
введите описание изображения здесь

введите описание изображения здесь

Кстати, есть ли способ достичь своей цели с помощью Python или C ++ или …? (Скрытие чего-либо в каталоге $ Extend)

0

Решение

В общем, вы можете получить доступ к MFT напрямую, открыв \. \ PhysicalDriveX — который является базовым физическим диском (X — это номер диска, который вы хотите открыть) — и затем проанализируйте диск напрямую, то есть найдите смещение раздела от Master Boot Record, затем проанализируйте первый сектор NTFS и оттуда найдите местоположение MFT.

Существует отличный пример того, как разобрать MFT в проекте ntfsfastfind, с открытым исходным кодом, смотрите здесь:
http://home.comcast.net/~lang.dennis/console/ntfsfastfind/ntfsfastfind.html

Я также рекомендую прочитать о внутренностях NTFS здесь:
http://technet.microsoft.com/en-us/library/cc781134(v=ws.10).aspx
http://ntfs.com/ntfs-mft.htm

1

Другие решения