非hook 读取进程类成员

不是hook 有没办法直接跨进程内存地址读取类成员的值~

可以。获得那个进程的mach_task之后直接读虚拟内存。

1 个赞

那要怎么获得成员地址呢 不是每次重启进程后 地址都会变化

暴力搜索啊。
我本来应该回答你做不到来着

这个方式只能直接访问内存,任何操作都需要直接读写内存

饿 谢了 我慢慢研究去

并且很显然就算是这个方法也只能越狱设备使用,否则就是个巨大的安全隐患。
如果你找到了不越狱获取其他进程machtask的方法记得告诉我我要去卖漏洞了: )

  • -感谢提醒

越狱之后 iOS能跨进程修改内存?
进程应该都是在自己的虚拟内存空间吧。

不过,内核空间是共用的……(需要去找找资料了)

是的可以。通过taskforpid获取【需要同名Entitlements

1 个赞

如果感到眼熟的话。

记得lldb和debugserver吗: )

然后拿到的task是vm_read , vm_write,etc的第一个参数,剩下的应该很明显了?

taskforpid0拿到的是内核没记错的话,获得了这个machtask就拥有了读写内核的权限。
一些安全相关的paper/slide里提到的tfp0 patch指的就是patch相关的地方让你能拿到这个

EDIT: 还是比较难懂的话晚点我来写点东西班门弄斧一下

知道debugserver了。
不过还是支持班门弄斧一下。:grin: