Przeglądaj źródła

feat: new strategy with PRNG seeded by CPU, random 25-45 day intervals from 2026.1.13

Co-authored-by: RPRX <[email protected]>
copilot-swe-agent[bot] 4 miesięcy temu
rodzic
commit
1427b2098f
1 zmienionych plików z 15 dodań i 12 usunięć
  1. 15 12
      common/utils/browser.go

+ 15 - 12
common/utils/browser.go

@@ -1,25 +1,28 @@
 package utils
 
 import (
+	"math/rand"
 	"strconv"
 	"time"
 
 	"github.com/klauspost/cpuid/v2"
-	"github.com/xtls/xray-core/core"
 )
 
 func ChromeVersion() int {
-	// Chrome 144 released on 2026.1.13, new version every 45 days
-	chrome144Release := time.Date(2026, 1, 13, 0, 0, 0, 0, time.UTC)
-	// Use CPU features + Xray version as seed for upgrade delay (1-45 days)
-	seed := cpuid.CPU.Family + cpuid.CPU.Model + cpuid.CPU.PhysicalCores + cpuid.CPU.LogicalCores + cpuid.CPU.CacheLine + int(core.Version_x) + int(core.Version_y) + int(core.Version_z)
-	upgradeDelay := seed%45 + 1
-	// First subtract upgrade delay from current date
-	userDate := time.Now().AddDate(0, 0, -upgradeDelay)
-	// Then calculate Chrome version for that date
-	daysSinceRelease := int(userDate.Sub(chrome144Release).Hours() / 24)
-	return 144 + daysSinceRelease/45
+	// Use only CPU info as seed for PRNG
+	seed := int64(cpuid.CPU.Family + cpuid.CPU.Model + cpuid.CPU.PhysicalCores + cpuid.CPU.LogicalCores + cpuid.CPU.CacheLine)
+	rng := rand.New(rand.NewSource(seed))
+	// Start from Chrome 144 released on 2026.1.13
+	releaseDate := time.Date(2026, 1, 13, 0, 0, 0, 0, time.UTC)
+	version := 144
+	now := time.Now()
+	// Each version has random 25-45 day interval
+	for releaseDate.Before(now) {
+		releaseDate = releaseDate.AddDate(0, 0, rng.Intn(21)+25)
+		version++
+	}
+	return version - 1
 }
 
-// ChromeUA provides default browser User-Agent. Chrome 144 = Jan 13, 2026, +1 per 45 days.
+// ChromeUA provides default browser User-Agent based on CPU-seeded PRNG.
 var ChromeUA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/" + strconv.Itoa(ChromeVersion()) + ".0.0.0 Safari/537.36"