又到了发布激动人心的新版本的时候!主要变化包括:
- Mac 和 iOS 上不再发生内核崩溃!请在这里阅读完整故事。
- Mac 和 iOS 注入器会手动映射 Frida 的 dylib。这意味着我们可以附加到受到严格沙箱限制的进程。
- frida-trace、frida-repl 等 CLI 工具现在全新支持启动进程:
$ frida-trace -i 'open*' -i 'read*' /bin/cat /etc/resolv.conf
27 ms open$NOCANCEL()
28 ms read$NOCANCEL()
28 ms read$NOCANCEL()
28 ms read$NOCANCEL()
Target process terminated.
Stopping...
$- 改进 frida-repl 和 frida-discover 的易用性。
- 首次调用
DeviceManager.enumerate_devices()时表现更好,还会返回当前已连接的 iOS 设备;因此,对于需要设备已经存在的简单应用或脚本,不再需要订阅更新。 - Python API 现在提供
frida.get_usb_device(timeout = 0)和frida.get_remote_device(),便于访问 iOS 设备以及远程/Android 设备。 - 传给
Interceptor.attach()的onEnter和onLeave回调可以访问this.registers来检查 CPU 寄存器,这在处理自定义调用约定时非常有用。 -
console.log()现在会把日志写入应用端的控制台,而不是目标进程。实际上,正是这项变化促使我们提升了本次发布的主版本号。 - 兼容 Android 5.0,但 ART 支持除外。
- 全新支持 Android/x86。除了 Dalvik 集成之外,一切功能都可以正常工作;如果你愿意通过 pull request 帮忙修复,请联系我们!
想参与贡献吗?请查看我们的 GSoC 2015 构想页面,了解我们下一步希望前往的方向。
尽情使用吧!
凌晨 2 点更新: 最终测试遗漏了一个 iOS 问题,因此我们刚刚发布 2.0.1 来修复它。
晚上 11 点更新: 感谢大家提供的优秀反馈,我们发现了一个严重错误:在某些 iOS 设备配置下于 Windows 上使用 Frida 时会触发该问题。请升级到 2.0.2;如果遇到任何问题,请告诉我们。
oleavr