2010-02-05 428 views
1

我想知道如何以編程方式隱藏文件,但使文件或文件夾仍然隱藏顯示隱藏文件和文件夾啓用從工具 - >文件夾選項資源管理器。如何隱藏使用C C++並顯示啓用的隱藏文件和文件夾

我希望我不會混淆任何人,如果我可能請請問。

+2

將文件的唯一副本保存到可移動介質(USB驅動器,軟盤等)上並將介質鎖定在安全區域中。爲了提高安全性,請將保險箱埋在深湖底部。現在您可以設置所有您想要的隱藏文件選項,但不會顯示。 – bta 2010-02-05 22:18:29

+0

由於您參考了「工具 - >資源管理器的文件夾選項」,我假設這是針對Microsoft Windows的,並且我已經對其進行了適當的標記。這種事情是非常依賴平臺的。由於它存在一個很大的安全漏洞,它可能只針對特定的版本,並且您發現的任何解決方案可能會被稍後的補丁清除。 – 2010-02-10 18:16:51

回答

3

你想獲得按#SetFileAttributes函數include'ing WINDOWS.H:http://msdn.microsoft.com/en-us/library/aa365535%28VS.85%29.aspx

在代碼:

BOOL result = SetFileAttributes(L"c:\path\to\file", FILE_ATTRIBUTE_HIDDEN); 

是保持從 「顯示隱藏文件」 隱藏文件選項,這是要困難得多,我想不出一個合法的理由去做 - 唯一的方案是惡意攻擊的惡意軟件。

+0

據我所知,只將文件設置爲「隱藏」,但如果啓用了「顯示隱藏的文件和文件夾」,文件仍將在資源管理器中可見。 – Brad 2010-02-05 21:48:53

+0

@Brad Yep,對不起,我誤解了這個問題。 – 2010-02-05 21:51:34

3

我敢肯定,這是不可能的,因爲這將是一個安全漏洞(程序可能會在您的硬盤上放置未知文件,您看不到或刪除)。

即使是Windows系統文件也是可見的。

2

使用文件系統過濾器驅動程序。但是既然你必須問 - 不要這樣做。不要在這裏粗魯,只是這是一項非常難以正確處理的任務。

4

有沒有用戶模式的API來隱藏'顯示隱藏文件'的文件,這是一件好事。

要做到這一點的唯一方法是讓你的代碼在內核中運行。幾年前索尼「意外」安裝在用戶機器上的rootkit當他們試圖防止CD被扯開時可以做到這一點。但沒有合法用於從系統管理員和高級用戶隱藏文件的能力。

0

正如很多人之前所說的,沒有直接的方法來完全「隱藏」這樣的文件。

如果您可以接受不是真正隱藏該文件,而只是對其進行模糊處理,則可以將其嵌入虛擬文件中。拿出你想隱藏的文件,建立一個容器文件來保存它,然後用一個隨機的名字命名這個虛擬文件。例如,您可以將實際文件的文件名從虛擬文件的偏移量512開始,並將文件的內容從偏移量1024開始,每1KB插入64個字節的隨機數據。將空白空白的末端填充到4KB的最接近倍數,用隨機字節填充空白空間,並生成用於文件名的隨機字符序列。現在,您可以在文件系統中仍然可見時「隱藏」該文件。

但是,這僅僅是「security by obscurity」,並且可以被具有十六進制編輯器的聰明攻擊者擊敗。

如果您只是試圖確保文件對臨時文件系統瀏覽器不可見,則可以始終壓縮文件,對其進行加密並隨機化文件名。如果您需要在「隱藏」時能夠訪問/執行文件,那麼您可能(希望)運氣不好。

0

感謝所有回覆。

我想知道的原因如下:我喜歡鍵盤記錄器等隱身程序。所以我想編寫一個可以檢測這些隱形流程的應用程序。我知道還有其他方法被間諜軟件用來隱藏自己,所以這只是現在的一個起點。

希望能回答你的問題。

Victor

+0

我知道檢測rootkit的常用方法是在不同級別的細節上多次執行系統操作,並查看它們是否匹配。 – 2010-02-10 18:18:56