LLabelFen
Pracovní prostředí s AI pro kód

Názvy DNS se zpětnými ukazateli

Dekódujte název DNS z paketu do 65535 bajtů a vraťte surové štítky i následující pozici.

● ● ●LabelFen●
Pracovní postupy · Názvy DNS se zpětnými ukazateli ×
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
✳Názvy DNS se zpětnými ukazateli
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
01

Projekt

Otestujte kořen, zkrácení a limit rozbaleného názvu 255 bajtů, odmítněte neplatné značky, cykly a ukazatele nesměřující zpět.

02

Před použitím zkontrolujte

Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.

03

Modely

Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.

Pracovní postupy

Názvy DNS se zpětnými ukazateli

Pracovní postupy ↗
Pracovní postupy
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
Pracovní prostředí s AI pro kód

Kontrolujte výsledek parseru i pozici, kterou po sobě zanechá

LabelFen přináší údržbu protokolů do pracovního prostředí pro programování s AI ve Windows. Otevřete složku projektu a popište chování paketů, které potřebujete změnit, včetně toho, co po parsování očekává další fáze. Konverzace vycházející z těchto souborů může propojit lokální opravu s širším čtecím kódem, místo aby hodnotila pomocnou funkci jen podle vrácené hodnoty.

Komprimovaná jména DNS jsou příkladem úlohy. Požádejte model, aby prověřil zpracování ukazatelů, odmítání chybného vstupu a offset vracený volajícímu. Přidejte paket s komprimovaným jménem, po němž následuje další pole. Navržená úprava tak získá konkrétní požadavek: získat jméno a ponechat okolní parser na správném místě.

Při kontrole rozlišujte, kam se přechází po ukazateli a odkud má volající pokračovat. Věrohodné dekódované jméno nedokazuje, že se správně přečte další pole. Spusťte relevantní testy s useknutými i platnými daty, prověřte konečný offset a před přijetím změny porovnejte výsledek okolního parseru.

Můžete zvolit abliterovaný model AI nabízený podporovaným koncovým bodem kompatibilním s OpenAI nebo Anthropic a případně zadat přihlašovací údaje. Omezení odpovědí, nástroje a limity kontextu nadále závisí na modelu a serveru. LabelFen podporuje diskusi o projektu; podklady pro rozhodnutí o softwaru poskytuje vaše kontrola a protokolová testovací data.

Sledování opravy parsování protokolu

Proč kromě jména kontrolovat i vrácený offset?

Volající jej může použít ke čtení dalšího pole. Správné jméno s nesprávnou pozicí pokračování může poškodit interpretaci zbytku paketu. Do testovacích dat zahrňte následující pole a oba výsledky výslovně ověřte.

Má malý parser přijímat všechny formy ukazatelů?

Přijímejte jen formy podporované zdokumentovaným kontraktem. Před jeho rozšířením porovnejte implementaci s touto podmnožinou. Požádejte model o identifikaci nově přijímaných vstupů, aby úklid kódu tiše nezměnil pravidla přijímání protokolu.

Čím je užitečný testovací useknutý paket?

Má končit na smysluplné hranici, například neúplným ukazatelem nebo návěštím, a určovat očekávané odmítnutí. Prověřte, zda parser selže před čtením nedostupných bajtů, a potom ověřte, jak okolní čtecí kód chybu zpracuje.

Může kontrola paketů zpřístupnit data mimo můj počítač?

Ano, podle konfigurace koncového bodu a nástrojů. Upřednostněte očištěná bajtová testovací data a před sdílením záznamů prověřte cílová místa. Samostatné spuštění lokálního modelového serveru neznamená, že každý připojený kontrolní nástroj nebo externí služba je lokální.

Stáhnout pro Windows ↗

LabelFen · Aktualizováno 2026-10-25