0

我想通过将文本文件移动到$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 之后)时收到拒绝访问?

最后的问题:

Q4: 为什么我用Windows Explorer 打不开这个目录,而用WinRAR 可以打开?Windows 是否限制了资源管理器的某些 API,但它们可用于其他软件? 在此处输入图像描述

在此处输入图像描述

顺便说一句,有什么方法可以使用 Python 或 C++ 或 ... 实现我的目标?(在 $Extend 目录中隐藏一些东西)

4

1 回答 1

1

一般来说,你可以直接打开\.\PhysicalDriveX来访问MFT——即底层物理磁盘(X是你要打开的磁盘号)——然后直接解析磁盘,即从磁盘中找到分区偏移量主引导记录,然后解析第一个 NTFS 扇区并从那里找到 MFT 的位置。

在 ntfsfastfind 项目中有一个很好的如何解析 MFT 的开源示例,请参见此处: 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

于 2014-11-04T05:06:26.747 回答