# -*- coding: utf-8 -*- import re import zipfile from pathlib import Path APK = Path(__file__).resolve().parent.parent / "apks" / "seabank_ph_base.apk" with zipfile.ZipFile(str(APK)) as zf: data = zf.read("classes11.dex") for pat in [b"loadLibrary", b"libshpssdk", b"JNI_OnLoad", b"RegisterNatives", b"native "]: print(pat.decode(), data.count(pat)) print("\n--- classes with shpssdkbank ---") for m in re.finditer(rb"Lcom/shopee/shpssdkbank/[a-zA-Z0-9_$;/]+;", data): s = m.group().decode() if "uvu" in s or "SPS" in s or "SHPS" in s or "Native" in s: if s not in []: pass classes = sorted(set(m.group().decode()[1:-1].replace("/", ".") for m in re.finditer(rb"Lcom/shopee/shpssdkbank/[a-zA-Z0-9_$]+;", data))) for c in classes[:60]: print(c)