T

fuzzing-dictionary

por trailofbits

La skill fuzzing-dictionary te ayuda a crear diccionarios de fuzzing con tokens específicos del dominio, valores mágicos y cadenas de protocolo para parsers, protocolos y formatos de archivo. Es útil cuando la mutación ciega se estanca y necesitas más cobertura con libFuzzer, AFL++ o cargo-fuzz.

Estrellas5k
Favoritos0
Comentarios0
Agregado7 may 2026
CategoríaCode Generation
Comando de instalación
npx skills add trailofbits/skills --skill fuzzing-dictionary
Puntuación editorial

Esta skill obtiene una puntuación de 78/100, lo que la convierte en una opción sólida para el directorio: los usuarios pueden identificar rápido cuándo usarla, y el contenido aporta suficiente detalle de flujo de trabajo para reducir las dudas frente a una solicitud genérica sobre fuzzing. Conviene instalarla si quieres una guía reutilizable para fuzzing basado en diccionarios, aunque está más orientada a la técnica que a la operación directa de una herramienta.

78/100
Puntos fuertes
  • La guía de activación para fuzzing de parsers, protocolos y formatos de archivo deja claro cuándo aplicar la skill.
  • El contenido operativo es sustancioso, con conceptos concretos como entradas entre comillas, escapes hexadecimales, inyección de tokens y formatos compatibles entre fuzzers (libFuzzer, AFL++, cargo-fuzz).
  • El cuerpo incluye encabezados estructurados y señales de flujo de trabajo, lo que favorece una lectura progresiva y una comprensión más rápida por parte del agente.
Puntos a tener en cuenta
  • No incluye comando de instalación, scripts ni archivos complementarios, así que no debe esperarse automatización ni una herramienta lista para usar.
  • La skill está centrada en la técnica y no en un flujo de fuzzing completo de extremo a extremo, por lo que los agentes aún pueden necesitar contexto externo para crear diccionarios específicos del objetivo.
Resumen

Descripción general de la skill fuzzing-dictionary

La skill fuzzing-dictionary te ayuda a crear y usar diccionarios de fuzzing: tokens curados, valores mágicos y cadenas de protocolo que orientan a un fuzzer hacia código más profundo de análisis, protocolo o formatos de archivo. Si estás haciendo fuzzing con libFuzzer, AFL++ o cargo-fuzz y la mutación ciega se está quedando corta, la skill fuzzing-dictionary te ofrece una forma práctica de mejorar la cobertura sin reescribir tu fuzz target.

Esta skill es ideal para personas que ya tienen un target que se ejecuta, pero necesitan llegar mejor a lógica con mucha validación. Resulta especialmente útil cuando tus entradas contienen palabras reservadas, cabeceras estructuradas, verbos de comando o constantes específicas de un formato que el fuzzing aleatorio no suele encontrar.

Qué resuelve fuzzing-dictionary

La tarea principal es convertir “mi fuzzer está atascado” en una estrategia de entrada más guiada. Un buen diccionario de fuzzing puede ayudar a saltarse rechazos tempranos, desbloquear ramas de análisis con estado y exponer casos límite que solo aparecen después de que haya presentes unos pocos tokens que parecen válidos.

Dónde encaja mejor

Usa fuzzing-dictionary cuando estés haciendo fuzzing de parsers, manejadores de protocolos o lectores de archivos con tokens reconocibles. Encaja muy bien cuando la estructura de la entrada importa más que el caos bruto de bytes, y encaja peor en código puramente aritmético, de transformación de imágenes o con mucha lógica y sin vocabulario de tokens.

Por qué esta skill es diferente

La skill fuzzing-dictionary no consiste simplemente en “añadir más cadenas”. Se centra en elegir tokens que encajen con las reglas de validación y análisis del target, y luego darles un formato que el fuzzer realmente pueda consumir. Eso la hace más útil que un prompt genérico cuando necesitas un diccionario accionable, no solo plausible.

Cómo usar la skill fuzzing-dictionary

Instalar y localizar el origen

Primero usa el flujo de instalación del directorio: npx skills add trailofbits/skills --skill fuzzing-dictionary. Después de instalarla, empieza por SKILL.md y luego lee cualquier material enlazado dentro de la misma carpeta de la skill. En este repo, la skill es autosuficiente, así que la fuente principal es el propio archivo de la skill.

Convertir tu target en un prompt útil

