From a2d9a88333dc7627216adb7968291078dde8fa23 Mon Sep 17 00:00:00 2001 From: samosvalishe Date: Thu, 24 Sep 2026 23:29:07 +0300 Subject: [PATCH] fix: naturalyiiBlondinNaVsyStranuTakoy1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit как хорошо что исходники под рукой --- internal/provider/vk/internal/captcha/pow.go | 5 +---- internal/provider/vk/internal/captcha/pow_test.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/provider/vk/internal/captcha/pow.go b/internal/provider/vk/internal/captcha/pow.go index 01133cb..094ed32 100644 --- a/internal/provider/vk/internal/captcha/pow.go +++ b/internal/provider/vk/internal/captcha/pow.go @@ -19,11 +19,8 @@ import ( const powResultGlobal = "captchaPowResult" -// PoW-скрипт страницы обфусцирован, имена переменных генерируются заново на каждый -// релиз. Стабильны только аргументы IIFE (input, difficulty, метка ошибки) и -// префикс версии конверта. var ( - rePowArgs = regexp.MustCompile(`\}\(\s*["']([A-Za-z0-9_-]{8,})["']\s*,\s*(\d+)\s*,\s*["'][^"']*["']\s*\)\s*\)`) + rePowArgs = regexp.MustCompile(`\}\(\s*["']([A-Za-z0-9_-]{8,})["']\s*,\s*(\d+)\s*,\s*["'][^"']*["']\s*(?:,|\)\s*\))`) rePowPrefix = regexp.MustCompile(powResultGlobal + `["'\]]{0,3}\s*=\s*["']([A-Za-z0-9._-]{0,8})["']\s*\+`) ) diff --git a/internal/provider/vk/internal/captcha/pow_test.go b/internal/provider/vk/internal/captcha/pow_test.go index 388430f..6ed9f5a 100644 --- a/internal/provider/vk/internal/captcha/pow_test.go +++ b/internal/provider/vk/internal/captcha/pow_test.go @@ -68,6 +68,18 @@ func TestParsePowParamsRejectsUnknownMarkup(t *testing.T) { } } +func TestParsePowParamsAcceptsAdditionalArgs(t *testing.T) { + html := `` + + got, err := parsePowParams(html) + if err != nil { + t.Fatal(err) + } + if got.Input != "fnZQN7lKKXvo37tH" || got.Difficulty != 2 || got.Prefix != "v2." { + t.Fatalf("pow = %+v", got) + } +} + func TestSolvePoW(t *testing.T) { got, nonce := solvePoW(context.Background(), "input", 1) if len(got) != 64 || !strings.HasPrefix(got, "0") {