Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pybof — Python module for running BOFs | Kitploit
工具/GitHubGitHub/rkbennett/pybof
Post-ExploitationPenetration TestingRed Teaming
GitHubrkbennett/pybof

pybof

Python module for running BOFs

查看仓库
80108个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PyBOF

通过 Python 运行 Beacon 对象文件

内存中加载并执行 BOF

PyBOF 使 Python3 能够通过字节加载 Beacon 对象文件,并在 Python 解释器中执行目标 BOF 函数

基本用法

运行一个无需参数即可执行的简单 BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data)

将原始字符串参数传递给 BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=["foo"], raw=True)
# Raw 不能与 function kwarg 一起使用

将打包/格式化参数传递给 BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=[r"c:\users"], format="Z")

实际执行示例

root@kitploit:~
import bof
from urllib.request import urlopen
data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
bof.run(data, args=[r"c:\users"], format="Z")

参数/Kwargs

PyBOF 支持多种参数,下面进行更详细的说明

data

必填的第一个位置参数,必须是一个字节对象,包含 BOF 的原始内容

args

可选关键字参数,是一个要传递给目标 BOF 函数的参数列表

function

可选关键字参数,是字符串格式的目标函数名称,用于从提供的 BOF 中执行,默认为 go

format(注意——这些最近已更新)

可选关键字参数,是一个字符串,用于告知 BOF 参数打包器参数类型,因为参数会被打包进缓冲区。这与 struct.pack 的 format 参数类似。唯一有效的格式选项如下:
i 表示整数
s 表示短整数
z 表示字符串
b 表示二进制
Z 表示宽字符串

args 列表中的每个参数必须至少提供一种格式类型。此关键字参数不能与 raw 一起使用

raw

可选关键字参数,是一个布尔值,将 args 作为空格连接的字符串传递而不进行打包,而不是尝试为 BOF 函数打包格式化参数。此关键字参数不能与 format 一起使用

构建

克隆此仓库

root@kitploit:~
git clone https://github.com/rkbennett/pybof.git

构建 _bof C 扩展

root@kitploit:~
cd pybof\src
python .\setup.py build

将生成的 pyd 文件复制到 bof 目录中

root@kitploit:~
copy build\lib.win-xxx-cpython-3xx\_bof.cp3xx-win_xxxx.pyd ..\bof\

切换到 bof 目录的父目录,导入并开始使用

root@kitploit:~
cd ..\
python
>>> import bof
>>> from urllib.request import urlopen
>>> data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
>>> bof.run(data, args=[r"c:\users"], format="Z")

注意事项

如果 BOF 函数没有返回值,我会发出警告,提醒用户没有返回任何内容。我猜测这很可能不是执行的预期结果,但我不想抛出硬错误。如果你运行 BOF 函数并收到无输出警告,请记住你的 args 格式可能需要定义,或者可能定义不正确,这可能导致此问题(尤其是使用 string 而不是 wide 时)

特别感谢

  • natesubra - 感谢回答我的各种问题
  • trustedsec - 感谢我封装进 PyBof 模块的 COFFLoader(许可包含在 src/source 中)
下载工具