ios - 获取 iOS 私有(private) API 方法的签名

标签 ios reverse-engineering disassembly iphone-privateapi

我知道 SpringboardService 包含很多私有(private) API(例如:SBGetApplicationState、SBDimScreen 等)。我使用“nm”工具获得了这些方法的列表。

我想找到一个工具来获取这些私有(private) API 方法的签名。据我了解 SBGetApplicationState 是一个 C 调用(与 Objective C 方法相比)。所以我不确定是否可以在不反汇编和额外的手动操作的情况下恢复签名。但是,我希望至少存在半自动化过程。

几点说明:

a) 我看到了这个链接(iOS 运行时私有(private)头文件): https://github.com/nst/iOS-Runtime-Headers

它仅包含 Objective C header 。

b) 我看过这个链接(SpringBoard.app/MIG 子系统) http://iphonedevwiki.net/index.php/SpringBoard.app/MIG_subsystem

它包含一些有趣的信息,但文档有点过时(适用于 iOS 3.1-4.2)

c) 我正在进行研究,我不打算向 AppStore 提交任何应用程序。我很清楚 AppStore 因使用私有(private) API 而拒绝

最佳答案

  1. 不幸的是,您对 C 函数的假设是正确的——您无法自动获得它们的签名。
  2. 但是,您可以使用 Objective-C 消息执行此操作 -- 查看 class-dump (或者,更好的是 class-dump-z )。

关于ios - 获取 iOS 私有(private) API 方法的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11511570/

相关文章:

apk - 生成的 dex2jar.jar 文件只包含 appinfo 类

php - 了解大型 php 代码,使用什么技术?

assembly - 错误: no instruction mnemonic suffix given and no register operands

objective-c - 在 iPad 6.0 模拟器中运行应用程序时出现布局问题

javascript - React Native 超大图片定位

ios - 断开连接时所有应用程序崩溃

iphone - 如何在 iOS 上确定哪些应用程序是后台应用程序,哪些应用程序是前台应用程序

reverse-engineering - __ctype_b_loc 它的目的是什么?

python - 用IDApython反汇编提取指令

dos - 反编译一个 16 位的 dos 应用程序