El uso de fuzzing-dictionary funciona mejor cuando aportas el dominio del target, el formato de entrada y el modo de fallo. Por ejemplo, en lugar de pedir “un diccionario de fuzzing para mi app”, pide:

  • el nombre del parser o protocolo
  • ejemplos de entrada o pistas de gramática
  • palabras clave, cabeceras, bytes mágicos o delimitadores conocidos
  • el fuzzer que usas y las expectativas de formato de su diccionario
  • qué cobertura falta o en qué punto falla la validación

Un prompt sólido suena así: “Crea un fuzzing-dictionary para un parser de protocolo tipo DNS. Incluye tipos de registro comunes, delimitadores y tokens de control, y dale formato para AFL++”.

Leer la skill en el orden correcto

Para este repositorio, la ruta más útil es:

  1. SKILL.md para el flujo de trabajo y las reglas de aplicabilidad
  2. Cualquier ejemplo en línea de entradas del diccionario y categorías de tokens
  3. La guía “When to Apply” para no usar la skill en un target que no se beneficiará

Consejos prácticos de uso

Mantén las entradas cortas, con aspecto válido y específicas del dominio. Mezcla tokens obvios con algunas variantes de borde o malformadas cuando sepas que el target rechaza la entrada pronto. Si el primer diccionario es demasiado genérico, ajústalo a los puntos exactos de análisis que tu target alcanza antes de fallar.

Preguntas frecuentes sobre la skill fuzzing-dictionary

¿fuzzing-dictionary es solo para expertos en fuzzing?

No. La skill fuzzing-dictionary la pueden usar principiantes que ya saben qué están haciendo fuzzing y pueden aportar ejemplos de entrada. No necesitas conocer a fondo el funcionamiento interno de un fuzzer, pero sí suficiente contexto para describir el vocabulario de tokens del target.

¿Cuándo no debería usar esta skill?

Omite fuzzing-dictionary si el target no tiene tokens de entrada significativos, si la cobertura ya es buena sin guía o si el cuello de botella es el diseño del harness y no la calidad de la entrada. Un diccionario no arregla un fuzz target roto, un bug que solo provoca crash o un problema causado por corpus seeds faltantes.

¿En qué se diferencia de un prompt normal?

Un prompt normal suele producir una lista genérica de tokens. La skill fuzzing-dictionary es más útil porque está orientada a un flujo de trabajo instalable, a un formato compatible con fuzzers y a las condiciones concretas en las que los diccionarios de verdad mejoran la cobertura. Eso la hace mejor para decisiones de fuzzing-dictionary install y para un uso repetible.

¿Sirve para todos los fuzzers?

Sirve para los principales ecosistemas compatibles con diccionarios, sobre todo libFuzzer, AFL++ y cargo-fuzz. Si tu cadena de herramientas usa otro mecanismo de entrada, todavía puedes aprovechar la lógica de selección de tokens, pero deberías verificar la sintaxis de diccionario requerida antes de usarla.

Cómo mejorar la skill fuzzing-dictionary

Aporta mejores evidencias del target

La mejor entrada para fuzzing-dictionary guide incluye tokens reales del target: verbos de protocolo, nombres de enumeraciones, etiquetas de campos, números mágicos o palabras reservadas. Incluso un corpus pequeño o unos pocos inputs que fallen pueden mejorar la selección de tokens mucho más que una descripción vaga del proyecto.

Pide tokens por función

Cuando uses fuzzing-dictionary for Code Generation, separa los tokens por rol: palabras clave obligatorias, modificadores opcionales, valores límite y variantes malformadas. Eso ayuda a que el resultado cubra tanto rutas de análisis válidas como casos límite casi válidos, en lugar de producir una lista plana de cadenas.

Vigila los fallos más comunes

Los errores más frecuentes son diccionarios demasiado amplios, entradas que no coinciden con la gramática del target y tokens demasiado largos como para ayudar a la mutación. Si el primer resultado se siente genérico, acota el alcance a un parser, un conjunto de comandos de protocolo o una sección concreta del formato de archivo y vuelve a generar.

Itera después de la primera ejecución

Usa la primera pasada de fuzzing para ver qué tokens realmente aumentan la cobertura o alcanzan nuevos estados. Después elimina las entradas muertas, añade las palabras clave que falten a partir de traces o logs, y vuelve a generar un fuzzing-dictionary más pequeño y preciso en lugar de seguir ampliándolo sin límite.

Calificaciones y reseñas

Aún no hay calificaciones
Comparte tu reseña
Inicia sesión para dejar una calificación y un comentario sobre esta skill.
G
0/10000
Reseñas más recientes
Guardando...