param( [string]$Package = 'com.kuaishou.nebula', [string]$Script = 'out\probe_captcha_flow.js', [int]$WarmupSeconds = 3 ) $ErrorActionPreference = 'Stop' $scriptPath = (Resolve-Path $Script).Path $outDir = (Resolve-Path 'out').Path $pidText = (adb shell pidof $Package 2>$null) $pidText = if ($pidText) { $pidText.Trim() } else { '' } if (-not $pidText) { adb shell monkey -p $Package 1 | Out-Null Start-Sleep -Seconds $WarmupSeconds $pidText = (adb shell pidof $Package 2>$null) $pidText = if ($pidText) { $pidText.Trim() } else { '' } } if (-not $pidText) { throw "package process not found: $Package" } $targetPid = ($pidText -split '\s+')[0] $ts = Get-Date -Format 'yyyyMMdd_HHmmss' $log = Join-Path $outDir ("probe_captcha_{0}_{1}.log" -f $ts, $targetPid) $cmd = "frida -U -p $targetPid -l `"$scriptPath`" 2>&1 | Tee-Object `"$log`"" $runner = Start-Process powershell -ArgumentList @('-NoProfile','-ExecutionPolicy','Bypass','-Command',$cmd) -WindowStyle Hidden -PassThru Start-Sleep -Seconds 5 $runner.Id | Set-Content (Join-Path $outDir 'probe_captcha_runner_latest.txt') $log | Set-Content (Join-Path $outDir 'probe_captcha_log_latest.txt') Write-Host "ATTACH package=$Package pid=$targetPid runner=$($runner.Id)" Write-Host "LOG $log" Get-Content $log -Tail 40 | ForEach-Object { $_ -replace '(1\d{2})\d{4}(\d{4})','$1****$2' }