Об этом проекте
pybpf_asm — это реализация ассемблера BPF на языке Python, изначально присутствовавшего в исходных текстах ядра Linux. Она позволяет разработчикам писать код на BPF-ассемблере и преобразовывать его в исполняемый байткод BPF.
Установка возможна посредством предустановленных колёс (wheels) с PyPI либо путём сборки из исходного кода. Для сборки требуется недавняя версия Flex и Bison. На Windows пользователи могут установить winflexbison, тогда как пользователи macOS (и старых дистрибутивов Linux) могут получить эти инструменты через Homebrew, убедившись, что они доступны раньше других в переменной PATH.
Типичное использование включает импорт модуля bpf_asm и вызов функции assemble со строкой, содержащей инструкции BPF-ассемблера. Например:
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.