这是一个快速发布,包含一项 GumJS 错误修复、一项小型 API 改进以及编译器类型版本升级。非常感谢 vfsfitvnm 和 Francesco Tamagni 对 GumJS 的改进:

  • gumjs:修复 NativeCallback 返回结构体。libffi 针对 FFI_TYPE_STRUCT 的闭包结果路径此前未实现,会触发 g_assert_not_reached()。现在会遍历结构体返回值(包括嵌套结构体),并把各叶字段的自然字节复制到返回缓冲区。QuickJS 和 V8 回调调用器也会按 rtype->size 确定临时返回缓冲区大小,使结构体能按预期容纳。感谢 @vfsfitvnm 提供修复。
  • gumjs:为 Memory.alloc() 的选项对象新增可选 protection 字段,默认值为 "rw",以保持现有行为。这样便能在内存无法从 rw 切换为 rx 的环境中分配页面对齐的可执行内存,例如未越狱的 iOS 26+。感谢 @mrmacete。
  • compiler:将 @types/frida-gum 升级到 19.1.0。