LLabelFen
Espace de développement avec IA

Noms DNS à pointeurs arrière

Décodez un nom DNS depuis un paquet de 65535 octets au plus et renvoyez les étiquettes brutes avec la position suivante.

● ● ●LabelFen●
Méthodes de travail · Noms DNS à pointeurs arrière ×
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
✳Noms DNS à pointeurs arrière
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
01

Projet

Testez la racine, les troncatures et la limite décompressée de 255 octets, en rejetant les marqueurs invalides, les cycles et les pointeurs non rétrogrades.

02

Vérifiez avant d’appliquer

Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.

03

Modèles

Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.

Méthodes de travail

Noms DNS à pointeurs arrière

Méthodes de travail ↗
Méthodes de travail
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
Espace de développement avec IA

Examinez le résultat de l’analyseur et la position qu’il laisse

LabelFen intègre la maintenance des protocoles à un espace de programmation avec IA pour Windows. Ouvrez le dossier du projet et décrivez le comportement des paquets à modifier, y compris les attentes de l’étape suivante après analyse. Une conversation fondée sur ces fichiers peut relier une correction locale au lecteur complet, plutôt que de juger une fonction auxiliaire uniquement sur la valeur renvoyée.

Les noms DNS compressés constituent un exemple de tâche. Demandez au modèle d’examiner le traitement des pointeurs, le rejet des entrées mal formées et le décalage renvoyé à l’appelant. Incluez un paquet contenant un nom compressé suivi d’un autre champ. Le correctif proposé dispose ainsi d’une exigence concrète : récupérer le nom en laissant l’analyseur englobant à la bonne position.

Pendant l’examen, distinguez la position vers laquelle un pointeur est suivi de celle où l’appelant doit reprendre. Un nom décodé plausible ne prouve pas que le champ suivant sera lu correctement. Exécutez les tests pertinents avec des jeux d’essai tronqués et valides, examinez le décalage final et comparez le résultat de l’analyseur englobant avant d’adopter la modification.

Vous pouvez sélectionner un modèle d’IA ablitérée proposé par un point de terminaison compatible OpenAI ou Anthropic pris en charge, avec des identifiants si nécessaire. Ses restrictions de réponse, ses outils et ses limites de contexte restent dépendants du modèle et du serveur. LabelFen facilite la discussion du projet ; votre examen et vos jeux d’essai de protocole apportent les preuves nécessaires à la décision logicielle.

Suivre une correction d’analyse de protocole

Pourquoi examiner le décalage renvoyé en plus du nom ?

L’appelant peut utiliser ce décalage pour lire le champ suivant. Un nom correct avec une mauvaise position de reprise peut corrompre le reste de l’interprétation du paquet. Incluez un champ suivant dans le jeu d’essai et vérifiez explicitement les deux résultats.

Un petit analyseur doit-il accepter toutes les formes de pointeurs ?

N’acceptez que les formes prises en charge par votre contrat documenté. Comparez l’implémentation à ce sous-ensemble avant de l’élargir. Demandez au modèle d’identifier les entrées nouvellement acceptées pour qu’un nettoyage ne change pas silencieusement les règles d’acceptation du protocole.

Qu’est-ce qui rend utile un paquet de test tronqué ?

Il doit se terminer à une frontière pertinente, par exemple un pointeur ou un label incomplet, et préciser le rejet attendu. Vérifiez si l’analyseur échoue avant de consommer des octets indisponibles, puis comment le lecteur englobant traite l’erreur.

L’inspection des paquets peut-elle exposer des données hors de ma machine ?

Oui, selon la configuration du point de terminaison et des outils. Privilégiez des jeux d’octets expurgés et examinez les destinations avant de partager des captures. Exécuter séparément un serveur de modèles local ne rend pas local chaque outil d’inspection connecté ou service externe.

Télécharger pour Windows ↗

LabelFen · Mis à jour 2026-10-25