TngRootBypassHook 增强 captcha 诊断、TigerTally/JNIC 分层与 HWUI 策略;新增逆向脚本、Frida 工具与 UI dump;同步 MariBank SG hook 与 tng_exit_guard 更新。
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Find jni/utils and safemode classes across SG split dex files."""
|
|
import re
|
|
import zipfile
|
|
from pathlib import Path
|
|
|
|
APK = Path(__file__).resolve().parent.parent / "apks" / "maribank_sg_base.apk"
|
|
with zipfile.ZipFile(str(APK)) as zf:
|
|
for dex in sorted(n for n in zf.namelist() if n.endswith(".dex")):
|
|
d = zf.read(dex)
|
|
needles = [
|
|
b"Lcom/shopee/bke/lib/jni/utils/",
|
|
b"Lcom/shopee/bke/lib/safemode/",
|
|
b"CharacterCrypto",
|
|
b"rdVerifyInfo",
|
|
]
|
|
if not any(n in d for n in needles):
|
|
continue
|
|
print("\n===", dex, "===")
|
|
for pat in [
|
|
rb"Lcom/shopee/bke/lib/jni/utils/[^;]{1,40};",
|
|
rb"Lcom/shopee/bke/lib/safemode/[^;]{1,60};",
|
|
rb"Lcom/shopee/bke/biz/base/risk/[^;]{1,40};",
|
|
]:
|
|
cs = sorted(
|
|
set(
|
|
m.group().decode()[1:-1].replace("/", ".")
|
|
for m in re.finditer(pat, d)
|
|
)
|
|
)
|
|
for c in cs:
|
|
if ".R" in c and c.endswith(".R"):
|
|
continue
|
|
if "$" in c or not c.endswith(".R"):
|
|
print(" ", c)
|