2014-10-05 4 views
0

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

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

C:\Windows\system32> 

Как вы видите, я не мог, и я получил Access Denied ошибку. Так что я попытался takeown каталог назначения ($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) 

И я получаю Access Denied снова:

>>> ================================ 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: Является ли этот питон код равен takeown или ему является альтернативой для cacls?

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

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

Q4: Почему я не могу открыть этот каталог с помощью проводника Windows, в то время я могу открыть его с помощью WinRAR? Ограничивает ли Windows некоторые API для Explorer, но они доступны для других программ? enter image description here

enter image description here

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

+0

ИМХО , это плохая практика, пытающаяся скрыть что-то в каталоге * system *, если вы точно не знаете, как система ее использует. Я бы посоветовал вам взглянуть на отличную утилиту truecrypt, и вы действительно хотите скрыть что-то в скрытых томах truecrypt. И таким образом вы будете уверены, что ничего не сломаете. –

+0

Does'nt OS с новыми файлами в системных каталогах, как и другие файлы и каталоги? Я имею в виду, не поддерживает ли ОС содержимое $ Extend так же, как и другие файлы? – TheGoodUser

+0

Я не знаю, но вопрос только в том, что вы ** знаете это ... Я знаю только, что такое MFT, и знаю, что это очень ** особенный. –

ответ

1

В общем, вы можете получить доступ к MFT напрямую, открыв \. \ PhysicalDriveX - который является основным физическим диском (X - это номер диска, который вы хотите открыть), а затем проанализируйте диск напрямую, то есть найдите смещение раздела из главной загрузочной записи, затем проанализируйте первый сектор 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

+0

Спасибо, дорогой тал. Я буду проверять, как можно скорее, и я отвечу на ваш ответ. – TheGoodUser