Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
filterforge — Herramienta para resolver filtros BPF y crear paquetes basados en estos. | Kitploit
Herramientas/GitHubGitHub/cloudflare/filterforge
Sniffing y Análisis de PaquetesAnálisis de VulnerabilidadesIngeniería InversaAnálisis ForenseFuzzingSeguridad de RedesAnálisis de MalwareAnálisis de Binarios
GitHubcloudflare/filterforge

filterforge

Herramienta para resolver filtros BPF y crear paquetes basados en estos.

Ver Repositorio
63423hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

filterforge

Kit de herramientas en Python para ingeniería inversa del bytecode de Berkeley Packet Filter (BPF). Dadas instrucciones BPF sin procesar — esas que podrías extraer de una muestra de malware, un filtro de captura de paquetes o un dispositivo de red — filterforge las desensambla en una forma legible por humanos, utiliza Z3 para resolver el conjunto de restricciones de paquetes que satisfacen una ruta de aceptación, y luego aprovecha Scapy para forjar un paquete de red concreto que pasaría el filtro.

En resumen: entrégale un programa BPF y te devolverá un paquete completamente formado (Ethernet, IPv4/IPv6, TCP/UDP/SCTP y más) que el filtro acepta — listo para inspeccionar, guardar en PCAP o enviar por la red.

Se recomienda instalar uv para ejecutar esta herramienta.

Uso

Consulte los ejemplos a continuación para el uso de la herramienta; es probable que se agreguen más funciones con el tiempo.

CLI

Para obtener resultados rápidamente para un BPF determinado, lo más sencillo es usar la línea de comandos. Debido a cómo algunas herramientas de ingeniería inversa devuelven los datos copiados, se puede proporcionar una cadena hexadecimal sin formato o un array de valores hexadecimales, usando la bandera -d para mostrar simplemente el desensamblado del BPF dado;

# cadena hexadecimal
uv run ff -d -b "280000000c00000015002900060800001500000bdd860000300000001400000015000027110000002800000038000000150024003500000015002300e91400001500220043000000150021009c690000150020006c07000015001f0089000000280000003600000015001d0fe91400001500001d0008000030000000170000001500000f11000000280000001400000045001900ff1f0000b10000000e0000004800000010000000150015003500000015001400e91400001500130043000000150012009c690000150011006c0700001500100089000000480000000e00000015000e00e914000015000d009c69000015000c006c07000015000b0c890000001500000b06000000280000001400000045000900ff1f0000b10000000e000000500000001a000000740000000400000024000000040000000c000000000000000700000000000000400000000e000000150000012054454706000000000004000600000000000000"

# array de valores hexadecimales
uv run ff -d -b "[0x28,0x0,0x0,0xc,0x15,0x0,0x1b,0x800,0x30,0x0,0x0,0x17,0x15,0x0,0x5,0x11,0x28,0x0,0x0,0x14,0x45,0x17,0x0,0x1fff,0xb1,0x0,0x0,0xe,0x48,0x0,0x0,0x16,0x15,0x13,0x14,0x7255,0x15,0x0,0x7,0x1,0x28,0x0,0x0,0x14,0x45,0x11,0x0,0x1fff,0xb1,0x0,0x0,0xe,0x48,0x0,0x0,0x16,0x15,0x0,0xe,0x7255,0x50,0x0,0x0,0xe,0x15,0xb,0xc,0x8,0x15,0x0,0xb,0x6,0x28,0x0,0x0,0x14,0x45,0x9,0x0,0x1fff,0xb1,0x0,0x0,0xe,0x50,0x0,0x0,0x1a,0x54,0x0,0x0,0xf0,0x74,0x0,0x0,0x2,0xc,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x48,0x0,0x0,0xe,0x15,0x0,0x1,0x5293,0x6,0x0,0x0,0xffff,0x6,0x0,0x0,0x0]"

Para obtener una vista general de cómo sería un paquete de red si se creara a partir del bytecode BPF dado, puede usar la bandera -c:

uv run ff -c -b "280000000c0000001500000fdd8600003000000014000000150002008400000015000100060000001500002611000000280000003600000015002300fad5000015002200f6e500001500210012e90000150020005fd6000015001f0083e2000015001e0042fb000015001d006db2000015001c00fbf60000280000003800000015001a13fad500001500001a000800003000000017000000150002008400000015000100060000001500001611000000280000001400000045001400ff1f0000b10000000e000000480000000e00000015001000fad5000015000f00f6e5000015000e0012e9000015000d005fd6000015000c0083e2000015000b0042fb000015000a006db2000015000900fbf60000480000001000000015000700fad5000015000600f6e500001500050012e90000150004005fd600001500030083e200001500020042fb0000150001006db2000015000001fbf6000006000000ffff00000600000000000000"
2026-02-09 12:06:23,342 - INFO - Loaded 45 instructions
2026-02-09 12:06:23,342 - DEBUG - Found 50 accepting path(s)
2026-02-09 12:06:23,346 - DEBUG - Path 1 is satisfiable
2026-02-09 12:06:23,347 - INFO - Hexdump:
0000  00 00 00 00 00 00 00 00 00 00 00 00 86 DD 60 00  ..............`.
0010  00 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00  ................
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0030  00 00 00 00 00 00 D5 FA 00 00 00 00 00 00 00 00  ................
0040  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
2026-02-09 12:06:23,347 - INFO - Packet summary:
###[ Ethernet ]###
  dst       = 00:00:00:00:00:00
  src       = 00:00:00:00:00:00
  type      = IPv6
###[ IPv6 ]###
     version   = 6
     tc        = 0
     fl        = 0
     plen      = 0
     nh        = SCTP
     hlim      = 0
     src       = ::
     dst       = ::
###[ SCTP ]###
        sport     = 54778
        dport     = 0
        tag       = 0x0
        chksum    = 0x0
###[ Raw ]###
           load      = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Algunos BPF pueden usar la capa IP sin procesar; puede especificar el tipo de enlace -l raw para este propósito (el valor predeterminado es ethernet);

Descargar herramienta