LLabelFen
Yapay zekâ ile kod çalışma alanı

Geri işaretçili DNS adları

En fazla 65535 baytlık paketten DNS adını çözerek ham etiketlerle sonraki konumu döndürün.

● ● ●LabelFen●
İş akışları · Geri işaretçili DNS adları ×
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
✳Geri işaretçili DNS adları
✓ DeğişikliklerUygulamadan önce inceleyin ↗
Çalışma alanı çizimi
01

Proje

Kökü, kesilmeyi ve 255 baytlık açılmış ad sınırını test edip geçersiz etiketleri, döngüleri ve geriye gitmeyen işaretçileri reddedin.

02

Uygulamadan önce inceleyin

Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.

03

Modeller

Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir.

İş akışları

Geri işaretçili DNS adları

İş akışları ↗
İş akışları
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
Yapay zekâ ile kod çalışma alanı

Ayrıştırıcı sonucunu ve geride bıraktığı konumu inceleyin

LabelFen, protokol bakımını bir Windows yapay zeka kodlama çalışma alanına taşır. Proje klasörünü açın ve ayrıştırma sonrasında sonraki aşamanın ne beklediği dahil, değiştirmek istediğiniz paket davranışını açıklayın. Bu dosyalara dayanan bir görüşme, yardımcı işlevi yalnızca döndürdüğü değere göre değerlendirmek yerine yerel bir düzeltmeyi daha geniş okuyucuyla ilişkilendirebilir.

Sıkıştırılmış DNS adları bir örnek görev sunar. Modelden işaretçi işlemeyi, bozuk girdilerin reddedilmesini ve çağıran koda döndürülen ofseti incelemesini isteyin. Sıkıştırılmış addan sonra başka bir alan içeren paket ekleyin. Böylece önerilen yama somut bir gereksinim kazanır: çevresindeki ayrıştırıcıyı doğru konumda bırakırken adı elde etmek.

İnceleme sırasında işaretçinin takip edildiği yerle çağıran kodun devam etmesi gereken yeri ayırın. Makul bir çözümlenmiş ad, sonraki alanın doğru okunacağını kanıtlamaz. Kesilmiş ve geçerli test verileriyle ilgili testleri çalıştırın, son ofseti inceleyin ve değişikliği benimsemeden önce çevresindeki ayrıştırıcının sonucunu karşılaştırın.

Desteklenen bir OpenAI uyumlu veya Anthropic uç noktasının sunduğu abliterasyonu uygulanmış bir yapay zeka modelini gerektiğinde kimlik bilgileriyle seçebilirsiniz. Yanıt kısıtlamaları, araçları ve bağlam sınırları modele ve sunucuya bağlı kalır. LabelFen proje tartışmasını destekler; yazılım kararına ilişkin kanıtı incelemeniz ve protokol test verileriniz sağlar.

Bir protokol ayrıştırma düzeltmesini izleme

Neden adın yanı sıra döndürülen ofseti de incelemeliyim?

Çağıran kod bu ofseti sonraki alanı okumak için kullanabilir. Yanlış devam konumuyla birlikte doğru bir ad, paketin geri kalanının yorumunu bozabilir. Test verisine sonraki alanı ekleyin ve iki sonucu da açıkça denetleyin.

Küçük bir ayrıştırıcı her işaretçi biçimini kabul etmeli mi?

Yalnızca belgelenmiş sözleşmenizin desteklediği biçimleri kabul edin. Genişletmeden önce uygulamayı bu alt kümeyle karşılaştırın. Temizliğin protokol kabul kurallarını sessizce değiştirmemesi için modelden yeni kabul edilen girdileri belirlemesini isteyin.

Kesilmiş paket test verisini yararlı kılan nedir?

Eksik bir işaretçi veya etiket gibi anlamlı bir sınırda bitmeli ve beklenen reddetmeyi belirtmelidir. Ayrıştırıcının mevcut olmayan baytları tüketmeden başarısız olup olmadığını inceleyin, ardından çevresindeki okuyucunun hatayı nasıl ele aldığını denetleyin.

Paket incelemesi verileri makinemin dışına çıkarabilir mi?

Uç nokta ve araç yapılandırmasına bağlı olarak evet. Hassas verilerden arındırılmış bayt test verilerini tercih edin ve yakalanmış paketleri paylaşmadan önce hedefleri inceleyin. Yerel model sunucusunu ayrı çalıştırmak, bağlı her inceleme aracını veya harici hizmeti yerel yapmaz.

Windows için indir ↗

LabelFen · Güncellendi 2026-10-25