使用Aspects进行黑客攻击

使用Aspects进行黑客攻击

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

最近,我优化了PSPDFKit中的AOP代码,并创建了一个名为Aspects的库。Aspects允许在原始实现前、替代或之后调用代码,简化了手动调用super的操作。在测试中发现iOS 6中的UIImagePickerController存在异常,Apple在iOS 7中修复了该问题。通过反汇编发现,Apple通过遍历视图层次结构来检测popover,没有使用秘密方法。尽管某些私有类无法使用,但我们可以利用Aspects实现自己的检查。

🎯

关键要点

  • 最近,我优化了PSPDFKit中的AOP代码,并创建了一个名为Aspects的库。

  • Aspects允许在原始实现前、替代或之后调用代码,简化了手动调用super的操作。

  • 在测试中发现iOS 6中的UIImagePickerController存在异常,Apple在iOS 7中修复了该问题。

  • 通过反汇编发现,Apple通过遍历视图层次结构来检测popover,没有使用秘密方法。

  • 尽管某些私有类无法使用,但我们可以利用Aspects实现自己的检查。

延伸问答

Aspects库的主要功能是什么?

Aspects库允许在原始实现前、替代或之后调用代码,简化了手动调用super的操作。

在iOS 6中,UIImagePickerController出现了什么异常?

在iOS 6中,UIImagePickerController出现了'NSInvalidArgumentException'异常,提示必须通过UIPopoverController呈现。

Apple是如何检测popover的?

Apple通过遍历视图层次结构来检测popover,没有使用秘密方法。

Aspects库在调试中有什么用处?

Aspects库在调试中可以帮助开发者更方便地插入代码,进行检查和修改行为。

如何使用Aspects实现自己的检查?

可以通过运行时类查找来全局挂钩,并实现自己的检查逻辑。

Apple在iOS 7中修复了什么问题?

Apple在iOS 7中修复了iOS 6中UIImagePickerController的异常问题。

➡️

继续阅读