Files
notiMessage/reverse/scripts/scan_tng_nativelib.py
mars 609635aba1 chore: 备份 TNG 注册/captcha 逆向与 MariBank SG bypass 进展
TngRootBypassHook 增强 captcha 诊断、TigerTally/JNIC 分层与 HWUI 策略;新增逆向脚本、Frida 工具与 UI dump;同步 MariBank SG hook 与 tng_exit_guard 更新。
2026-08-03 15:23:02 +08:00

54 lines
1.9 KiB
Python

"""Find NativeLib / loadLibrary targets in TNG APK."""
import re
import zipfile
from pathlib import Path
apk = Path(r"C:\Users\Administrator\Desktop\notiMessage\reverse\apks\tng\base.apk")
split = Path(r"C:\Users\Administrator\Desktop\notiMessage\reverse\apks\tng\split_config.arm64_v8a.apk")
with zipfile.ZipFile(apk) as z:
data = b"".join(z.read(n) for n in z.namelist() if n.endswith(".dex"))
print("base dex files:", [n for n in z.namelist() if n.endswith(".dex")])
print("base lib entries:", [n for n in z.namelist() if "lib/" in n][:40])
print("\nsplit libs:")
with zipfile.ZipFile(split) as z:
libs = [n for n in z.namelist() if n.endswith(".so")]
for n in libs:
print(" ", n)
# strings related to NativeLib
needles = [
b"NativeLib",
b"tngd.networksdk",
b"RetrieveFromNativeLibs",
b"getApiSixSecretKeys",
b"networksdk",
b"libtng",
b"loadLibrary",
]
print("\n=== string hits ===")
for n in needles:
hits = list(re.finditer(n, data))
print(f"{n!r}: {len(hits)}")
for h in hits[:5]:
ctx = data[max(0, h.start()-30):h.end()+80]
ctx = bytes(c if 32 <= c < 127 else 46 for c in ctx)
print(" ", ctx)
# library name candidates near NativeLib
print("\n=== lib name-like strings near 'NativeLib' / networksdk ===")
for m in re.finditer(rb"[\x20-\x7e]{4,60}", data):
s = m.group().decode()
if "network" in s.lower() or "tngd" in s.lower() or s.startswith("lib") and "tng" in s.lower():
if len(s) < 80:
print(" ", s)
# specific: System.loadLibrary argument often stored as short string without lib/ prefix
print("\n=== candidate loadLibrary short names ===")
cands = set(re.findall(rb"[\x00]([A-Za-z0-9_]{3,40})[\x00]", data))
for c in sorted(cands):
s = c.decode()
if any(k in s.lower() for k in ("tng", "network", "native", "promon", "shield", "apse")):
print(" ", s)