Answers:
ATTRIB +H /s /d C:\.*
是用于隐藏任何内容的命令,包括以点开头的目录
这不会列出文件(如下所述),但是会命中它可以访问的每个文件,并应用“隐藏”属性。
完成此操作后,您可以确保将“文件夹选项”设置为隐藏隐藏文件。单击开始,键入folder options
并按Enter。点击查看标签,然后在文件和文件夹 \ 隐藏的文件和文件夹下选择不显示隐藏的文件,文件夹或驱动器。点击Apply,然后点击OK(或者只是OK)。
Users
文件夹真是太感谢了
CreateFile
具有CREATE_ALWAYS
但没有明确指定FILE_ATTRIBUTE_HIDDEN
标志的Windows文件调用中,对隐藏文件的操作将失败。有些工具知道这一点,但有些工具(抱歉,不记得我到底遇到了什么问题)无声地发生,唯一值得注意的问题是配置或日志没有以某种方式更新。在此处检查例如更多信息:stackoverflow.com/a/13215998/116546
在C#中,可以使用System.IO.FileSystemWatcher。代码将是这样的。只需编译并将其放置在“启动”文件夹中即可。但是此代码不会隐藏现有文件。因此,首先运行Luke的代码,然后运行此代码。您需要System.IO和System.Security.Permissions
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\";
watcher.IncludeSubdirectories = true;
watcher.Filter = "*.*";
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Started...");
while (true) ;
}
static void Check(string filename)
{
string name = Path.GetFileName(filename);
if (name.StartsWith(".") && !File.GetAttributes(filename).HasFlag(FileAttributes.Hidden))
{
File.SetAttributes(filename, File.GetAttributes(filename) | FileAttributes.Hidden);
}
}
static void watcher_Created(object sender, FileSystemEventArgs e)
{
Check(e.FullPath);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Check(e.FullPath);
}
}
Windows将使用hidden或system标志隐藏文件。或使用ACL隐藏文件。Windows不会根据文件名隐藏文件。
要明确让Windows按文件名隐藏文件,您需要明确创建功能。在这种情况下,文件系统驱动程序(病毒通常具有此“功能”)或外壳扩展程序hack都可以使用。
附带一提,您可以通过关闭“文件夹选项”下的“查看文件扩展名”来伪造该功能,因为对于资源管理器,以点开头的文件是具有扩展名但没有名称的文件。
Folder Options
> View
> [ ] Hide extensions for known file types
。