run_spawn_test.py
1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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")