首页
学习
活动
专区
圈层
工具
发布

探秘BOF 和EOF

BOF和EOF是Recordset(记录集)对象的一对返回值类型为布尔型的属性。...BOF指向当前记录位置位于Recordset对象的第一个记录之前;EOF指向当前记录位置位于Rocordset对象的最后一个记录之后。...为了理解更明了一些,画了一张图(如右图)来解释EOF和BOF,假设记录集中一共有n条记录,当当前记录指针指向第一条记录之前时,BOF属性值为True;当前记录指向中间1~n任意一条记录时,BOF和EOF...当然,EOF和BOF合起来也可以实现一些功能,比如:        当判断语句BOF And EOF时,如果结果为True即它们倆的返回值都为True时则表明当前记录集中没有任何记录;而当记录中只有一个记录并处于该记录位置时...,BOF和EOF的返回值都为False。

1.3K30

EOF 与 BOF 之分

1、2、3、4个数据,BOF表示rs当前的指针是指在记录集的前面,指向的编号是(-1),当指针指向5时,就会发生EOF的情况。    ...当记录集为空时,就会同时发生BOF和EOF的情况,就是说rs的指针即在上界之外也在下界之外,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。    ...——指针为到达最后一条记录       3、If mrc.BOF Then——当前指针在第一条记录之前 4、If Not mrc.BOF Then——指针未到达第一条记录      还有下面两种情况...:       1、If (Not mrc.EOF And Not mrc.BOF ) Then——指针位于记录集之中,一定有记录       2、If mrc.EOF And mrc.BOF Then...——指针未在记录集之中,没有记录,说明数据库为空      EOF和BOF的返回值:       1、BOF的返回值:                       True:当前指针的位置是在第一行之前

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CS功能分析-BOF

    这是[信安成长计划]的第 15 篇文章 0x00 目录 0x01 BOF功能分析 0x02 BOF功能执行 0x03 写在最后 其实在看过 RDI 与 DotNet 功能执行之后,BOF 的执行基本就不用再说了...,唯一需要提及的可能就是它所包含的技术,而且相关的文章和代码也都很丰富了 0x01 BOF功能分析 在 CS 中,有相当一部分功能都是 BOF 形式的,我们随意选择一个 它继承了 PostExInlineObject...需要自己实现的并不多,但实际上,一些函数还是自己实现的好 在实际调用的时候,会先获取到 beacon 的 payload 和架构,然后一起传入后,调用了 go 在 go 函数里,首先会获取到需要执行的 bof...实际上就是编译后但未链接的目标文件,这里就是把一些关键的节都取出来 然后接着就进行了任务的构建和发送,在构建的时候就将关键的信息都做成了一段数据,并不是将整个 OBJ 文件直接发送过去 最后一个放入的是参数,在我们当前这个 BOF...DotNet 的操作,可以发现,参数是非常重要的,也是非常便于扩展的,我们可以定制自己想要的方式,然后将其他的内容通过参数传递过去,只需要在接受的时候进行处理就好了,后期的扩展性是很好的 0x02 BOF

    1.1K20

    如何使用bof-launcher在CC++Zig应用程序中执行Beacon对象文件(BOF)

    功能介绍 bof-launcher是一个开源库,可以在Windows和UNIX/Linux系统上加载、重新定位和启动BOF。...BOF; 5、异步BOF执行,能够在单独的线程中启动更耗时的BOF; 6、BOF进程注入,通过将其注入新进程来启动风险更大的BOF; 7、完美支持Windows COFF和UNIX/Linux ELF格式...; 8、支持Linux ARM和AARCH64; 7、允许直接从文件系统运行BOF文件(需配合cli4bofs工具); 8、高效灵活的API用于BOF链调用; 工具下载 首先,广大研究人员需要使用下列命令将该项目源码克隆至本地...在Windows平台上,bof-launcher支持x86和x86_64架构,在Linux上支持x86、x86_64、ARM和AArch64架构。...-L /usr/aarch64-linux-gnu .

    1.3K10

    抛砖引玉之CobaltStrike4.1的BOF

    比如删除了在新进程中生成x86负载的x64dll的选项、修复了getsystem的一些逻辑错误、添加smartinject功能、Mimikatz 更新至2.2.0 20200519等 不过对于我来说,更令我喜欢的还是其BOF...www.cobaltstrike.com/help-beacon-object-files 其中依赖于beacon.h,为了方便大家,我这里直接贴出来该文件的内容: /* * Beacon Object Files (BOF...那么接下来,我们便来手把手的写一个BOF来武装我们的CobaltStrike 如果你之前有c的开发经验,你会发现上面的demo中 DECLSPEC_IMPORT DWORD WINAPI NETAPI32...,我们需要用到下面几个api: GetConsoleWindow OpenClipboard GetClipboardData CloseClipboard 然后使用工具生产BOF所需要的内容: ?...那么 OpenClipboard 在BOF中则是: DECLSPEC_IMPORT WINUSERAPI BOOL WINAPI USER32$OpenClipboard (HWND); 剩下的就好说了

    1.5K20

    在杀毒软件上横着走

    编号 技术 详细 备注 1 特征修补技术 完全无法检测的CobaltStrike 部分公开、付费 2 地狱之门进程注入免杀插件 地狱之门进程注入免杀插件 已公开 3 cobaltstrike-cat-bof...cobaltstrike-cat-bof 开源 4 泳池派对BOF 泳池派对bof 开源 5 态势感知BOF 态势感知-bof 开源 6 加载器 红队加载器过主流杀软-混淆最终版 未公开 7 高级匿名技术...使用态势感知BOF中的ntcreatethread注入技术进行操作。 beacon> ntcreatethread 0 这将自动注入至系统进程dllhost.exe。 3....或在目标主机设置socks5代理,将系统变成跳板,使用如proxychains代理工具连接网络内其他linux主机。...进程注入 卡巴斯基和火绒对行为的监控略有不同,这里我们采用完全无法检测的泳池派对进程注入,以及运行各种BOF均无法检测。

    70200

    Linux内核测试现状揭秘

    刚好今年9月在洛杉矶举办的《Linux Plumbers Conference》有一个BOF(birds of a feather)会议,Dhaval Ginal和Sasha Levin组织了一个关于内核测试的相关讨论...由于大部分BoF的参会人员来自各个主要的Linux发行商,所以Giani开场的时候提了一个问题:“大家对于稳定内核(stable kernels)都做过了多少测试呢?...企业例子之三(Linaro) Linaro目前正在为谷歌开发一个使用内核自检(kernel self-tests,缩写kselftest)和Linux测试项目(Linux Test Project,缩写...内核测试的一些其他声音 Greg Kroah-Hartman是稳定内核的维护者,他没有参加BoF但是其实对BoF的讨论内容也有兴趣。...于是第二天当Levin在一个小型会议中概括总结BoF的讨论结果的时候,Greg给出了他的一些意见。 首先正如Levin所说,在BoF中大家提出了很多的观点,但是并没有什么相应的解决措施。

    1.8K10

    使用 Cobalt Strike 的 Beacon 对象文件自定义 DLL 注入

    基础 信标对象文件 (BOF) 是一个已编译的 C 程序,按照约定编写,允许在信标进程中执行并使用内部信标 API。 BOF 也非常小。...但是如果我们使用 BOF 那么为BOF 易于开发。只需要一个 Win32 C 编译器和一个命令行。 MinGW 和微软的 C 编译器都可以生成 BOF 文件。...BOF 是如何工作的? 对于 Beacon 来说,BOF 只是一个位置无关的代码块,它指向 Beacon 内部 API 的指针。...BOF 的缺点 BOF 是调用 Win32 API 和有限 Beacon API 的单文件 C 程序。不能用来构建大型项目。 Cobalt Strike 不会将 BOF 链接到 libc。...可能无法通过 BOF 使用许多常用函数(例如 strlen、stcmp 等)。 BOF 在 Beacon 内部执行。如果 BOF 崩溃,将失去这个shell。

    2.6K20

    PostExpKit插件更新:用户操作模块

    模块功能介绍 这个模块有以下一些用户操作功能,通过使用反射DLL、C#、API、BOF、REG、BNET、Powershell以及底层等多种方式实现绕过某些安全防护进行查询/添加/激活/删除用户等等功能...查询在线用户(BOF) 删除指定用户(API) 查询所有用户(REG、BOF、BNET、Powerpick、NoPowerShell) 查询指定用户(API、BOF、BNET、Powerpick) 查询所有组名称...(Powerpick、NoPowerShell) 查询指定组成员(API、BOF、BNET、Powerpick、NoPowerShell) 查看密码策略规则(NET、BOF) 克隆管理用户权限(UserClone...、ShadowUser、Powerpick) 绕过防护添加用户(C#、DLL、API、BOF、Argue、VBScript、Powershell) [...SNIP...]...部分功能演示 查询所有用户和指定组成员(BOF): 克隆管理用户权限(ShadowUser): 绕过防护添加用户(MS-SAMR AddUser):

    61100

    通过 Beacon 获取 Microsoft Entra 刷新令牌

    传统方法通常依赖从终端提取主刷新令牌 (PRT),这可通过信标(如使用 aad_prt_bof 或 Kozmer 的 request_aad_prt 之类的 BOF)实现。...替代解决方案:基于浏览器的授权码流程利用 TrustedSec 的 Remote Ops Repo 中新增的 get_azure_token BOF(由 Christopher Paschen 开发)提供了一种创新解决方案...该 BOF 利用已通过浏览器向 Entra 进行身份验证的用户会话,通过以下步骤获取访问和刷新令牌: 启动新的浏览器窗口,针对指定的 Entra 客户端 ID 和范围启动授权码流程。...然而,使用该 BOF 时需特别注意以下事项: 指定的客户端 ID 必须在 Entra 租户中配置为允许使用 http://localhost 作为重定向 URI。...以下第一方 FOCI 允许“本机客户端”重定向 URI: BOF 否则就没有发生 作为基本的概念验证,我构建了一个 BOF,它可以执行以下操作: 打开浏览器窗口,访问授权码流 URL(用于客户端 ID

    54310

    如何将.NET程序集注入至现有进程

    该工具主要由以下两个组件组成: 1、BOF初始化工具:一个实用工具,负责将程序集加载器注入至远程进程中,并携带任意参数。...它可以使用BeaconInjectProcess来执行注入操作,这也就意味着,这种行为可以在可延展的C2配置文件或进程注入BOF中进行自定义。...远程进程和Beacon之间的通信是通过一个命名管道进行,我们可以通过脚本来生成一个管道名称,然后通过参数将其传递给BOF初始化工具。...我们建议广大研究人员使用类似FindObjects-BOF之类的工具来定位已加载.NET运行时的进程。...SourcePoint https://github.com/kyleavery/inject-assembly/releases https://github.com/outflanknl/FindObjects-BOF

    93320
    领券