这些加载项都是为了使用户能够利用高性能函数,为 Excel 工作表提供 API 调用接口。与 VBA 等其他接口相比,该方式能够更有效地扩展 Excel 的能力,使其支持更多功能,例如多线程。...△ 提示信息 攻击者通常将代码置于 xlAutoOpen函数中,该函数会在加载项被激活时立即触发执行。这意味着,与要求用户启用宏的 VBA 宏不同,受害者只要打开就会执行恶意代码。...△ 构建工具截图 EXCEL-DNA 生成加载项 发现的 XLL 文件大部分都有相同的结构,本质上说,XLL 文件是包含 xlAutoOpen导出函数的 DLL 文件。...△ 文件资源段结构 其中包含 Excel-DNA 项目组件以及加载项,可以通过查看资源名或者同样存储在资源中的 XML 定义文件来识别包含 Excel 加载项的 XLL 文件。...△ 解密代码 一旦数据被解密,样本可以提取三个 DLL 文件名、五个 API 函数名、Payload 的 URL 以及存储 Payload 的本地文件路径。
这些加载项分为两类:一类是以Excel加载宏格式(文件后缀名为“.xla”【2007版之前的后缀名】、“.xlam”【2007版本之后的后缀名】)存储的;另一类是以.dll文件封装的com加载宏。...第二种com加载宏加载比较简单,下载软件之后默认安装,系统会自动把.dll文件载入到Excel的相应的com加载宏目录里,打开Excel文件就可以在主界面菜单栏里面看到!...然后进入Excel主界面菜单栏,找到开发工具,点选加载项,进入,浏览,然后你会看到.xlam加载宏的存储文件夹,然后鼠标右键,黏贴。...今天要给大家分享两款,Excel中制作高级图表的必备神器,顺便演示一下怎么调用加载宏: 第一个是Ec_Chart_Alignment.xlam ,这款插件的主要功能是,可以将Excel图表的数据标签轻松批量移动到绘图区的上...详细教程请参考刘万祥老师的搜狐博客,网址:http://excelpro.blog.sohu.com/303863138.html 另一款是名叫XYChartLabeler 的.dll格式的com加载宏
攻击者通常将他们的代码放在xlAutoOpen函数中,该函数在加载项被激活时立即执行。...将 Microsoft Excel 配置为仅允许受信任的发布者签名的加载项。 配置 Microsoft Excel 以完全禁用专有加载项。...这包括 Excel-DNA 项目组件以及加载项,在本例中是恶意软件释放程序。您可以通过查看资源名称或同样存储在资源部分中的 XML 定义文件来识别包含 Excel 加载项代码的文件。...图 5 – Excel-DNA XML 定义。 在此示例中,包含恶意代码的加载项是在 .NET 中开发的,位于MODDNA资源中。...image.png 图 8 - 自定义恶意 Excel 加载项中的 jmp 混淆。 为了了解它的工作原理,我们删除了 jmp 指令,只分析了相关指令。我们注意到加密数据位于可执行代码之后的文件中。
2.3《Excel VBA从入门到精通》 作者:郭刚,陈峰 等 简介:本书分为五篇,其中第一篇是VBA基础知识篇,主要内容包括VBA的概念、宏和VBA开发环境;第二篇是VBA基础语法篇,主要内容包括VBA...语法基础、VBA基础语句、程序结构控制语句、过程、Sub与Function过程;第三篇是Excel VBA对象篇,主要内容包括Excel VBA对象模型和应用程序对象、工作簿对象、工作表对象、单元格对象和图表对象...;第四篇是VBA高级应用篇,主要内容包括自定义Excel 2010的用户界面、工作表控件、界面设计、XML与VBA、加载宏和数据库编程等;第五篇是综合实例与面试问答篇,主要讲解了成绩管理系统和日程安排表两个综合实例...四、 数据分析工具利器-SAS 4.1《SAS统计分析应用》 作者:董大钧 主编 简介:本书基于SAS 9.1.3中文版本编写,介绍了SAS Learning Edition基于窗口点击式环境以及Base...4.3《SAS编程与数据挖掘商业案例》 作者:姚志勇 编著 简介:本书是作者多年来在企业实践工作中的经验总结,详细讲解了使用SAS进行商业数据挖掘的方法,其中包含了目前公开出版的诸多SAS教材没有的大量实战内容
微软的 Visual Studio IDE 中提供了一个软件开发工具集 VSTO,通过 VSTO 可以支持在 .NET 中开发 Office 加载项,还允许创建能够执行这些加载项的 Office 文档文件...VSTO 加载项可以与为其开发的特定 Office 应用程序(Word、Excel 等)相关联,并将在每次启动该应用程序时执行,从而顺带实现了持久化的能力。...本地 VSTO 本地的 VSTO 会将 .NET 编译的 .DLL 加载项及其依赖项与为执行它而创建的 Office 文档存放在一起,例如 ISO 文件中。...全部文件 一旦受害者打开恶意文档,就会提示用户安装加载项,与之前使用 VBA 宏时引诱用户启用内容十分相似。...例如,恶意 Word 文档从远程获取 VSTO 加载项: 远程 VSTO 下载的 DLL 加载项中,嵌入了下载加密的 ZIP 文件的代码。
EvilClippy.exe -gg macrofile.doc Stomp VBA(滥用P代码)VT 查杀 12/60 效果很好,过火绒 将来自文本文件fakecode.vba的虚假VBA代码放在所有模块中...请注意,VBA项目版本必须与主机程序匹配才能执行P代码 EvilClippy.exe -s 1.vba macrofile.doc 参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序...,这里我们需要写一个正常 无毒正常的 vba 脚本 注意:VBA重踏不适用于以Excel 97-2003工作簿(.xls)格式保存的文件 Sub Hello()Dim XX=MsgBox("Hello...实战过程中可以远程加载我们的木马。...可以将IYQ简单的理解成内置在excel中的一种特殊‘web浏览器’(不能加载脚本),通过IQY【即web查询】语句,可以直接将各类web上的列表数据轻松引入到当前的excel中,而正是因为这样,从而给了我们利用
MyVBA加载宏主要功能是设置为自动加载,作为打开其他宏文件的一个程序,做好后大概是这么一个东西: ?...制作过程: 创建加载宏文件 将所有Excel VBA相关文件都存放到一个目录下面,包括MyVBA加载宏,设置MyVBA加载宏为Excel加载项: ?...的临时文件 If VBA.InStr(RetFiles(i), "~$") = 0 Then '取出文件名称...(RetFiles, vbNewLine) & vbNewLine & "" End If End Sub '打开文件,文件名在control的Tag属性里 Sub rbOpenMacroFile...,后续将不断添加具有功能的加载宏,作为exe可执行文件那样管理。
Excel2010版本以上有一个屏幕截图功能: ? 但这个功能在使用的时候,不是很方便,电脑版微信的截图功能就比较丰富,使用也很方便。...使用VBA来调用微信的dll就可以实现在Excel里使用微信的截图功能了: ?...,所以要使用API,首先定义微信dll的API: Private Declare Function PrScrn Lib "PrScrn.dll" () As Long VBA在加载dll的时候,默认是在系统目录中查找对应的...dll的,所以,可以先把PrScrn.dll复制一份到系统目录,但不建议轻易去操作系统目录,我们使用另外一种方法来加载dll。...或者微信安装目录没有PrScrn.dll,也可以百度搜索PrScrn.dll,下载存放到电脑上,然后设置程序中的dllpath就可以。
上一篇总结了一些入门的知识内容,本文结合个人经验,总结编程软件方面的内容,对各种软件在量化上的应用做一个对比,供参考。...VBA是比较特殊的一门语言,内嵌在OFFICE中,是VB的简化版,不仅仅是针对EXCEL了,WORD,PPT里都可以用,有时候也叫宏,基本是一样的,只不过VBA是码的,宏是录的。...VBA最强大的地方在于跟OFFICE的交互,进而实现批量和自动化,这个是前面几种语言比不了的,比如你可以用python/r做统计分析把数据输出到excel里,然后再用vba作图/算各种统计量最后出一份报告或者做一份模板...可以通过vba把excel的一张表视为数据库中的表,用select语句进行操作,如果数据量很大的话,上百万,直接操作分分钟卡死,用vba会很快。...个人理解,excel中写vba尽量减少激活各个sheet单元格,跳来跳去,有什么东西可以直接往里写,这样会快一些。
再进行数据加载过程,在模板文件中实现仅对当次循环文件的数据处理加工,并将其保存后,供下游的SSIS数据流任务调用此模板文件,实现模板文件的内容上传到数据库中。...dotNET与VBA在Excel对象模型上的差别 在dotNET脚本中,引用Excel对象模型,理论上可以替代VBA的脚本,但本轮测试发现,在dotNET上的Excel对象模型,貌似未能有最全的开放给VBA...就算用上了最新的PIA,16版的Microsoft.Office.Interop.Excel.dll,仍然会对一些新方法如调用Workbook的Queries对象报错。...区别于一般的PowerQuery的方式仅提供读取数据的功能,本篇使用SSIS还会对数据进行抽取完的归档操作,归档过程中,通过重命名文件名的方式,方便查阅数据归档的操作时间。...最终效果 将SSIS包进行执行后,结果如下: 加载过后的文件已归档成功,加上时间戳信息。 数据库数据成功加载。 在源文件中,特意做的不同文件不同标识,证明文件已按预期上传成功。
最终用户使用的方式是用主系统完成大部分工作。如果想调整Excel的报表样式,可以直接用Excel来完成(会在Excel上提供一些自定义的菜单和按钮,现在通过加载项【Add-ins】来说实现) ?...第3种是office.js,这是微软官方提供的一个基于JavaScript的程序库。基于Node.js,可以用JavaScript完全取代VBA实现Excel以及Office其他成员的加载项。...xlwings可以单独使用,也可以通过xlwings office加载项提供的RunPython函数运行Python代码。...在xlwings的安装目录有一个xlwings.xlam文件,该文件是Excel的加载项文件,也就是Excel VBA的发行包文件。...现在随便开启一个空的Excel workbook,然后点击“工具”>“Excel加载项”菜单项,会打开如下图所示的对话框,找到xlwings.xlam文件,并选中该文件。 ?
第一部分:安装xlwings 安装xlwings有两个部分:Python库和Excel加载项。...先安装Python库: pip install xlwings 然后从xlwings的官方Github存储库下载这个Excel加载项,即页面上的xlwings.xlam文件。...(或者,你可以到知识星球中的完美Excel社群下载) 将xlwings.xlam文件放入Excel加载项文件夹,该文件夹所在位置为: C:\用户\xxxx\AppData\Roaming\Microsoft...然后,打开Excel,选择“文件->选项->加载项”。单击“管理:Excel加载项”旁边的“转到”按钮,如下图1所示。...第四部分:在Python中编写用户定义的函数并在Excel中调用该函数 高级Excel用户都知道,我们可以在VBA中创建用户定义的函数。这项功能很棒,因为并非所有内置的Excel函数都适合我们的需要。
xlwings 的加载项 暂且不解释他的原理,稍后在实践中再讲解其中的机制。...---- 直觉理解运行机制 目前为止,我们没有编写一句 vba 代码,只是简单定义出一个加载数据的 Python 自定义函数,就可以在 Excel 上使用公式实现效果。...首先,我们之所以能在 Excel 上输入公式时,出现我们的自定义函数,是因为在这个 Excel 文件中,存在 vba 代码,定义了同名的方法: 从 vbe 界面中可以看到,当我们点击"导入函数"按钮时...,xlwings 在按照 Python 文件中定义的函数,生成了对应的 vba 代码 其中也能看见,调用时需要 Python 文件名,函数名字,和其他的参数 vbe 是 编写 vba 代码的界面。...这问题由于 xlwings 在执行 vba 的方法时,会启动一个 Python 进程(只有首次运行的时候),然后加载 myproject.py 中的代码。但他没有设置启动目录。
需要在对应版本的.NET环境才能正常运行,通过c++编写的dll更加通用 通过rundll32.exe或者regsvr32能够加载dll,但要求dll包含特定的导出函数 参考: 《Code Execution...persistence》 方法11:Office加载项 如果系统已安装office软件,可通过配置Office加载项实现劫持,作为被动后门 常用利用方式: Word WLL Excel XLL Excel...VBA add-ins PowerPoint VBA add-ins POC:https://github.com/3gstudent/Office-Persistence 参考: 《Use Office...MSDTC服务加载dll,实现自启动,并绕过Autoruns对启动项的检测 参考: 《Use msdtc to maintain persistence》 方法14:Hijack CAccPropServicesClass...,劫持Explorer.exe对linkinfo.dll的加载 方法17:劫持Office软件的特定功能 通过dll劫持,在Office软件执行特定功能时触发后门 参考: 《利用BDF向DLL文件植入后门
虽然Excel催化剂已经包含了大量的功能,但面对现实工作中,各种纷繁复杂的场景,仍然显得不够。...VBA调用自定义函数原理 在工作表自定义函数的开发中,存在两种类似的自定义函数,一种是存储在xlam或xlsm上的,一种存储在xll文件上的。其开启关闭都在Excel普通加载项处,如下图所示。 ?...第一个参数是宏名称,即自定义函数名称,其他参数为自定义函数使用的参数。 能够使用Application.Run调用加载项的自定义函数的前提是此加载项已经在启用状态,否则是不能生效强行调用会报错。 ?...模块1.testFunc") 注意:在xll文件中的自定义函数没有全名的概念,所以还是保留着只引用函数名的调用方式,如果有重名,笔者也不知道会出现什么情况,有兴趣的读者可以自行测试 VBA调用Excel...催化剂开发的自定义函数效果 因为Excel催化剂使用.net技术开发了大量的自定义函数,所以在VBA的开发过程中,完全可以复用这些的函数,减少自己的代码量,同时因为使用了.net技术,许多在VBA里难以实现的算法
Excel 文件内部不仅使用了自动运行的 VBA 代码(Workbook_Open),还使用了 Excel 4.0 宏代码。...Macro1是一个隐藏的工作表,包含并执行 Excel 4.0 宏代码,在文件 xl\workbook.xml中定义。...%\\icXBOuZukiASGnpfVowZ.dll ReportDeviceAdd\"") 最后,Rundll32.exe 加载 Dridex 的 icXBOuZukiASGnpfVowZ.dll并调用其名为...深入理解 Dridex Dridex 包含两个导出函数: DllEntryPoint 是 DLL 的入口函数 FWroeeWqoinnmw 是恶意函数 Dridex 最终的导出函数列表如下所示: 加载...Dridex 的步骤如下所示: Rundll32.exe 调用 LoadLibrary() 将 DLL 加载到内存中 调用 DLL 的入口点函数 DllEntryPoint 来初始化模块,包含脱壳 调用函数名
Office 的外部插件是 DLL 文件,扩展名不同,表示使用不同的应用程序,例如 .wll 代表 Word,.xll 代表 Excel。...最好的方法是创建一个不会导致应用程序崩溃的自定义 DLL 文件 DLL_PROCESS_ATTACH 可以把 DLL 加载到当前进程的虚拟地址空间(Word、Excel、PowerPoint 等),DLL...Word Add-Ins 具有“.wll”文件的扩展名,本质上是放置在 Word 启动文件夹中的 DLL 文件,每次 Microsoft Word 启动时都会加载: C:\Users\Admin\AppData...下次 Word 启动时,将加载加载 DLL 程序,并执行恶意文件: ? 还有个 Powershell 版本的脚本,可以生成相关文件(WLL、XLL、VBA)。...Office test 在注册表中创建一个注册表项,在 Office 软件启动时,会自动加载该注册表项中指定的 DLL 文件,创建命令如下: reg add "HKEY_CURRENT_USER\Software
通过64位office软件打开早期的excel文件,如果代码中存在早期面向32位office编写的VBA代码,可能会存在上述的编译错误。...(2)如果没有访问文档中 VBA 代码的权限,请与文档作者联系,让作者更新隐藏模块中的代码。...只有在 64 位版本的 Microsoft Office 中运行 VBA 代码时,才需要修改 VBA 代码。...在 64 位 Office 中运行旧 VBA 代码的问题在于,将 64 位加载到 32 位数据类型中会截断 64 位数。这会导致内存溢出、代码中出现意外结果,并且可能导致应用程序故障。...调用DialogBoxParamA显示VB6INTL.dll资源中的第4070号对话框(就是输入密码的窗口) '若DialogBoxParamA返回值非0,则VBE会认为密码正确,所以我们要hook
使用传统的VBA方式开发,开发过程简单,布署也方便,直接把Excel的xlsm或xlam文件发给用户,用户打开就可以使用,但现在问题来了,如果出现前面所说的程序有bug和需要增加新的功能,我们怎么办?...一般情况下,我想都是需要重新开发一个新的xlsm或xlam文件,然后重新发给用户,这当中如果频率太频繁,用户手里积累了好多个xlsm或xlam,也很难分清具体哪个是最新的(就算文件名上可以标识,但很难保证每个用户都每个用户都记得去下载最新版的...用户使用Excel就像使用一个网页浏览器一样,每次打开Excel,都能得到最新的功能,而整个升级过程,完全不需要用户做半点操作,一切都是自动完成,瞬间完成,代码和数据分离,整个更新过程只是代码部分,不需加载和传输用户的数据部分...例如传统VBA是以文档的形式和用户做传输,用户对文件的来源和文件内的代码的安全性很难把控,就算相信某个开发者,但也很难保障到最终拿到手里的文件是出自此开发者的,传输过程中没有被恶意修改过的等等。 ?...同样的发VSTO的方案中,用户也需要手动配置好信任开发者存放dll等代码文件的位置,如果开发者不按要求放到某个位置,用户机器可以拒绝对其信任。
然后我们将administrator用户对应的项中的F值复制到test$对应xiang中的F值,然后保存 ?...该注册表对应COM对象MruPidlList,作用于shell32.dll,而shell32.dll是Windows的32位外壳动态链接库文件,用于打开网页和文件,建立文件时的默认文件名的设置等大量功能...Excel XLL Excel dll的编写可以参考三好师傅这个项目:链接 用三好师傅powershell脚本生成现成的Excel dll:链接 将生成的DLL文件复制到%appdata%\Microsoft...PowerPoint VBA add-ins 用三好师傅powershell脚本生成现成的PowerPoint dll:链接 将生成的DLL文件复制到%appdata%\Microsoft\AddIns...helper yourdll.dll来添加拓展功能,添加了之后,在启动netsh的时候就会加载我们dll文件 添加自定义helper dll 关于helper dll的编写可以参考这个项目:链接 我们可以使用两种方式来添加
领取专属 10元无门槛券
手把手带您无忧上云