簡體   English   中英

查找所有文件,無論權限如何(Windows XP,C#)

[英]Finding ALL files regardless of permissions (Windows XP, C#)

無論權限如何,我都需要在硬盤驅動器 (在C:分區中)中找到所有文件 (Windows XP Pro,使用C#)

在先前的問題中,有人告訴我:

無法查看“ C:\\ System Volume Inforamtion”文件夾,因為該文件夾僅分配給SYSTEM用戶。 為了查看其中的內容,您需要擁有它的所有權。 但是,出於安全原因,不建議這樣做。 – Alex Mendez

我已經使用Windows多年了,這是我第一次聽說SYSTEM用戶(這解釋了我過去的許多挫敗感)。 我以為“管理員”類似於UNIX中的“ root”用戶,它可以訪問所有內容。

在Windows中,最終用戶擁有一切嗎?

如果是這樣,那個用戶是誰?

如果是這樣,我如何以該用戶身份運行C#程序,以便可以看到所有文件?

如果沒有,還有其他方法嗎? (其他程序可以這樣做。)

我非常確定,訪問這些文件夾*的唯一方法是以Ring-0的身份運行,Ring-0是內核級別用戶的CPU自己的分區。 這也是某些惡意軟件/ Rootkit將其鈎住您的系統的方式。

我非常有信心,這不是您可以在.Net中實現的功能,而且我不確定如果不編寫系統級驅動程序(.sys文件)就可以真正實現它。

無論如何,文件系統都適用於OS,如果您使用的是NTFS格式的驅動器,並且內容已加密,那么超級讀取驅動程序將不會為您解密文件。

編輯:那些文件夾是系統文件夾,如果可以P調用BackupRead / Write函數,則可以訪問其他數據。

我相信FILE_FLAG_BACKUP_SEMANTICS基本上FILE_FLAG_BACKUP_SEMANTICS您的需求。

您可以交互方式(作為SYSTEM)運行應用程序(或命令提示符)。 例如,參見對此問題的公認答案。 應用程序運行交互式上下文后,便可以直接打開“系統卷信息”。

[編輯添加說明:]

在Windows中,最終用戶擁有一切嗎?

否。有一個特權SeTakeOwnershipPrivilege,默認情況下,該特權授予管理員(隱式為System),以允許獲取對象的所有權。 對象所有者可以隨時更改ACL來授予自己訪問權限。

還有另一個特權SeBackupPrivilege授予管理員和備份操作員(以及系統)。 旨在允許讀取文件進行備份,並繞過正常的讀取操作。 這有效地允許對任何文件的讀取訪問,而繞過正常的訪問控制限制。

如果是這樣,那個用戶是誰?

沒有這樣的用戶。 默認情況下,Windows僅通過該目錄上的ACL授予SYSTEM對C:\\ System Volume Information的訪問權限。

如果是這樣,我如何以該用戶身份運行C#程序,以便可以看到所有文件?

您可以將程序作為SYSTEM專門運行以查看“系統卷信息”(按上述方法),盡管這並不一定會讓您查看所有文件。 我認為具有備份操作員特權和使用備份標志執行讀取操作是查看所有文件的唯一機制,而不管權限如何。

不,沒有root用戶可以訪問所有內容。 以SYSTEM或Administrator或任何其他用戶身份運行不會解決您的問題。 您已經解決了一個非常復雜的問題,而在C#中完成它將是一個額外的挑戰。 我建議重新考慮使用C#。

這里開始,閱讀FILE_FLAG_BACKUP_SEMANTICS標志的描述以及那里的有關如何更改令牌特權的鏈接。 基本上,您將不得不臨時更改對您沒有讀取訪問權限的每個文件/目錄的訪問權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM