什么是B4X? B4X是一套用来开发跨平台应用的工具,包含针对安卓的B4A、针对iOS的B4i以及针对Java的B4J。它使用现代化的Visual Basic(VB)语言,可以快速开发应用。...第一步,B4J环境安装 https://www.b4x.com/b4j.html 1.1.访问B4X官网,下载OpenJDK 19 和B4J编译工具 1.2.把下载好的OpenJDK19解压到无中文名路径下...服务器处理程序模块 AddWebSocket方法,用来添加socket服务模块,使用的是Server WebSocket模块 Port属性,用来设置http服务的端口号 SSLPort属性,用来设置https...服务的端口号 StaticFilesFolder属性,用来设置静态文件夹,如index主页文件,图片文件等文件流请求的数据 Start属性,用来启动Server程序的方法 第五步,生成Jar服务程序(先用官方示例操作...number=1 6.2.Window服务器部署 6.2.1.作为演示直接使用,B4J的环境运行,进入我们直接解压的B4J OpenJdk目录下的bin文件夹,然后在地址栏直接输入cmd启动终端 6.2.2
几十年来,VBG 宏代码都是攻击者的核心工具。但自从微软开始默认阻止来自互联网的 Office 文件的所有 VBA 宏,这一攻击途径受到了极大的压制。由于攻击面的减少,攻击者必须探索替代的攻击媒介。...和 _AssemblyName属性。...恶意 ISO 文件 例如针对葡萄牙语用户的恶意 ISO 文件,其中包含一个恶意的 Word 文档文件与隐藏的 VSTO 加载项及其依赖项。...全部文件 一旦受害者打开恶意文档,就会提示用户安装加载项,与之前使用 VBA 宏时引诱用户启用内容十分相似。...解压后释放文件到 %\AppData\ Local\ 文件夹,并执行包含的 conhost.exe 文件。 恶意代码 攻击的 POC 为了促进社区的研究,研究人员公开了 POC 代码。
文章背景: 通过VBA编写代码时,有时需要判断某个文件是否存在;或者判断在文件夹内是否存在指定类型的文件。此时,就会涉及到Dir函数。下面就来介绍Dir函数的语法和应用场景。...用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。 attributes 可选参数。...常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。 attributes参数可以选择以下值或者以下值的和。...(1)文件和文件夹具有类似只读,隐藏,系统和档案的特点。这些特点就是属性。可以使用GetAttr函数来获得文件或文件夹的属性,具体用法参见文末的参考资料[9]。...: 4duck.txt 5horse.txt (1)attributes参数设置为vbNormal,返回的是无属性文件的名称; (2)attributes参数设置为vbDirectory,返回的是无属性文件和文件夹的名称
EXCEL-DNA 生成的加载项 我们分析的大多数 XLL 样品具有相同的结构。本质上,XLL 文件是包含名为xlAutoOpen的导出函数的 DLL 。...您可以通过查看资源名称或同样存储在资源部分中的 XML 定义文件来识别包含 Excel 加载项代码的文件。 图 5 – Excel-DNA XML 定义。...在此示例中,包含恶意代码的加载项是在 .NET 中开发的,位于MODDNA资源中。...该脚本将 XLL 文件的路径作为参数,然后提取、解压缩并将资源保存到文件夹中。 image.png 图 7 – Excel-DNA 提取脚本。...然后,恶意软件使用解析后的 API 函数从 Web 服务器下载有效负载,将其存储在本地,然后执行。
FileSystemObject对象模型,是微软提供的专门用来访问计算机文件系统的,具有大量的属性和方法。其使用面向对象的“object.method”语法来处理文件夹和文件,使用起来十分方便。...1 创建FSO对象 1.1 直接创建法 1.2 引用法 2 借助FSO可以获取的对象 3 FSO对象的属性 4 应用示例 4.1 检查文件或文件夹是否存在 4.2 基于给定路径,创建新文件夹...,显示FSO对象的属性和方法。...(2)如果 source 中包含通配符或 destination中以路径分隔符(\)为结尾,则认为 destination 是一个已存在文件夹,在其中复制相匹配的文件。...(2)如果 source 中包含通配符,则认为 destination 是一个已存在的文件夹。
制作CHM需要用到一个工具 EasyCHM(http://www.etextwizard.com/) CHM制作过程:创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html...思路: 编写一个带有宏代码的DOTM文档,上传服务器 编写一个能够远程连接的DOCX文档 将该文档压缩找到并更改settings.xml.rels文件中的内容,将其中的target内容修改为服务器上DOTM...2.7 IQY特性钓鱼 利用nishang下的Out-WebQuery.ps1, 脚本生成包含恶意 payload url 的 iqy 文件。.../multi/script/web_delivery 用nishang中提供好的Out-WebQuery脚本来生成iqy文件 iqy文件本身的内容很简单,只有一个包含恶意payload的url:http...,监听的 ip 和上面生成 iqy 文件中的 ip 一致,通常都是本机 i 之后把上一步生成的 IQY文件发给靶机,打开 此认证窗口会连续出现三次,相信三次里面总有一个能用的账号密码,因为目标可能也压根搞不清楚这是什么东西
先安装Python库: pip install xlwings 然后从xlwings的官方Github存储库下载这个Excel加载项,即页面上的xlwings.xlam文件。...(或者,你可以到知识星球中的完美Excel社群下载) 将xlwings.xlam文件放入Excel加载项文件夹,该文件夹所在位置为: C:\用户\xxxx\AppData\Roaming\Microsoft...然后,打开Excel,选择“文件->选项->加载项”。单击“管理:Excel加载项”旁边的“转到”按钮,如下图1所示。...Excel中的单个单元格,其中x表示行,y表示列。...或者:是否可以直接在代码中指定该文件放置的位置,而不必非得将文件放在上述文件夹。
理解对象、掌握它的属性和方法,就是写好 VBA 宏的第一步。二、VBA编辑器文件→选项,即可打开“Excel选项”对话框。自定义功能区→勾选「开发工具」,如下图所示。...三、属性与方法属性 = 对象的状态,方法 = 对象的动作1、属性Property:对象的状态属性用于描述对象的状态或特征,可以看作是对象的“形容词”。...比如,字体是否加粗、背景色是什么、单元格的值是多少,都是属性。...3、属性与方法的区分下面这张对比表可以帮你理清两者的区别:比较项属性/Property方法/Method本质描述对象的状态或特征执行对象的动作或操作使用格式对象.属性名对象.方法名(参数)是否有返回值通常有不一定全有是否会改变对象状态一般不会直接改变通常会改变...文档中通常包含:对象的层级结构(所属对象是谁)所有可用属性和方法每个属性/方法的用法、参数说明、代码示例搜索相应的对象,比如Range,如下图所示。
VBA是什么? VBA是一种内嵌于MicrosoftOffice中的一种编程语言,可以方便地实现工作任务自动化。(注:很多其他软件中也内嵌有VBA,例如著名的AutoCAD。)...此外,VBA存在的几十年,已经积累了无数的VBA文档资料,还有大量的论坛社区帮助。 2.使用Excel时,借助于VBA,几乎可以做你想做的任何事情。...虽然最新版本的VBA显示的是2012年,但Microsoft仍然在后续的版本中包含有VBA,只是没有更新而已,但仍在加入了新对象时会更新VBA的对象模型。...因为正是VBA,让Excel与众不同,也让更多的人选择了Excel,已经有大量的VBA开发者且Excel开发人员也都非常喜欢使用VBA,也有大量正在使用的VBA开发的Excel应用程序和加载项。...技术 连接满足条件的多个值并显示在一个单元格中 #VBA 复制文件到指定的文件夹并重命名 仅显示组成SUMIFS函数的结果的数据 同步多工作表指定区域的数据 快速给所选单元格添加前缀
Outlook VBA 模块 Gamaredon 组使用包含自定义 Microsoft Outlook Visual Basic for Applications (VBA) 项目的包。...Outlook VBA 模块生成的电子邮件,带有包含远程模板的 Word 文档附件 该电子邮件包含英文和俄文文本。但是,如图 3 所示,俄语编码存在问题。...然后,它会在连接到系统的所有驱动器上扫描具有有效 Word 或 Excel 文件扩展名的文档。对于包含 Windows 安装的驱动器,它仅扫描特定位置,即桌面和下载文件夹。...恶意软件将每个找到的文档移动到AppData文件夹,使用Microsoft.Office.Interop对象将恶意 Word 或 Excel 宏插入其中,然后将文档移回其原始文件夹。...VBScript 使用 Document.AttachedTemplate 属性将远程模板的引用注入现有文档 此 VBScript 模块还打包在一个自解压存档中,包含一个批处理文件和两个 VBS 文件,
标签:VBA 在某些情形下,可能希望将加载项中的代码合并到其他VBA过程中,或者允许其他人访问你的加载项。...此时,为了防止加载项卸载或未安装而导致出错,可以使用VBA代码确保加载项正确加载到你正在使用的任一Microsoft Office程序中。...VBA代码如下(注:代码来源于www.thespreadsheetguru.com,供参考): Sub InstallCheckAddIn() '目的:如果当前没有安装则从加载项文件夹中装载加载项...在加载项文件夹中查找并装载 If StoreError 0 Then For Each myAddin In AddIns If myAddin.Name = AddInName...MsgBox "没要找到要安装的加载项: " & AddInName End If ExitSub: End Sub 注意,上面的代码仅在系统默认的加载项文件夹中搜索你想要的加载项,如果你在自己的文件夹中存储加载项
标签:VBA,自定义函数 我想要列出文件夹及其子文件夹中名为test的Excel文件,如何使用VBA程序实现?...'参数: strPath = 要搜索的路径. ' strFileSpec = "*.*" 除非另有指定. ' bIncludeSubfolders: 如果为True,同时从strPath的子文件夹中返回结果.... ' lst: 如果传递到列表框, 则在其中添加项....如果不, 则将文件在立即窗口列出. ' 列表框必须具有其Row Source Type属性设置为Value列表. '方法:FilDir()添加项到集合, 对子文件夹递归调用自身....vbNullString colDirList.Add strFolder & strTemp strTemp = Dir Loop If bIncludeSubfolders Then '建立另外子文件夹的集合
\Program Files\Microsoft Office\Office16\Library 在“加载宏”对话框中会包含这些文件夹中的加载宏。...图4 每个键都包含要打开的加载项的名称(有时还包含一些命令行参数)。如果加载项不在加载项文件夹中,则包含完整路径。 注意,这些注册表项在关闭Excel后更新。...如何使用VBA来安装Excel加载宏 编写一些简单的代码来启用加载项,弹出的消息框如下图5所示。...如果用户直接打开压缩文件(zip文件)下载,然后打开加载项,则xlam文件将存储在临时位置(如果安装了解压缩软件),或者位于名称中包含.zip的文件夹中。...最后一行关闭加载项打开的所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表中。
JSON的数据语法,其实很简单:如果是包含多个数据实体的话,比如说多个学生成绩,那么需要使用数组的表现形式,就是[]。...批量提取xlsx文件的文本框文本 上面我们已经获得了一个xlsx文件的文件夹,下面我们的需求是,提取这个文件夹下每个xlsx文件的文本框内容将其保存为对应的txt格式。...批量提取文本框文本分sheet单独保存 下面,我们的需求是对每个xlsx文件创建一个同名文件夹,每个文件夹下根据sheet名称单独保存文本框的文本。...使用xlwings解决需求 苹果电脑是不支持VBA的,上面调用VBA的代码对于苹果电脑来说无效,但所幸的是xlwings在0.21.4版本中新增了访问文本框文本的属性text。...没有这个属性,请注意升级: pip install xlwings -U 总结 读取excel中的数据,基本没有VBA干不了的事,python调用VBA也很简单,直接使用pywin32即可。
制作过程: 创建加载宏文件 将所有Excel VBA相关文件都存放到一个目录下面,包括MyVBA加载宏,设置MyVBA加载宏为Excel加载项: ?...这里使用的是动态dynamicMenu,通过回调函数dymOpenAddins_getContent查找同一文件夹下所有的宏文件,dymOpenAddins_getContent代码: Sub dymOpenAddins_getContent...的临时文件 If VBA.InStr(RetFiles(i), "~$") = 0 Then '取出文件名称...VBA.Left$(fn, Len(fn) - 5) '生成Ribbon的xml代码 RetFiles(icount)...(RetFiles, vbNewLine) & vbNewLine & "" End If End Sub '打开文件,文件名在control的Tag属性里 Sub rbOpenMacroFile
这些加载项都是为了使用户能够利用高性能函数,为 Excel 工作表提供 API 调用接口。与 VBA 等其他接口相比,该方式能够更有效地扩展 Excel 的能力,使其支持更多功能,例如多线程。...△ 提示信息 攻击者通常将代码置于 xlAutoOpen函数中,该函数会在加载项被激活时立即触发执行。这意味着,与要求用户启用宏的 VBA 宏不同,受害者只要打开就会执行恶意代码。...△ 构建工具截图 EXCEL-DNA 生成加载项 发现的 XLL 文件大部分都有相同的结构,本质上说,XLL 文件是包含 xlAutoOpen导出函数的 DLL 文件。...△ 文件资源段结构 其中包含 Excel-DNA 项目组件以及加载项,可以通过查看资源名或者同样存储在资源中的 XML 定义文件来识别包含 Excel 加载项的 XLL 文件。...△ XML 文件 包含恶意代码的加载项是使用 .NET 开发的,位于 MODDNA资源中。要分析该恶意代码,需要将资源保存到硬盘并使用 LZMA 算法进行解压缩。
excelperfect 下面是一些关于控件、事件和类的基础问题,试试看,你能不能回答出来。 1.控件的Exit事件何时发生? 2.VBA程序如何修改双击间隔?...3.是非题:KeyDown事件过程可以使用KeyCode参数判断用户输入的是4还是$。 4.KeyDown事件过程中的代码如何取消按键? 5.在用户窗体上对齐控件的最快方法是什么?...21.当程序在断点处暂停时,确定程序变量当前值的最快方法是什么? 22.是非题:监视窗口中的值在程序运行时会不断更新。 23.VBA如何将bugs报告给程序员?...24.是非题:最终用户必须具有已安装的Excel版本才能运行Excel应用程序。 25.自定义VBA类的代码放在哪里? 26.是非题:自定义VBA类可以包含可视化界面。 27.如何创建只读属性?...28.是非题:PropertyGet过程的返回值必须与PropertyLet过程的参数具有相同的数据类型。 29.如何验证仅接受包含某些值的属性的数据? 30.如何在代码中引用对象属性?
将这些数据类型用于对象引用(而不是使用特定的对象类型)使VBA无法提前知道对象的方法和属性是什么,从而为各种错误埋下了隐患。...提示:错误处理对于所有VBA过程(包括函数和类方法)都以相同的方式工作。 Err对象 Err对象是VBA不可或缺的一部分,总是可用于你的程序。任何时候,Err对象都包含有关最近发生的错误的信息。...提示:Err对象的Description属性提供的错误描述与VBA的默认错误对话框中显示的错误描述相同。此外,Number是Err对象的默认属性。...然后,针对这些潜在错误中的每一个,测试Err.Number属性。找到匹配项后,采取适合该错误的操作。...4.没有错误发生时,Err.Number属性的值是什么? 5.在错误处理代码中,如何使用引起错误的语句恢复程序执行?
4.KeyDown事件过程中的代码如何取消按键? 通过将KeyCode参数设置为0。 5.在用户窗体上对齐控件的最快方法是什么? 通过使用“格式”菜单上的“对齐”命令。...16.是非题:保护工作簿的密码可防止用户查看你的VBA代码。 错误。必须使用“项目工程属性”对话框中的“保护”选项卡,将VBA工程与设置给工作簿的任何密码分开锁定。...“逐过程”执行过程中的所有代码,并在执行退出过程时暂停。无论代码位于何处,“逐语句”都会执行下一行代码,然后暂停。 21.当程序在断点处暂停时,确定程序变量当前值的最快方法是什么?...25.自定义VBA类的代码放在哪里? 在一个类模块中。 26.是非题:自定义VBA类可以包含可视化界面。 错。自定义VBA类不能包含视觉化元素。 27.如何创建只读属性?...28.是非题:PropertyGet过程的返回值必须与PropertyLet过程的参数具有相同的数据类型。 是的。 29.如何验证仅接受包含某些值的属性的数据?
标签:VBA,Dir函数,MkDir语句 在使用VBA操作文件时,如果不先核实要操作的文件夹是否已存在,则有可能会导致代码出错。例如,在创建文件夹时、在到指定的文件夹中获取文件时。...因此,我们需要先使用代码判断是否已存在相应的文件夹。 创建文件夹时要执行的代码是使用Dir函数和MkDir函数。如果文件夹已存在,Dir函数将生成null结果。...或者,生成句点“.”由于这个结果的布尔属性,因此可以捕获null(空)结果并创建一个新文件夹,而忽略句点结果,这意味着什么都不会发生。...这5个文件夹的名字存储在工作表单元格区域A1:A5中。对于5个文件夹中已经存在的文件夹,代码将不起任何作用。然而,如果该文件夹不存在,则会创建一个新文件夹。...字符串生成“”或“.”是因为只有两种可能性,IF语句可以测试“”(空),然后用使用MkDir语句生成新文件夹。 注意,在str的代码中包含了反斜杠,如果不使用反斜杠,会出现各种问题。