fix: naturalyiiBlondinNaVsyStranuTakoy1

как хорошо что исходники под рукой
This commit is contained in:
samosvalishe
2026-09-24 23:29:07 +03:00
parent d16e9226ce
commit a2d9a88333
2 changed files with 13 additions and 4 deletions
+1 -4
View File
@@ -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*\+`)
)
@@ -68,6 +68,18 @@ func TestParsePowParamsRejectsUnknownMarkup(t *testing.T) {
}
}
func TestParsePowParamsAcceptsAdditionalArgs(t *testing.T) {
html := `<script>window['captchaPowResult']='v2.'+btoa(x);}('fnZQN7lKKXvo37tH',2,'pow_timeout',["globals"]));</script>`
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") {