chore: 备份 TNG 注册/captcha 逆向与 MariBank SG bypass 进展
TngRootBypassHook 增强 captcha 诊断、TigerTally/JNIC 分层与 HWUI 策略;新增逆向脚本、Frida 工具与 UI dump;同步 MariBank SG hook 与 tng_exit_guard 更新。
This commit is contained in:
153
scripts/maribank-sg-register.ps1
Normal file
153
scripts/maribank-sg-register.ps1
Normal file
@@ -0,0 +1,153 @@
|
||||
# MariBank SG register test — new identity, optional log capture
|
||||
param(
|
||||
[switch]$NewIdentity,
|
||||
[switch]$CaptureLog,
|
||||
[switch]$DumpLog,
|
||||
[switch]$InstallModule,
|
||||
[switch]$DisableUsbDebug,
|
||||
[switch]$KeepAdb,
|
||||
[switch]$All
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$ProjectRoot = Split-Path -Parent $PSScriptRoot
|
||||
$Pkg = "sg.com.maribankmobile.digitalbank"
|
||||
|
||||
function Resolve-AdbPath {
|
||||
$candidates = @(
|
||||
(Join-Path $env:LOCALAPPDATA "Android\Sdk\platform-tools\adb.exe"),
|
||||
"C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools\adb.exe"
|
||||
)
|
||||
foreach ($path in $candidates) {
|
||||
if (Test-Path $path) { return $path }
|
||||
}
|
||||
$cmd = Get-Command adb -ErrorAction SilentlyContinue
|
||||
if ($cmd) { return $cmd.Source }
|
||||
return $null
|
||||
}
|
||||
|
||||
$adb = Resolve-AdbPath
|
||||
if (-not $adb) {
|
||||
Write-Host "adb not found. Install Android SDK platform-tools or add adb to PATH." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
function Get-AdbDevicesText {
|
||||
& $adb devices 2>&1 | Out-String
|
||||
}
|
||||
|
||||
function Test-AdbAuthorized {
|
||||
$lines = & $adb devices 2>&1 | Where-Object { $_ -match "\tdevice$" }
|
||||
return [bool]$lines
|
||||
}
|
||||
|
||||
function Invoke-AdbShell([string]$cmd) {
|
||||
& $adb shell $cmd 2>&1
|
||||
}
|
||||
|
||||
function Show-AdbHelp {
|
||||
param([string]$DevicesText)
|
||||
Write-Host "`nadb devices output:" -ForegroundColor Yellow
|
||||
Write-Host $DevicesText
|
||||
Write-Host @"
|
||||
|
||||
常见原因与处理:
|
||||
1. 上次跑脚本已关闭 USB 调试 → 手机上一律手动重新打开:
|
||||
设置 → 开发者选项 → USB 调试(+ 无线调试若在用)
|
||||
2. 换线 / 换 USB 口,通知栏选「文件传输 / MTP」
|
||||
3. 弹「允许 USB 调试?」→ 点允许(可勾始终允许)
|
||||
4. PC 执行:adb kill-server && adb start-server && adb devices
|
||||
5. 仅抓 log 时不要关调试:.\scripts\maribank-sg-register.ps1 -CaptureLog -KeepAdb
|
||||
|
||||
"@ -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
Write-Host "=== MariBank SG Register Test ===" -ForegroundColor Cyan
|
||||
Write-Host "adb: $adb"
|
||||
|
||||
if ($All) {
|
||||
$allArgs = @()
|
||||
if ($DisableUsbDebug -and -not $KeepAdb) { $allArgs += "-DisableUsbDebug" }
|
||||
if ($KeepAdb) { $allArgs += "-KeepAdb" }
|
||||
& "$ProjectRoot\scripts\maribank-sg-all-in.ps1" @allArgs
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
if (-not $CaptureLog) { exit 0 }
|
||||
}
|
||||
|
||||
& $adb start-server 2>&1 | Out-Null
|
||||
$devicesText = Get-AdbDevicesText
|
||||
|
||||
if (-not (Test-AdbAuthorized)) {
|
||||
Write-Host "No authorized adb device." -ForegroundColor Red
|
||||
Show-AdbHelp -DevicesText $devicesText
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host $devicesText
|
||||
|
||||
if ($NewIdentity -or $InstallModule) {
|
||||
$spoofArgs = @()
|
||||
if ($NewIdentity) { $spoofArgs += "-NewIdentity" }
|
||||
if ($InstallModule) { $spoofArgs += "-InstallModule" }
|
||||
& "$ProjectRoot\scripts\maribank-spoof-device.ps1" @spoofArgs -ClearMariBank
|
||||
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
||||
}
|
||||
|
||||
$shouldDisableAdb = $DisableUsbDebug -and -not $KeepAdb
|
||||
if ($shouldDisableAdb) {
|
||||
Write-Host "`n=== Disable USB / wireless debugging (SG stricter) ===" -ForegroundColor Cyan
|
||||
Write-Host "WARNING: PC adb will disconnect after this. Re-enable USB debug on phone to connect again." -ForegroundColor Yellow
|
||||
Invoke-AdbShell "settings put global adb_enabled 0" | Out-Null
|
||||
Invoke-AdbShell "settings put global development_settings_enabled 0" | Out-Null
|
||||
Invoke-AdbShell "settings put secure adb_wifi_enabled 0" | Out-Null
|
||||
Invoke-AdbShell "su -c 'resetprop init.svc.adbd stopped; resetprop persist.sys.adb_enable 0'" 2>$null | Out-Null
|
||||
} elseif (-not $KeepAdb) {
|
||||
Write-Host "`n=== Skip disabling USB debug (default) ===" -ForegroundColor Cyan
|
||||
Write-Host "Use -DisableUsbDebug when ready to test SG without PC adb; use -KeepAdb with -CaptureLog."
|
||||
}
|
||||
|
||||
if (-not $CaptureLog) {
|
||||
Write-Host "`n=== Clear SG app + verify IDs ===" -ForegroundColor Cyan
|
||||
Invoke-AdbShell "pm clear $Pkg" | Out-Null
|
||||
Invoke-AdbShell "su -c 'getprop ro.serialno; settings get secure android_id'"
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== LSPosed: pick the correct MariBank package ===" -ForegroundColor Yellow
|
||||
Write-Host " SG: sg.com.maribankmobile.digitalbank (v3.2.2, api.maribank.com.sg)"
|
||||
Write-Host " PH: ph.seabank.seabank (v3.22.0, api.seabank.ph)"
|
||||
Write-Host " Launch SG: .\scripts\launch-maribank-sg.ps1"
|
||||
Write-Host ""
|
||||
Write-Host "Phone: LSPosed -> soft reboot $Pkg"
|
||||
Write-Host "Then: MariBank SG -> Sign up -> +65 phone -> Next"
|
||||
|
||||
if ($CaptureLog -or $DumpLog) {
|
||||
if ($CaptureLog) {
|
||||
Write-Host ""
|
||||
Write-Host "=== logcat cleared; tap Next then press Enter ===" -ForegroundColor Cyan
|
||||
& $adb logcat -c
|
||||
Write-Host "Tap Next on phone, then press Enter..."
|
||||
Read-Host | Out-Null
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "=== dump current logcat (no clear) ===" -ForegroundColor Cyan
|
||||
}
|
||||
Write-Host ""
|
||||
Write-Host "--- register / dfp / attestation ---" -ForegroundColor Cyan
|
||||
$lines = & $adb logcat -d | Select-String "MariBankCapture|MariBankRegister|MariBankEncrypt|MariBankAttest|MariBankDfp|MariBankNative|MariBankRoot HTTP|ProbeGuard|3100012|4067012|OTP_SMS|register summary|dfp/v1|code=0|Gson REGISTRATION|uapi/v2/register|attestation hooks|native-core"
|
||||
if ($lines) {
|
||||
$lines
|
||||
} else {
|
||||
Write-Host "(no matches)" -ForegroundColor Yellow
|
||||
Write-Host "Likely: Enter pressed before Next, or register API not sent yet."
|
||||
Write-Host "You are on phone screen? Tap Next, wait for loading, then run:"
|
||||
Write-Host " .\scripts\maribank-sg-register.ps1 -DumpLog -KeepAdb"
|
||||
}
|
||||
} else {
|
||||
Write-Host "`nLog after Next:" -ForegroundColor Cyan
|
||||
Write-Host " .\scripts\maribank-sg-register.ps1 -CaptureLog -KeepAdb"
|
||||
Write-Host " .\scripts\maribank-sg-register.ps1 -DumpLog -KeepAdb # no clear, dump now"
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Doc: docs/MariBank新加坡突破.md" -ForegroundColor Green
|
||||
Reference in New Issue
Block a user