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

Beacon Object ファイルを python で実行する

BOF のインメモリ読み込みと実行

PyBOF は、Python3 が Beacon Object Files をバイト列として読み込み、Python インタプリタ上で対象の BOF 関数を実行できるようにします。

基本的な使い方

引数を必要としないシンプルな BOF を実行する

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

BOF に raw 文字列の引数を渡す

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=["foo"], raw=True)
# Raw cannot be used with 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")

引数 / キーワード引数

PyBOF で使用できる引数はいくつかあります。以下で詳しく説明します。

data

必須の最初の位置引数で、BOF の生の内容を含むバイトオブジェクトである必要があります。

args

オプションのキーワード引数で、対象の BOF 関数に渡す引数のリストです。

function

オプションのキーワード引数で、指定された BOF から実行する対象関数の文字列形式の名前です。デフォルトは go です。

format (注意 - これらは最近更新されました)

オプションのキーワード引数は文字列で、BOF の引数パッカーに、バッファへパックする際の引数タイプを伝えます。これは struct.pack の format 引数に似ています。有効なフォーマットオプションは次のとおりです。
i は integer(整数)
s は short(ショート)
z は string(文字列)
b は binary(バイナリ)
Z は wide(ワイド)

args リスト内の各引数に対して、少なくとも1つのフォーマットタイプを指定する必要があります。このキーワード引数は raw と併用できません。

raw

オプションのキーワード引数で、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 に含まれています)
ツールをダウンロード