run_spawn_test.py 1.28 KB
import frida
import time

device = frida.get_usb_device(timeout=5)
print(f"Device: {device.name}")

# Spawn WeChat
print("Spawning com.tencent.mm...")
pid = device.spawn(["com.tencent.mm"])
print(f"Spawned PID: {pid}")

session = device.attach(pid)
print("Attached to spawned process")

script = session.create_script("""
console.log("Process spawned, Java.available = " + (typeof Java !== 'undefined' ? Java.available : 'undefined'));
if (typeof Java !== 'undefined' && Java.available) {
    Java.perform(function() {
        console.log("Java.perform OK");
        try {
            var r1 = Java.use("u01.r1");
            console.log("u01.r1 loaded");
            var builder = r1.a("yibooo");
            var clsName = builder.getClass().getName();
            console.log("BUILDER_CLASS:" + clsName);
            var superCls = builder.getClass().getSuperclass();
            if (superCls) {
                console.log("SUPER_CLASS:" + superCls.getName());
            }
        } catch(e) {
            console.log("Error: " + e);
        }
    });
} else {
    console.log("Java not available");
}
""")

def on_message(message, data):
    print(f"[MSG] {message}")

script.on("message", on_message)
script.load()
print("Script loaded, resuming...")

device.resume(pid)

time.sleep(8)
print("Done")