首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用WQL查找目录中所有隐藏文件夹并将其存储在xml文件中的VBA代码

如下:

代码语言:vba
复制
Sub FindHiddenFolders()
    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim xmlDoc As Object
    Dim xmlRoot As Object
    Dim xmlNode As Object
    Dim xmlAttr As Object
    Dim xmlText As Object
    Dim folderPath As String
    Dim xmlFilePath As String
    
    ' 设置目录路径和xml文件路径
    folderPath = "C:\Path\To\Directory"
    xmlFilePath = "C:\Path\To\Output.xml"
    
    ' 创建XML文档对象
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    Set xmlRoot = xmlDoc.createElement("HiddenFolders")
    xmlDoc.appendChild xmlRoot
    
    ' 创建文件系统对象
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' 连接WMI服务
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    
    ' 查询目录中的所有文件夹
    Set objFolder = objFSO.GetFolder(folderPath)
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Directory WHERE Name='" & objFolder.Path & "'")
    
    ' 遍历文件夹
    For Each objItem In colItems
        ' 检查文件夹是否隐藏
        If objItem.Attributes And 2 Then
            ' 创建XML节点
            Set xmlNode = xmlDoc.createElement("Folder")
            
            ' 添加文件夹路径属性
            Set xmlAttr = xmlDoc.createAttribute("Path")
            xmlAttr.Value = objItem.Name
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹名称属性
            Set xmlAttr = xmlDoc.createAttribute("Name")
            xmlAttr.Value = objItem.FileName
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹大小属性
            Set xmlAttr = xmlDoc.createAttribute("Size")
            xmlAttr.Value = objItem.FileSize
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹创建时间属性
            Set xmlAttr = xmlDoc.createAttribute("Created")
            xmlAttr.Value = objItem.CreationDate
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹修改时间属性
            Set xmlAttr = xmlDoc.createAttribute("Modified")
            xmlAttr.Value = objItem.LastModified
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹访问时间属性
            Set xmlAttr = xmlDoc.createAttribute("Accessed")
            xmlAttr.Value = objItem.LastAccessed
            xmlNode.setAttributeNode xmlAttr
            
            ' 添加文件夹属性节点到根节点
            xmlRoot.appendChild xmlNode
        End If
    Next objItem
    
    ' 保存XML文档到文件
    xmlDoc.Save xmlFilePath
    
    ' 释放对象
    Set xmlText = Nothing
    Set xmlAttr = Nothing
    Set xmlNode = Nothing
    Set xmlRoot = Nothing
    Set xmlDoc = Nothing
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFSO = Nothing
    Set colItems = Nothing
    Set objWMIService = Nothing
    
    MsgBox "Hidden folders have been saved to " & xmlFilePath
End Sub

这段VBA代码使用WQL查询语言在指定目录中查找所有隐藏文件夹,并将它们的相关信息存储在一个XML文件中。代码首先创建了一个XML文档对象,然后连接WMI服务,查询指定目录的所有文件夹。接下来,代码遍历查询结果,检查每个文件夹是否隐藏,如果是隐藏文件夹,则将其相关信息添加到XML文档中的节点中。最后,代码保存XML文档到指定的文件路径,并释放相关对象。

这段代码可以通过调用FindHiddenFolders子过程来执行。在执行过程中,需要设置folderPath变量为要查询的目录路径,xmlFilePath变量为保存XML文件的路径。执行完成后,将会弹出一个消息框显示隐藏文件夹已保存到指定的XML文件路径。

请注意,这段代码是使用VBA编写的,适用于Microsoft Office应用程序(如Excel、Word等)的宏。在使用之前,请确保已启用宏功能,并将代码粘贴到合适的VBA编辑器中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

查找目录所有java文件查找Java文件Toast在对应行找出对应id使用idString查找对应toast提示信息。

背景 最近有个简单迭代需求,需要统计下整个项目内Toastmsg, 这个有人说直接快捷键查找下,但这里比较坑爹是项目中查出对应有1000多处。...几乎是边查文档编写,记录写编写过程: 查找目录所有java文件 查找Java文件中含有Toast相关行 在对应行找出对应id 使用idString查找对应toast提示信息。...查找目录所有java文件 这个我是直接copy网上递归遍历,省略。...查找Java文件Toast 需要找出Toast特征,项目中有两个Toast类 BannerTips和ToastUtils 两个类。 1.先代码过滤对应行。...在对应行找出对应id 使用idString查找对应toast提示信息。 最后去重。 最后一个比较简单,可以自己写,也可以解析下xml写。

