このプロジェクトについて
pybpf_asm は、もともと Linux カーネルソースに含まれていた BPF アセンブラの Python 実装です。開発者は BPF アセンブリコードを記述し、実行可能な BPF バイトコードにアセンブルできます。
インストールは PyPI のビルド済み wheels を使用するか、ソースからビルドして行えます。ビルドには最近のバージョンの Flex と Bison が必要です。Windows では winflexbison をインストールでき、macOS(および古い Linux)では Homebrew を通じてツールを入手し、PATH の早い位置に現れるようにしてください。
典型的な使用法は、bpf_asm モジュールをインポートし、BPF アセンブリ命令を含む文字列を引数として assemble 関数を呼び出すことです。たとえば:
import bpf_asm
ASM = """
ldh [12]
jeq #0x800, accept, drop
accept:
ret #65536
drop:
ret #0
"""
print(bpf_asm.assemble(ASM))
このプロジェクトは、直接呼び出せる pybpf_asm という名前のコマンドラインユーティリティも提供しています。詳細なドキュメントはプロジェクトの GitHub Pages で利用できます。
このソフトウェアは GPL-2.0-only ライセンスの下でリリースされており、派生作品も同じライセンスの下で配布する必要があります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.