From 916321578dc70066cb75332e25142f029a48c75d Mon Sep 17 00:00:00 2001 From: Ivan K Date: Sun, 11 May 2025 19:33:08 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20feat(dns):=20add=20random?= =?UTF-8?q?=20DNS=20query=20ID=20generation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- podkop/files/usr/bin/podkop | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/podkop/files/usr/bin/podkop b/podkop/files/usr/bin/podkop index 58c4f85..3bec345 100755 --- a/podkop/files/usr/bin/podkop +++ b/podkop/files/usr/bin/podkop @@ -2209,8 +2209,10 @@ check_dns_available() { fi if [ "$dns_type" = "doh" ]; then - # Create DNS wire format query for google.com A record - local dns_query="q80BAAABAAAAAAAAA3d3dwZnb29nbGUDY29tAAABAAE=" + # Generate random DNS query ID (2 bytes) + local random_id=$(head -c2 /dev/urandom | hexdump -ve '1/1 "%.2x"') + # Create DNS wire format query for google.com A record with random ID + local dns_query=$(printf "\x${random_id:0:2}\x${random_id:2:2}\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01" | base64) # Try POST method first (RFC 8484 compliant) local result=$(echo "$dns_query" | base64 -d | curl -H "Content-Type: application/dns-message" \