3.9K40

进击恶意文档之 VBA 进阶之旅

下面我就以威胁分析员角度来介绍几种技术 VBA stomping VBA Office 文档可以以下面三种形式存在 1、源代码: 宏模块原始源代码被压缩,并存储模块流末尾。...3、ExeCodes: 当 P-Code 执行一次之后,其会被一种标记化形式存储 __SRP__ 流,之后再次运行时会提高 VBA 执行速度,可以将其删除,并不影响宏执行。...可以看到流模块反编译代码被替换成了伪造 VBA 代码,下面使用工具进行分析 OleTools ? Olevba 识别出来了所有的宏给出 VBA stomping 警告 Oledump ?...2007(x86) 8800 2010(x86) 9700 2013(x86) A300 2016(x86) AF00 VBA 编辑器隐藏宏 可以 VBA 编辑器隐藏真正宏,只需要修改 PROJECT...流(可以将 PROJECT 流理解为 VBA 编辑器配置文件 Module=NewMacros,将其抹零即可 ?

4.5K30

NerbianRAT样本分析报告

4.1 doc宏代码分析 双击打开doc文件发现是一个带宏文档,文档诱导用户点击启用宏脚本 这里我使用olevba脚本来分析此word文档vba代码 olevba脚本已经帮我们分析出了此vba...代码主要功能,从解码Base64字符串我们大致可以判断此vba脚本使用powershell从C2下载了payload写入本地文件夹执行。...此vba代码有三个函数,GetByte和DecodeBase64这两个函数功能为解码Base64 主要Document_Open入口函数我们可以看到定义了很多字符串但都是经过Base64编码,这些字符串使用之前都调用...当x64dbg导入MAP文件后通过查看IDAmain函数地址下断点,MAP文件导入x64dbg后让我们可以和IDA分析更好同步。...函数读取了args_c.txt文件如果不存在此文件则跳转,暂不清楚此文件作用可能是后期存储收集到信息。

97920

创建MyVBA加载宏

制作过程: 创建加载宏文件所有Excel VBA相关文件都存放到一个目录下面,包括MyVBA加载宏,设置MyVBA加载宏为Excel加载项: ?...编辑Ribbon界面: 创建一个下拉菜单,这个菜单能够将MyVBA加载宏同路径下面所有后缀为.xlsm和.xlam文件都添加为子菜单,点击自动打开相应文件,Ribbon菜单代码: <customUI...这里使用是动态dynamicMenu,通过回调函数dymOpenAddins_getContent查找同一文件夹所有的宏文件,dymOpenAddins_getContent代码: Sub dymOpenAddins_getContent...VBA.Left$(fn, Len(fn) - 5) '生成Ribbonxml代码 RetFiles(icount)...,个人创建了一个VBAProject文件夹专门存储这一类文件,把它当作包来管理,MyVBA加载宏需要通过工具-引用来使用这个文件,函数代码: Function ScanDir(str_dir As String

1K20

问与答87: 如何根据列表内容文件夹查找图片复制到另一个文件夹

Q:如何实现根据列表内容查找文件夹照片,并将照片剪切或复制到另外文件夹?如下图1所示,列C中有一系列身份证号。 ?...图1 一个文件夹(示例为“照片库”),存放着以身份证号命名照片,在其中查找上图1所示工作表列C身份证号对应照片并将其移动至另一文件夹(示例为“一班照片”),如下图2所示。 ?...图3 A:可以使用一段VBA代码实现。...,然后遍历工作表单元格,并将单元格值与数组值相比较,如果相同,则表明找到了照片,将其复制到指定文件夹根据是否找到照片在相应单元格输入“有”“无”以提示查找情况。...可以根据实际情况,修改代码照片所在文件夹路径和指定要复制文件夹路径,也可以将路径直接放置工作表单元格使用代码调用,这样更灵活。

2.8K20

干货 | Office文档钓鱼实战和免杀技巧

文件两个文件夹内部创建各创建一个index.html文件。...--------提取后运行 点击模式,静默模式, 全部隐藏 点击更新,设置 更新方式----解压更新文件覆盖方式----覆盖所有文件 确定,出去可以文件名改像一点。...没做任何处理之前,VT查杀 39/61 从GUI隐藏/取消隐藏宏VT查杀 37/60 VBA GUI编辑器隐藏所有宏模块(默认“ ThisDocument”模块除外)。...EvilClippy.exe -gg macrofile.doc Stomp VBA(滥用P代码)VT 查杀 12/60 效果很好,过火绒 将来自文本文件fakecode.vba虚假VBA代码放在所有模块...思路: 编写一个带有宏代码DOTM文档,上传服务器 编写一个能够远程连接DOCX文档 将该文档压缩找到更改settings.xml.rels文件内容,将其target内容修改为服务器上DOTM

6.5K21

Word VBA技术:对文件夹所有文档进行批量替换操作(加强版)

标签:Word VBA 在上篇文章:《Word VBA技术:对文件夹所有文档进行批量替换操作》,我们给出了一段代码,可以遍历指定文件夹所有文档,执行指定查找和替换操作。...然而,这只适用于文件夹没有子文件夹情形。如果文件夹中含有子文件夹,则可以使用下面的代码。下面的代码将遍历指定文件夹及其子文件夹所有文档,执行指定查找和替换操作。...代码清单: '声明数组变量用于存储文档名 Dim arrFiles(1 To 100) '声明变量用于计数 Dim cnt As Long Sub ReplaceAllInFolderPlus()...'你可以修改为你自己文件夹 strPath = "C:\test\" '忽略掉关闭查找和替换对话框时触发错误 On Error Resume Next '设置是否第一次循环时执行语句...'用于仅对第一个文档显示查找和替换对话框 blnFirstLoop = True '设置文件夹目录 Set fd = fso.GetFolder(strPath) '搜索文件夹获取Word文档

2K30

Excel催化剂开源第10波-VSTO开发之用户配置数据与工作薄文件一同存储

传统VBA开发,若是用是普通加载项方法,是可以存储数据xlam上,若用是Com加载项方法同时是Addins程序级别的项目开发,配置文件没法保存到工作薄,一般另外用配置文件来存放供调用。...但无论以上两种方式都会带来一点缺陷,若用户配置好自己数据,这些配置数据只能保存到自己电脑上,无法文件共享给其他人使用时,配置文件传递过去。...当然一个折衷方式是,Excel文件中新建一个工作表隐藏它来实现配置数据跟着工作薄一起带走。...这种方式有一缺点是,在用户工作薄里进行数据操作,用户很容易破坏到这些数据,就算深度隐藏工作表,仍然会轻松地用VBA方法重新将其显示出来,特别对一些敏感配置信息保存非常不利。...使用CustomXMLPart对象保存配置信息 xlsx版Excel文件,区别于传统xls文件,其文件本质是xml文件集合,xlsx版文件结构,除去工作表外,有另外一个对象同样可以存储数据,其存储数据要求只要是

1.3K20

VBA解析复合文档00

最可能接触到就是一个名称叫做Thumbs.db文件,只要操作电脑,打开了图片,系统就会在图片同一个文件夹下生成这样一个文件,但默认是隐藏,所以一般也看不到!...2003版本以前Office文件,像Excel(后缀.xls),Word(后缀.doc)文件,都是使用复合文档结构来存储。...2007版本以上Office文件,如果设置了打开密码,仍然是使用复合文档结构来存储。...2007版本以上Office文件,如果编写了VBA代码文件压缩包里,会有个vbaProject.bin文件,也是使用复合文档结构来存储。...解析复合文档,能够更加深入理解Excel文件结构,虽然2007版本以上Excel已经 换成了xml标记语言存储,但是VBA代码相关vbaProject.bin文件还是使用了复合文档结构。

1.2K10

VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

下面介绍一个简单使用动态菜单控件示例,工作簿为三个工作表(名为Data,Analysis,Reports)每个显示不同菜单。 1. 创建一个新工作簿,将其保存为启用宏工作簿。 2....复制粘贴下面的XML代码: image.png group元素不仅能够包含动态菜单,而且还可包含其他控件。 6. 单击工具栏Validate按钮检查是否有错误。 7. 保存关闭该文件。...这个过程为动态菜单内容创建XML代码。 注意,上面的VBA代码以类似于CustomUI Editor一种方式缩进,通过使用Debug.Print语句发送构建XML代码到立即窗口。...一般而言,即使工作簿代码执行完毕,工作簿公共级别变量、模块级变量和过程级静态变量仍然保留其值。可以使用以下四种方法清除这些变量存储值: 在过程或者立即窗口中执行End语句。...如果要在用户关闭并重新打开该文件之后保留该复选框状态,那么可能要在隐藏工作表或者Windows注册表存储其状态。

6K20

VBA: 通过Dir函数查找指定文件

文章背景: 通过VBA编写代码时,有时需要判断某个文件是否存在;或者判断文件夹内是否存在指定类型文件。此时,就会涉及到Dir函数。下面就来介绍Dir函数语法和应用场景。...获取指定路径文件夹所有文件名称 2.5 获取指定路径文件夹所有文件夹名称 2.6 获取指定路径文件夹内第一个txt文件名称 2.7 获取指定路径文件夹所有txt文件名称 1...(1)文件文件夹具有类似只读,隐藏,系统和档案特点。这些特点就是属性。可以使用GetAttr函数来获得文件文件夹属性,具体用法参见文末参考资料[9]。...f一开始不存在,因此,运行代码后,会先创建文件夹f,然后立即窗口中显示: A folder has been created with the name f 2.3 获取指定路径文件夹所有文件和子文件夹名称...其中一个点代表是当前目录,即:C:\a;两个点代表是上级目录,即:C:。 (2)Dir函数只能返回第一层文件夹文件名,子文件夹文件文件夹不返回。

6K21

读取Excel文本框,除了解析xml还可以用python调用VBA

批量提取xlsx文件文本框文本 上面我们已经获得了一个xlsx文件文件夹,下面我们需求是,提取这个文件夹下每个xlsx文件文本框内容将其保存为对应txt格式。...xml方法还是挺麻烦写完上面的方法后我灵机一动,VBA不就有现成读取文本框方法吗?...使用xlwings解决需求 苹果电脑是不支持VBA,上面调用VBA代码对于苹果电脑来说无效,但所幸是xlwings0.21.4版本中新增了访问文本框文本属性text。...没有这个属性,请注意升级: pip install xlwings -U 总结 读取excel数据,基本没有VBA干不了事,python调用VBA也很简单,直接使用pywin32即可。...这样VBA与直接解析xml优劣势就非常明显了: VBA是excel应用直接支持API,代码编写起来相对很简单,但执行效率低下。苹果电脑无法使用VBA,可以使用xlwings已经封装好方法实现。

2.7K20

VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡

例如,下面的示例XML代码和在标准VBA模块代码在运行时满足某条件时隐藏(和取消隐藏)“对齐方式”组: ? customUI元素包括带有Initialize回调过程onLoad属性。...Custom UI Editor中保存该文件,首次Excel打开时,会出现关于Initialize和HideAlignmentGroup过程错误消息提示,因为这两个过程仍然没有标准VBA模块中找到...事实上,可以只是使用一个回调过程来隐藏多个组。这种只使用一个回调思想可以被扩展到选项卡和控件,稍后我们会谈到这方面的内容。 内置选项卡 例如,下面的示例XML代码隐藏“开始”和“数据”选项卡: ?...所有内置选项卡 示例XML代码: ? 功能区所有选项卡都被隐藏,如下图所示: ? 虽然所有的内置选项卡都被隐藏,但仍然可以通过快捷键组合、上下文菜单和上下文选项卡访问内置控件。...然而,动态地隐藏(和取消隐藏)控件更可取,可以设置自已条件来是否使控件隐藏。 例如,下面的示例XML代码“开始”选项卡“字体”组前添加3个按钮: ?

7.8K20

VBA专题10-25:使用VBA操控Excel界面之一个示例程序

Custom UI Editor,单击Insert|Office2010 Custom UI Part。 7. 复制粘贴下面的XML代码: ? ? 8....单击工具栏Validate按钮来检查是否有错误。 9. 保存关闭该文件。 10. Excel打开该文件。对于错误消息单击“确定”。 11. 按Alt+F11激活VBE。 12....插入标准VBA模块,复制粘贴下列VBA代码: Public myRibbon As IRibbonUI '库图像数量 Dim ImageCount As Long '图像文件名 Dim ImageFilenames...Dir("C:\Photos\*.jpg") '遍历文件夹所有jpg文件 '使用jpg文件名填充ImageFilenames数组 Do While Filename...ItemLabel = ItemLabels(index) '可替换,如果项目标签被存储工作表Sheet1单元格区域A1:A7 '使用下面的代码: 'ItemLabel

2.2K10

CTF取证方法大汇总,建议收藏!

与大多数CTF取证挑战不同,现实世界计算机取证任务几乎不会涉及解开巧妙编码字节、隐藏数据、文件夹mastroshka文件或其他复杂问题。...你可能没有可视文件系统查找文件,但很有可能是一个隐藏卷,未分配空间(不是任何分区一部分磁盘空间),已删除文件或非文件文件系统结构,         如http://www.nirsoft.net...Ethscan用于在内存转储查找看起来像网络数据包数据,然后将其解压缩到pcap文件,以便在Wireshark查看,用于提取SQL数据库,Chrome历史记录,Firefox历史等插件。         ...OOXML文件实际上是zip文件容器,这意味着检查隐藏数据最简单方法之一是简单地解压缩文档:         你可以看到,一些结构是由文件文件夹层次结构创建,其余XML文件中指定。         ...Windows文档一个典型VBA宏会将PowerShell脚本下载到%TEMP%,尝试执行它,在这种情况下,你可以使用PowerShell脚本分析任务。

3K31

使用VBA加载宏小心 Workbook.FullName 属性

Workbook.FullNameVBA是一个非常常用属性,返回是工作簿全路径,首先查看一下帮助文件: 返回对象名称(以字符串表示),包括其磁盘路径。String 型,只读。...看到这里,联系平时使用Windows系统经验,应该能想到,这是因为Windows系统查找文件时候,是忽略大小写,所以虽然手动修改了一些字母大小写,Workbooks.Open仍然可以正确打开文件...当然,实际写代码过程,一般不会这样故意去修改文件路径。...我个人有这样一个使用习惯,由于需要使用VBA功能较多,我将一些功能分类编写了不同文件,这些文件存放在同一个文件夹里,只设置加载一个加载宏。...这个加载宏里设置了一个Ribbon动态菜单,单击时候自动遍历所在路径下文件添加button菜单,这个时候显然需要过滤掉本身,使用代码就是: Sub dymOpenAddins_getContent

1.4K40

透明部落:发展历程分析

服务器会使用“设置”类中指定配置: ? 该类包含每个恶意软件组件使用TCP端口值,默认文件名和安装路径。它们需要手动放置特定预定义文件夹。...感染过程中将列出所有目录每个目录,它会使用相同目录名称驱动器根目录创建其自身副本,并将目录属性更改为“隐藏”。USBWorm会模仿Windows目录图标,诱使用户执行恶意软件。...数据盗窃过程会列出设备上存储所有文件复制扩展名与预定义列表匹配: 感兴趣文件扩展名:.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pps,.ppsx,.txt 攻击方式...这些文档通常嵌入了恶意VBA代码,有时还会使用密码保护。 ? 宏将ZIP文件放到%ALLUSERPROFILE%下创建目录,并在同一位置提取内容。...VBA代码: ?

1.5K31

Active APT

创建恶意电子邮件 Outlook VBA 脚本 基于此恶意 VBA 代码“发送至联系人​​列表所有人”行为,我们认为该模块可能导致一些组织认为他们已成为 Gamaredon 目标,而他们只是附带损害...值得注意是,有两个文本文件,一个用于 Word,一个用于 Excel,包含要插入目标文档恶意宏 VBA代码,以及负责查找和破坏现有文档 .NET 程序集。...它将生成可执行文件放在现有目录创建一个计划任务,该任务将每 10 分钟启动一次。从图 6 可以看出,解码后代码仍然有注释,说明 Gamaredon 运算符明显草率。...主要机制是系统上搜索 Word 文档 ( *.doc* ) 并将其名称存储文本文件批处理文件(参见图 9)。...持久性方面,使用了几种不同技术,但最常见是计划任务、自动运行注册表项和利用 Startup 文件夹

7.9K00
领券