我意外地设法创建了一个与UIKit方法同名的类别方法。这导致UIKit调用我的方法而不是库方法,从而导致一些奇怪的UI故障。阅读此内容并为我的方法添加前缀后,该错误消失了: https://developer.apple.com/library/archive/qa/qa1908/_index.html
我当时在想,这不是潜在的安全问题吗?我基本上可以决定覆盖系统方法运行时吗?我确实覆盖了一种无害的UI方法,但是我可以使用安全性/用户身份验证类来做同样的事情……
答案 0 :(得分:3)
如果可以写入进程的内存,则绝对有可能使用此技术来修改进程。一种类似的方法是F-Script Anywhere的工作方式(或确实有效;我最近无法使它工作)。
但是,类别扩展存在于流程级别,而不是系统级别,因此这不会影响其他流程,也不允许您直接提升特权(您可以执行任何操作,否则可以)。
当您使用同一个对象时,您可能会在Finder中想象它正在执行的应用程序中的类别,而这不会发生。