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

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

下面就以威胁分析员角度介绍几种技术 VBA stomping VBA 在 Office 文档可以以下面三种形式存在 1、源代码: 模块原始源代码被压缩,并存储在模块流末尾。...)探究分析此类样本方法: 首先创建一个文档 ?...可以看到流模块反编译源代码被替换成了伪造 VBA 代码,下面使用工具进行分析 OleTools ? Olevba 识别出来了所有的并给出 VBA stomping 警告 Oledump ?...静态看即可 如果想要调试,那么需要使用对应版本 Office,这里通过 _VBA_PROJECT Version 结构总结了一下 32 位下版本号,64 位研究方法一样。...”替换为“txt” 二、很多诱饵文档喜欢在 VBA 启动脚本程序执行 ps 或者从网络上下载一段 shellcode 或恶意程序等等,这样非常容易被杀软行为拦截拦住,同时沙箱可以根据进程链流量判定该

4.5K30

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

Workbook.FullName在VBA一个非常常用属性,返回是工作簿全路径,首先查看一下帮助文件: 返回对象名称(以字符串表示),包括其磁盘路径。String 型,只读。...再仔细一看,会发现故意将一些字母大小写替换了,文件能正确打开,但FullName返回字符串原始字符串有差异了。...但是,存在这样一种场景: 对经常使用VBA的人来说,会写一些常用功能制作为加载使用使用过加载应该知道,一旦加载被移动了位置,会出现如下提示: ?...个人有这样一个使用习惯,由于需要使用VBA功能较多,将一些功能分类编写了不同宏文件,这些文件存放在同一个文件夹里,只设置加载一个加载。...这个加载里设置了一个Ribbon动态菜单,单击时候自动遍历所在路径下宏文件,并添加button菜单,这个时候显然需要过滤掉本身,使用代码就是: Sub dymOpenAddins_getContent

1.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义脚本或,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...通过编写VBA代码,你可以利用Excel各种功能对象模型,以及相关函数方法,实现更高级操作和自定义功能。 VBA可以通过录制方式生成初始代码,也可以手动编写代码实现更复杂功能。...案例1 比如我需求是:写一个基本Excel vba,用于将表格第3行到第9行每一行数据转换为一个工作簿 VBA如下: Sub SplitRowsToNewWorkbooks()...End Sub 请将代码"路径\文件名.xlsx"替换为你希望保存路径和文件名。运行该后,会将第3行到第9行每一行数据复制到一个工作簿,并将其保存在指定路径下。...”生成新表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合编写VBA ---- 案例2 又比如我需求是:编写一个Excel VBA,将工作薄,每个工作表图片,移动到A1

42520

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义脚本或,以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...通过编写VBA代码,你可以利用Excel各种功能对象模型,以及相关函数方法,实现更高级操作和自定义功能。 VBA可以通过录制方式生成初始代码,也可以手动编写代码实现更复杂功能。...案例1 比如我需求是:写一个基本Excel vba,用于将表格第3行到第9行每一行数据转换为一个工作簿 VBA如下: Sub SplitRowsToNewWorkbooks()...End Sub 请将代码"路径\文件名.xlsx"替换为你希望保存路径和文件名。运行该后,会将第3行到第9行每一行数据复制到一个工作簿,并将其保存在指定路径下。...”生成新表格,但“回炉再造”一遍就好,重要是学会ChatGPT与Excel结合编写VBA ---- 案例2 又比如我需求是:编写一个Excel VBA,将工作薄,每个工作表图片,移动到A1

48410

excel编程 c语言,(巨集)

大家好,又见面了,是你们朋友全栈君。 (Macro, 巨集),是一种批处理称谓。 计算机科学里是一种抽象(Abstraction),它根据一系列预定义规则替换一定文本模式。...C语言预处理器工作只是简单文本搜索替换使用附加文本处理语言如M4,C 程序员可以获得更精巧。...一个 C 可以定义一段语法替换,然而一个 Lisp 却可以控制一节代码计算。 获得了控制代码执行顺序(见惰性计算非限制函数)能力,使得新创建语法结构与语言内建语法结构不可区分。...这一限制可以通过用更强大编程语言,如VBA创建一个计算机程序在此弱编程语言里生成一个特别的解决。...需要针对每一个数据集合生成新 .mac 文件。 == 应用 == 应用程序也可以使用一种类似机理系统允许用户将一系列(一般是最常使用操作)自定义为一个步骤。

1.6K20

如何使用Codecepticon对C#、VBAPowerShell源代码进行混淆处理

关于Codecepticon Codecepticon是一款功能强大代码混淆处理工具,该工具专为红队紫队渗透测试安全活动而开发,在该工具帮助下,广大研究人员可以轻松对C#、VBA5/VBA6...(PowerShell源代码进行混淆处理。...这也就意味着,我们无法向Codecepticon传递一个doc(x)或xls(x)文件,因此需要传递模块本身源代码。...命令行参数(混淆) 在对一个应用程序或脚本进行混淆处理之后,相关命令行参数很有可能会发生变化。下面的例子,我们使用了HTML映射文件寻找新参数名称。...HTML映射文件一个参数,我们将会获取到下列信息: 替换所有的字符串后,结果如下: ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance

1.9K20

VBA专题10-14:使用VBA操控Excel界面之在功能区添加自定义库控件

创建一个新工作簿,并将其保存为启用工作簿。 2. 关闭该工作簿,然后在Custom UI Editor打开该工作簿。 3....如果需要,可右击在Custom UI Editor插入图像改变其ID。如图1所示。 ? 图1 7. 复制并粘贴下列XML代码: ?...在Excel打开该文件。 12. 按Alt+F11键激活VBE。 13. 插入一个标准VBA模块,并粘贴在步骤9复制回调代码。 14. 在过程添加一个MsgBox语句测试控件。...图2 代替上述第4步第5步手工插入图像,可以通过使用VBA过程使用相同图像填充库。通过赋VBA过程名称到loadImage回调属性实现。下面列出了XML代码VBA代码: ?...可以包括MsgBox语句来看看该过程是如何遍历每个元素项。 (注意,试着使用png图像但没有成功。)

2.9K10

VBA数据库——写个类操作ADO_历史DB

历史DB:使用文件选择器来找需要打开数据库,已经比较方便了。 但是如果是经常使用数据库,还是希望能够一键就打开,这种时候就需要在菜单上显示出来。...如果是在customUIxml里直接写进去,又不方便修改,所以更好方法是在customUIxml使用dynamicMenu动态添加。...这样就需要有地方保存常用数据库信息,那保存信息的话自然可以直接在加载里保存,因为加载本身也是一个Excel,也有工作表,也可以在单元格存储内容,但这样就又把数据代码放一起了。...既然是操作数据程序,那么就用数据保存这些信息,使用是sqlite数据保存: '动态显示历史打开过DB,保存在DBOperate.sqlite Sub dymHistoryDBPath_getContent...这样dynamicMenu就动态将常用数据库显示出来,每次需要打开时候只需要点击dynamicMenu下按钮菜单即可: '历史菜单打开数据库 Sub rbdymOpenDB(control As

52120

VBA专题10-9:使用VBA操控Excel界面之在功能区添加自定义按钮控件

添加按钮 如果要在内置功能区选项卡添加两个按钮,在单击这些按钮时会调用VBA过程,那么执行下面的步骤: 1. 创建新工作簿并保存为启用工作簿。 2....选择“Insert | Sample XML | Custom Tab”,作一些修改,或者复制并粘贴下面的XML代码,在功能区“插入”选项卡添加包含两个按钮(标记为Insert 0Insert 1,...选项卡元素: idMso属性值是内置选项卡名称。本例,TabInsert是“插入”选项卡idMso。如果要在其他内置选项卡插入按钮,那就使用其他选项卡idMso替换掉TabInsert。...如果要使用自已设计图像,只需使用image属性替换掉imageMso属性。 onAction属性是一个回调属性。该属性值是在单击按钮时要执行VBA过程名称。 5....插入一个标准VBA模块并粘贴刚才复制回调代码。 11.

4.9K30

红队 | CS加载上线初探

那么关于安装录制就不在这里详述了,我们再来把视线转向我们今天主角——宏病毒 宏病毒是一种寄存在文档或模板计算机病毒,存在于数据文件或模板(字处理文档、数据表格、数据库、演示文档等),使用语言编写...当模板被感染之后,系统任何一个文档被打开,都会执行模板病毒,宏病毒进行传播 宏病毒感染方案就是让在这两类文件之间互相感染,即数据文档、文档模板 宏病毒也可以通过网络进行传播,譬如电子邮件 0x02...找到word路径下_rels目录再找到settings.xml_rels这个文件 ? 这里用notepad++打开发现这里他是加载了一个远程网站,因为他要加载模板就会访问远程 ?...关于EvilClippy原理如下: EvilClippy使用了OpenMCDF库修改MS OfficeCFBF文件,并利用了MS-OVBA规范特性。...该工具重用了部分Kavod.VBA.Compression代码实现压缩算法,并且使用了Mono C#编译器实现了在Linux、macOSWindows平台上完美运行。

2.7K30

二 详解VBA编程是什么

大家好,又见面了,是你们朋友全栈君。...详解VBA编程是什么 直到 90 年代早期,使应用程序自动化还是充满挑战性领域.对每个需要自动化应用程序,人们不得不学习一种不同自动化语言.例如:可以用EXCEL语言来使EXCEL自动化,使用...* VBA一个关键特征是你所学知识在微软一些产品可以相互转化. * VBA可以称作EXCEL”遥控器”. VBA 究竟是什么?...EXCEL环境基于应用程序自动化优点 也许你想知道VBA可以干什么?使用VBA可以实现功能包括: 1. 使重复任务自动化. 2. 自定义EXCEL工具栏,菜单界面. 3....替换默认名主要是便于分别这些。 ★ 名最多可为255个字符,并且必须以字母开始。其中可用字符包括:字母、数字下划线。不允许出现空格。通常用下划线代表空格。

5.6K20

VBA实用小程序61: 在文件夹内所有文件运行在工作簿所有工作表运行

例如处理类似的数据工作簿文件并想要提取数据或转换该工作簿。下面给出了适用这种情况一些VBA程序,这些程序代码整理自analystcave.com,供有兴趣朋友参考。...2.打开一个单独Excel进程(应用程序),然后逐个打开每个文件。 3.使用要在每个打开工作簿上运行代码替换“在这里放置你代码”部分。 4.每个打开工作簿在关闭时不会保存所作修改。...下面的内容与前述内容几乎相同,但是请注意声明了一个全局变量fileCollection,这将首先用于存储子文件夹中标识所有文件,并且仅用于在此VBA集合存储文件上运行所有之后。...MsgBox "在所有工作表已完成执行" End Sub 代码: 1.打开ActiveWorkbook每个工作表而不是ActiveSheet,可以根据需要删除If语句。...2.使用要在每个打开工作表上运行任何代码替换“在这里放置你代码”部分。

4.5K11

(ExcelVBA编程入门范例)

大家好,又见面了,是你们朋友全栈君。 很喜爱VBA,喜欢使用她对Excel操作实现所需功能,更喜欢使用VBA控制Excel以及实现结果后那种感觉。...---- VBE编辑器及VBA代码输入调试基本知识 在学习这些实例过程,最好自已动手将它们输入到VBE编辑器调试运行,查看它们结果。...在VBE编辑器代码模块输入VBA代码,通常有以下几种方法: ■ 手工键盘输入; ■ 使用录制器,即选择菜单“工具————录制新”命令,将所进行操作自动录制成宏代码; ■ 复制/粘贴代码...调试VBA代码 在VBE编辑器菜单,有两项与调试运行有关菜单项,即“调试”菜单“运行”菜单,它们提供了各种调试运行手段。在现阶段进行代码调试时,常用到有以下几个: ■ 逐语句。...图00-09:帮助搜索窗口 ■ 可以按F2键,调出“对象浏览器”窗口(如图00-10所示),在搜索文本框输入需要帮助关键词,将会在“搜索结果”中出现一系列相关对象及方法、属性列表,单击相应对象则会在

4.1K20

常用功能加载——单元格数据连接

经常用Excel的人,应该会经常需要把Excel里数据复制到Word等其他软件,复制过去经常会碰上格式上问题。...还有时候需要复制一小块单元格区域,可是复制过去可能就是一个表格,或者是被Tab符号分隔开内容,并不是真正需要: ?...默认从Excel复制数据,(如果是复制到Word这类支持表格软件,会复制表格过去,这个时候还可以进一步转换为文本),列与列之间是使用Tab连接,上一行与下一行是使用换行符连接。...如果列之间连接符Tab行之间连接符换行符可以自定义就好了,那么,我们实现这么一个复制功能: ?...文件夹里vbapFunc.xlam里,然后常用功能加载通过工具-引用来使用这个文件: Sub SetClipText(str As String) Dim objData As Object

1.9K20

Excel文档暗藏危机?黑客利用.NET库生成恶意文件可绕过安全检测

近期,NVISO Labs安全研究人员发现一个新型恶意软件团伙利用一个新技术生成Excel文件,无需使用Microsoft Office即可创建包含大量Excel工作簿,这些恶意Excel文件比较难被检测到...开发人员会使用该库添加“导出为Excel”或“另存为电子表格”功能,简单来说,可用来生成多种电子表格格式文件,甚至支持Excel 2019。...“当我们注意到恶意文件没有经过编译代码,并且也缺少Office元数据时,我们很快想到了EPPlus。该库还将创建OOXML文件,而无需编译VBA代码Office元数据。”...安全研究团队在报告写到。 Epic Manchego利用该库EPPlus来生成Office Open XML(OOXML)格式电子表格文件。...OOXML电子表格使用扩展名.xlsx.xlsm(用于带有电子表格)。 使用EPPlus创建VBA项目时,它不包含已编译VBA代码。

2.8K20

Agent Tesla新感染链解析

感染链多个阶段在 RTF 文档中使用 OLE 对象,在 OLE 对象 OOXML 包含混淆 VBA 代码,VBA 代码执行 Powershell 代码,最终释放 Agent Tesla 程序。...这五个请求时由 RTF 带有的 5 个嵌入式 OLE 对象产生,每个对象都包含一个 OOXML。每个 OOXML 内部都含有一个 VBA ,当用户启用宏代码时,其中一个将会被执行。...每个 OOXML VBA 代码都很短,而且带有很多空格换行符阻碍研究人员进行分析。 ? 为了阻止对代码进行静态分析,代码使用变量包含在每个 OOXML 中表格特定单元格内。...其中一个主要变量是较长混淆字符串,在 OOXML xl/sharedStrings.xml 。...实际上,诸如 oletools oledump 之类静态分析工具无助于提供有关 VBA 代码任何详细信息。此外,使用 ViperMonkey 对 VBA 进行动态分析也并不成功。

1.4K30

VBA专题10-6:使用VBA操控Excel界面之执行命令以及激活功能区选项卡两种方法

执行在功能区不在功能区命令 在上篇文章,通过下面的语句执行MinimizeRibbon命令: Application.CommandBars.ExecuteMso(idMso) 该方法仅接受...一种是使用SendKeys方法模拟按键,就好像是手工按活动窗口中键一样;另一种是使用XMLVBA代码。...XMLVBA代码(Excel 2010及以后版本) 激活功能区选项卡另一种方法是使用XMLVBA代码。执行下列步骤: 1. 下载CustomUI Editor并安装。 2....创建新工作簿并将其保存为启用工作簿。 3. 关闭该工作簿并在CustomUI Editor打开。 4...."> onLoad是一个回调属性,有一个VBA过程名称赋给它,本例过程命名为Initialize,当打开工作簿时调用此过程。

3.5K20

Excel880 VBA代码助手专业版正式发布OFFICE+WPS均可用 兼容32+64 鼠标中键快捷插入代码

历时一个紧张开发,VBA代码助手专业版终于问世了,对原加载VBA代码助手进行了全面升级,焕然一新代码助手重装上阵,希望一如既往带给大家最好代码收藏管理快速插入体验 !...以前老朋友应该会很快上手,操作体验基本老版代码助手一致,主要是改进了稳定性保存速度,新朋友请认真阅读使用说明书,自己多多体会,相信也能很快入手。...本程序数据库及配置文件在 安装目录\date\ 可自己手工硬备份,在需要恢复时候替换数据即可 注意:程序在安装时需要Windows登录账户具有管理员权限,最好是右键管理员安装,安装程序会将插件信息写入注册表...管理面板搜索代码,双击树节点插入。...VBE写入 搜索窗口中,可全文搜索,包含代码名,标签代码内容。

3.4K20

创建MyVBA加载

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

99820

常用功能加载——替换不确定数量空白

工作碰到过这种情况:有些外部收集资料,由于表格制作者不知道如何在单元格输入换行符,他做法是设置单元格格式自动换行,为了达到排版换行目的,是输入了一些空格用来占位,这种表格在列宽变化了后,很可能就会变有点乱...所以程序必须考虑到多段不确定空白情况: 使用InStr找到空格开始位置 使用Loop找到非空白处 这样就确定了一段非空白起止位置。...首先在customUI.xmlmenu id="rbmenuString"增加代码: <button id="rbbtnTrimSpace" label="<em>替换</em>空格" onAction...Range Dim r As Range Dim strReplace As String strReplace = Application.InputBox("请输入需要替换为什么符号...(r.Value), strReplace, 1) Next End If End Sub 'str 源数据 'strReplace 需要替换符号 'iStart

1.1K31
领券