使用 Visual Studio 开发 CS 的 BOF

简介: 使用 Visual Studio 开发 CS 的 BOF

0x00 前言

   关于BOF大家应该不太陌生了,由CobaltStrike 4.1引入的功能被大家熟知,介绍:聊聊Cobalt Strike 4.1的 BOF

   说白了也就是程序编译后还没有链接的中间产物,在红队行动中,一般由我们的植入体充当链接器,这样一来我们编写的obj文件体积又小且不落地,十分不错,也可以算是OPSEC的方式。

0x01 Visual-Studio-BOF-template优化

   开发BOF可能大家会用到,https://github.com/dtmsecurity/bof_helper这个工具

   再者就是Trustedsec提供的模板,https://github.com/trustedsec/CS-Situational-Awareness-BOF

   或是https://github.com/securifybv/Visual-Studio-BOF-template

   后者的项目可以添加一个Visual Studio的项目模板,其中定义了一些用作BOF动态解析的函数,以及对这些函数结构又做了一次宏定义。

   这样的话我们预先定义好就不用再代码中将用到的API都按KERNEL32$HeapAlloc类似这样的格式编写了;最后还可以BOF和平常c的编译格式切换:

   这样最大的好处就是调试和编译BOF变得十分方便,而且是在我们比较熟悉的Visual Studio上面。

Visual-Studio-BOF-template项目中提供的bofdef.h文件是比较旧的,于是乎我将trustedsec这两个项目中的bofdef.h文件更换到了模板中,又进行了分类,这样定义编写都比较方便明了:

按导出DLL名字区分文件,如果其中缺少定义还可以自己添加

添加函数结构定义后,回到bofdef.h文件添加对应的宏定义

   最后就可以像写C代码一样编写BOF了。

   比如COM添加计划任务的例子,定义好需要的结构后,不用担心任何规定语法直接像写C一样编写:

0x03 添加模板

git clone https://github.com/evilashz/Visual-Studio-BOF-template

   模板我更改为Visual Studio 2022 工具集VS143,当然如果你没有的话也不妨碍,创建项目后再属性设置工具集即可。

路径为

%UserProfile%\Documents\Visual Studio 2022\Templates\ProjectTemplates

将模板文件夹放入即可,创建项目时即可看到,

0x04 总结

   总而言之,说白了,我是十分推荐用这个项目去做BOF开发的,编译和调试非常方便,理论上定义好各类的函数,就可以做到直接将现有的C代码复制过来就可以编译一个BOF。

   所以说我写这篇文章的意思就是希望大家一起使用这个项目,将平时自己编写添加的函数结构都可以集合到bofdef中,欢迎大家PR。

相关文章
Visual Studio Code开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
Visual Studio Code开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
545 0
|
21天前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
36 1
|
2月前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
3月前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
5月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
220 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
5月前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
48 1
|
前端开发 JavaScript PHP
Visual Studio Code的使用心得与常用免费插件使用技巧大全总结 老板夸奖我是开发小能手!
这就是我一直在使用的免费代码编辑神器, 它的优点太多了, 有: 智能感知、代码调试、内置 Git 命令、可扩展和可定制都相当牛,最关键的是免费开源!!
382 3
Visual Studio Code的使用心得与常用免费插件使用技巧大全总结 老板夸奖我是开发小能手!
|
Web App开发 JavaScript 前端开发
Visual Studio Code 常见的配置、常用好用插件以及【vsCode 开发相应项目推荐安装的插件】
Visual Studio Code 常见的配置、常用好用插件以及【vsCode 开发相应项目推荐安装的插件】
339 0
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
107 0
|
Java Android开发 C++
[笔记]Visual Studio 2015 开发安卓so库JNI层——回调调用
[笔记]Visual Studio 2015 开发安卓so库JNI层——回调调用