1

运行命令 "frida-trace -U -i open -f com.example.hellojni" 后,应用程序 HelloJni 将正常设置。但是在我执行了同伴 python 脚本之后,我遇到了崩溃。

device = frida.get_device_manager().enumerate_devices()[-1]
session = device.attach(device.spawn(["com.example.hellojni"]))   
ss = '''
       console.log("hello")
'''    
script = session.create_script(ss)
script.load()
session.detach()

控制台中显示日志“hello”。但是应用程序崩溃了,甚至 UI 都没有出现。logcat 打印了如下内容:

04-17 06:14:58.279: E/WindowManager(570): Starting window AppWindowToken{41e429c0 token=Token{41f753c8 ActivityRecord{41ea5dc0 u0 com.example.hellojni/.view.MainActivity t39}}} timed out
04-17 06:14:58.279: W/ActivityManager(570): Process ProcessRecord{41dffd18 16943:com.example.hellojni/u0a203} failed to attach
04-17 06:14:58.289: I/ActivityManager(570): Killing 16943:com.example.hellojni/u0a203 (adj -100): start timeout

我的脚本错了吗?我正在使用 android4.4.4(dalvik 模式)、windows7、frida7.0.11 .. 任何帮助将不胜感激。

4

1 回答 1

7

好吧,该工具非常出色,但是他们确实需要更新他们的文档。我花了将近一个星期的时间来研究源代码,试图解决同样的问题,结果发现根本没有问题。只是我们需要在设置完所有内容后调用 device.resume() 。在你的情况下:

device = frida.get_device_manager().enumerate_devices()[-1]
pid = device.spawn(["com.example.hellojni"])
session = device.attach(pid)
ss = '''
       console.log("hello")
'''    
script = session.create_script(ss)
script.load()
device.resume(pid)
session.detach()
于 2016-06-05T11:51:38.670 回答