EvilClippy权限控制:设置和移除VBA项目锁定保护的终极指南
【免费下载链接】EvilClippyA cross-platform assistant for creating malicious MS Office documents. Can hide VBA macros, stomp VBA code (via P-Code) and confuse macro analysis tools. Runs on Linux, OSX and Windows.项目地址: https://gitcode.com/gh_mirrors/ev/EvilClippy
EvilClippy是一款强大的跨平台工具,专为创建恶意MS Office文档设计。它能够隐藏VBA宏、通过P-Code破坏VBA代码并迷惑宏分析工具,支持Linux、OSX和Windows系统。本文将详细介绍如何使用EvilClippy进行VBA项目锁定保护的设置与移除,帮助安全研究人员和开发者更好地理解Office文档的安全机制。
📌 为什么需要VBA项目锁定保护?
VBA项目锁定保护是保护Office文档中宏代码的重要手段。通过设置锁定保护,可以防止未授权用户查看或修改宏代码,这对于保护知识产权和防止恶意篡改具有重要意义。然而,在安全研究和渗透测试中,有时需要移除或绕过这些保护以分析潜在的安全风险,EvilClippy为此提供了便捷的解决方案。
🔧 EvilClippy的安装与准备
在开始使用EvilClippy进行VBA项目权限控制之前,需要先完成工具的安装和准备工作。
1. 克隆项目仓库
首先,通过以下命令克隆EvilClippy项目仓库:
git clone https://gitcode.com/gh_mirrors/ev/EvilClippy2. 编译可执行文件
根据项目中的编译说明,EvilClippy可以通过Mono或Visual Studio开发者命令提示符进行编译。
使用Mono编译:
mcs /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs使用Visual Studio开发者命令提示符编译:
csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs
编译完成后,将生成EvilClippy.exe可执行文件,用于后续的VBA项目权限控制操作。
🛡️ 设置VBA项目锁定保护
EvilClippy提供了简单易用的命令行选项,用于设置VBA项目为锁定/不可查看状态。
核心命令选项
在EvilClippy中,设置VBA项目锁定保护的核心命令选项是-u或--unviewableVBA。该选项通过修改VBA项目流中的CMG和GC字段,实现项目的锁定保护。
操作步骤
准备目标Office文档:确保你有一个包含VBA宏的Office文档(如
.docm或.xlsm文件)。执行锁定命令:使用以下命令将VBA项目设置为锁定/不可查看状态:
EvilClippy.exe -u input.docm其中,
input.docm是你要处理的目标Office文档。执行该命令后,EvilClippy会生成一个新的文件(默认在原文件名后添加_EvilClippy后缀),该文件中的VBA项目已被设置为锁定状态。
实现原理
EvilClippy设置VBA项目锁定保护的核心代码位于evilclippy.cs文件中。通过正则表达式替换project流中的CMG和GC字段为空值,从而实现项目的锁定:
// 代码片段来自evilclippy.cs if (optionUnviewableVBA) { string tmpStr = Regex.Replace(projectStreamString, "CMG=\".*\"", "CMG=\"\""); string newProjectStreamString = Regex.Replace(tmpStr , "GC=\".*\"", "GC=\"\"" ); // Write changes to project stream commonStorage.GetStream("project").SetData(Encoding.UTF8.GetBytes(newProjectStreamString)); }这段代码将CMG和GC字段的值设置为空字符串,使VBA项目在Office中显示为锁定状态,无法查看或编辑宏代码。
🔓 移除VBA项目锁定保护
除了设置锁定保护,EvilClippy还提供了移除VBA项目锁定保护的功能,使原本锁定的VBA项目恢复为可查看/可编辑状态。
核心命令选项
移除VBA项目锁定保护的核心命令选项是-uu或--viewableVBA。该选项通过恢复project流中的CMG、ID、DPB和GC字段的默认值,解除项目的锁定状态。
操作步骤
准备锁定的Office文档:确保你有一个已被锁定的VBA项目的Office文档。
执行解锁命令:使用以下命令将VBA项目恢复为可查看/可编辑状态:
EvilClippy.exe -uu locked_document.docm执行该命令后,EvilClippy会生成一个新的文件,该文件中的VBA项目已被解除锁定,可以在Office的VBA编辑器中查看和编辑宏代码。
实现原理
EvilClippy移除VBA项目锁定保护的核心代码同样位于evilclippy.cs文件中。通过正则表达式将CMG、ID、DPB和GC字段恢复为默认值,从而解除锁定:
// 代码片段来自evilclippy.cs if (optionViewableVBA) { Console.WriteLine("Making the project visible..."); string tmpStr = projectStreamString; tmpStr = Regex.Replace(tmpStr, "CMG=\"?.*\"?", "CMG=\"CAC866BE34C234C230C630C6\""); tmpStr = Regex.Replace(tmpStr, "ID=\"?.*\"?", "ID=\"{00000000-0000-0000-0000-000000000000}\""); tmpStr = Regex.Replace(tmpStr, "DPB=\"?.*\"?", "DPB=\"94963888C84FE54FE5B01B50E59251526FE67A1CC76C84ED0DAD653FD058F324BFD9D38DED37\""); tmpStr = Regex.Replace(tmpStr, "GC=\"?.*\"?", "GC=\"5E5CF2C27646414741474\""); string newProjectStreamString = tmpStr; // Write changes to project stream commonStorage.GetStream("project").SetData(Encoding.UTF8.GetBytes(newProjectStreamString)); }这段代码将CMG、ID、DPB和GC字段设置为特定的默认值,使VBA项目恢复为可查看和编辑状态。
💡 高级技巧:结合其他选项使用
EvilClippy还提供了其他有用的选项,可以与VBA项目锁定保护功能结合使用,以实现更复杂的操作。
1. 隐藏/显示VBA模块
隐藏模块:使用
-g或--guihide选项可以将VBA模块从VBA编辑器的GUI中隐藏:EvilClippy.exe -u -g input.docm显示模块:使用
-gg或--guiunhide选项可以将隐藏的VBA模块重新显示在VBA编辑器的GUI中:EvilClippy.exe -uu -gg locked_document.docm
2. 删除元数据
使用-d或--delmetadata选项可以删除Office文档中的元数据,保护文档创建者的信息:
EvilClippy.exe -u -d input.docm3. 设置随机模块名称
使用-r或--randomnames选项可以为VBA模块设置随机名称,增加分析难度:
EvilClippy.exe -u -r input.docm📝 总结
EvilClippy是一款功能强大的工具,为VBA项目的权限控制提供了便捷的解决方案。通过本文介绍的-u(设置锁定)和-uu(移除锁定)选项,你可以轻松地控制VBA项目的可查看性和可编辑性。无论是出于安全研究目的还是日常开发需求,EvilClippy都能帮助你更好地管理Office文档中的VBA宏代码。
在使用EvilClippy时,请确保遵守相关法律法规,仅在授权的环境中使用该工具进行安全测试和研究。合理利用EvilClippy的功能,可以提高对Office文档安全机制的理解,从而更好地保护自己的文档和系统安全。
如果你想深入了解EvilClippy的更多功能,可以查看项目中的源代码文件,如evilclippy.cs和options.cs,以获取更详细的实现细节和命令选项说明。
【免费下载链接】EvilClippyA cross-platform assistant for creating malicious MS Office documents. Can hide VBA macros, stomp VBA code (via P-Code) and confuse macro analysis tools. Runs on Linux, OSX and Windows.项目地址: https://gitcode.com/gh_mirrors/ev/EvilClippy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考