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.