À propos du projet

pybpf_asm est une implémentation Python de l'assembleur BPF initialement présent dans les sources du noyau Linux. Il permet aux développeurs d'écrire du code assembleur BPF et de l'assembler en bytecode BPF exécutable. L'installation peut se faire via des paquets wheel précompilés disponibles sur PyPI, ou en compilant à partir des sources. La compilation nécessite une version récente de Flex et Bison. Sur Windows, les utilisateurs peuvent installer winflexbison, tandis que les utilisateurs de macOS (et de Linux ancien) peuvent obtenir ces outils via Homebrew et s'assurer qu'ils apparaissent en début de PATH. L'usage classique consiste à importer le module bpf_asm et à appeler sa fonction assemble avec une chaîne de caractères contenant des instructions d'assembleur BPF. Par exemple : import bpf_asm ASM = """ ldh [12] jeq #0x800, accept, drop accept: ret #65536 drop: ret #0 """ print(bpf_asm.assemble(ASM)) Le projet fournit également un utilitaire en ligne de commande nommé pybpf_asm qui peut être appelé directement. Une documentation détaillée est disponible sur les pages GitHub du projet. Le logiciel est publié sous licence GPL-2.0-only, qui impose que les œuvres dérivées soient également distribuées sous la même licence.