运行时标题与“标题”之间的核心区别是什么?

问题描述 投票:2回答:2

我正在进行新的iOS调整。我抓住了iOS Headers https://github.com/MP0w/iOS-Headers。后来我在Github上找到了另一个名为iOS Runtime Headers https://github.com/nst/iOS-Runtime-Headers的存储库

现在我很困惑。这两者有什么区别?

ios objective-c header cydia
2个回答
1
投票

标题有3个主要来源:代码开发人员,类转储和运行时标头转储工具。

  1. Apple或SDK开发人员将发布一个头文件,其中包含他们打算让其他开发人员使用的公共接口。它可能不包括他们不希望您看到的一些方法/变量声明。 Apple的SDK中的UIView.h将是他们隐藏某些信息的一个很好的例子。
  2. 仅仅因为它们没有在头文件中包含这些方法,并不意味着这些类的实例无法响应它们。这就是类转储这样的工具,它查看已编译的Mach-O文件以确定该类包含哪些方法/ ivars,并根据该文件生成标头。
  3. 使用Objective-C的运行时功能,可以在运行时添加完全新的类,方法和ivars。从其他SDK /目标文件加载的类别之类的东西也不会出现在原始类的类转储中。由于这些原因,运行时转储工具可以查看这些类的哪些实例在运行时可以实际响应。

每组标题可用于确定类的预期和非预期用途,知道差异可以帮助您更清楚地了解您的逆向工程。


0
投票

很难说这些差异是什么。它们都是使用运行时内省生成的标头集。第一个说它是公共和私人的标题。

正如所有人都理解的那样,这两个链接都指向可以访问私有OS API的标头集。使用这些将使您从应用商店中被拒绝。它们只对开发用于开发人员个人用途或越狱开发的应用程序非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.