Sobre o projeto
pybpf_asm é uma implementação em Python do montador BPF originalmente encontrado nos códigos-fonte do kernel Linux. Ele permite que desenvolvedores escrevam código assembly BPF e o montem em bytecode BPF executável.
A instalação pode ser feita por meio de wheels pré-compilados do PyPI ou compilando a partir do código-fonte. A compilação requer uma versão recente do Flex e do Bison. No Windows, os usuários podem instalar o winflexbison, enquanto usuários de macOS (e Linux mais antigo) podem obter as ferramentas por meio do Homebrew e garantir que elas apareçam no início do PATH.
O uso típico envolve importar o módulo bpf_asm e chamar sua função assemble com uma string contendo instruções assembly BPF. Por exemplo:
import bpf_asm
ASM = """
ldh [12]
jeq #0x800, accept, drop
accept:
ret #65536
drop:
ret #0
"""
print(bpf_asm.assemble(ASM))
O projeto também fornece um utilitário de linha de comando chamado pybpf_asm que pode ser invocado diretamente. A documentação detalhada está disponível nas GitHub Pages do projeto.
O software é distribuído sob a licença GPL-2.0-only, que exige que obras derivadas também sejam distribuídas sob a mesma licença.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.