LLabelFen
Espacio de programación con IA

Nombres DNS con punteros anteriores

Decodifica un nombre DNS de un paquete de hasta 65535 bytes y devuelve sus etiquetas originales y el desplazamiento siguiente.

● ● ●LabelFen●
Flujos de trabajo · Nombres DNS con punteros anteriores ×
def dns_name(data, offset):
    if type(data) is not bytes or len(data) > 65535 or type(offset) is not int or not 0 <= offset < len(data):
        raise ValueError("dns.input")
    labels, seen, pos, end, size = [], set(), offset, None, 1
    while True:
        if pos in seen or pos >= len(data):
            raise ValueError("dns.pointer")
        seen.add(pos)
        count = data[pos]
        if count & 192 == 192:
            if pos+1 >= len(data):
                raise ValueError("dns.truncated")
            target = ((count & 63) << 8) | data[pos+1]
            if target >= pos:
                raise ValueError("dns.forward")
            if end is None:
                end = pos+2
            pos = target
            continue
        if count & 192 or pos+1+count > len(data):
            raise ValueError("dns.label")
        pos += 1
        if count == 0:
            return labels, pos if end is None else end
        size += count+1
        if size > 255:
            raise ValueError("dns.length")
        labels.append(data[pos:pos+count])
        pos += count
✳Nombres DNS con punteros anteriores
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Proyecto

Prueba la raíz, los cortes y el límite expandido de 255 bytes, rechazando etiquetas inválidas, ciclos y punteros que no retrocedan.

02

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

03

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

Flujos de trabajo

Nombres DNS con punteros anteriores

Flujos de trabajo ↗
Flujos de trabajo
def dns_name(data, offset):
    if type(data) is not bytes or len(data) > 65535 or type(offset) is not int or not 0 <= offset < len(data):
        raise ValueError("dns.input")
    labels, seen, pos, end, size = [], set(), offset, None, 1
    while True:
        if pos in seen or pos >= len(data):
            raise ValueError("dns.pointer")
        seen.add(pos)
        count = data[pos]
        if count & 192 == 192:
            if pos+1 >= len(data):
                raise ValueError("dns.truncated")
            target = ((count & 63) << 8) | data[pos+1]
            if target >= pos:
                raise ValueError("dns.forward")
            if end is None:
                end = pos+2
            pos = target
            continue
        if count & 192 or pos+1+count > len(data):
            raise ValueError("dns.label")
        pos += 1
        if count == 0:
            return labels, pos if end is None else end
        size += count+1
        if size > 255:
            raise ValueError("dns.length")
        labels.append(data[pos:pos+count])
        pos += count
Espacio de programación con IA

Revisa el resultado del analizador y la posición que deja

LabelFen lleva el mantenimiento de protocolos a un entorno de programación con IA para Windows. Abre la carpeta del proyecto y describe el comportamiento del paquete que necesitas cambiar, incluido lo que espera la siguiente etapa tras el análisis. Una conversación basada en esos archivos puede relacionar una corrección local con el lector completo, en vez de juzgar una función auxiliar solo por su valor devuelto.

Los nombres DNS comprimidos ofrecen una tarea de ejemplo. Pide al modelo que examine el tratamiento de punteros, el rechazo de entradas malformadas y el desplazamiento devuelto al código consumidor. Incluye un paquete con un nombre comprimido seguido de otro campo. Así el parche propuesto tiene un requisito concreto: recuperar el nombre dejando el analizador que lo rodea en la posición correcta.

Durante la revisión, distingue dónde se sigue un puntero de dónde debe reanudarse el código consumidor. Un nombre decodificado plausible no demuestra que el siguiente campo se lea correctamente. Ejecuta pruebas pertinentes con casos truncados y válidos, examina el desplazamiento final y compara el resultado del analizador completo antes de adoptar el cambio.

Puedes seleccionar un modelo de IA ablacionado ofrecido por un endpoint compatible con OpenAI o de Anthropic admitido, con credenciales cuando sean necesarias. Sus restricciones de respuesta, herramientas y límites de contexto siguen dependiendo del modelo y del servidor. LabelFen facilita el análisis del proyecto; tu revisión y los paquetes de prueba aportan las pruebas para decidir sobre el software.

Seguimiento de una corrección de análisis de protocolos

¿Por qué examinar el desplazamiento devuelto además del nombre?

El código consumidor puede utilizarlo para leer el siguiente campo. Un nombre correcto con una posición de reanudación incorrecta puede corromper la interpretación del resto del paquete. Incluye un campo posterior en el caso de prueba y comprueba explícitamente ambos resultados.

¿Debe un analizador pequeño aceptar cualquier forma de puntero?

Acepta solo las formas admitidas por tu contrato documentado. Compara la implementación con ese subconjunto antes de ampliarlo. Pide al modelo que identifique las entradas recién admitidas para que una limpieza no cambie silenciosamente las reglas de aceptación del protocolo.

¿Qué hace útil un paquete truncado de prueba?

Debe terminar en un límite significativo, como un puntero o una etiqueta incompletos, y especificar el rechazo esperado. Revisa si el analizador falla antes de consumir bytes no disponibles y comprueba después cómo gestiona el error el lector que lo rodea.

¿Puede la inspección de paquetes exponer datos fuera de mi equipo?

Sí, según la configuración del endpoint y las herramientas. Prefiere casos de bytes saneados y revisa los destinos antes de compartir capturas. Ejecutar por separado un servidor de modelos local no convierte en locales todas las herramientas de inspección conectadas ni los servicios externos.

Descargar para Windows ↗

LabelFen · Actualizado 2026-10-25