Tag: 反汇编

使用otool反汇编默认iOS应用程序

当我尝试使用otool反汇编库存iOS应用程序(而不是应用程序商店应用程序)时,它不会被拆分为不同的方法。 这只是一个巨大的部分。 以下是我正在使用的命令: otool -tV theApp.app/theApp >~/Desktop/output.txt 有没有办法将反汇编拆分成方法?

dynamic模拟iOSdynamictypes系统文本大小(UIContentSizeCategory)

我想用系统文本大小的不同select轻松地testing我的应用程序,包括可访问性大小。 这些可以在设置应用程序(显示和亮度=>文本大小或一般=>辅助function=>较大文本)中设置。 目前我能find的唯一方法是进入设置并使用UI更改值(编辑: 部分解决scheme如下所述)。 这是缓慢和繁琐的。 我怀疑有一种方法来dynamic改变它使用私人的API,但我不知道如何。 由于我的目标是只用于debugging,私人API的使用和调整是好的(这个代码将不会进入生产的方式)。 为了试图find一个私人的API来做到这一点,我看了一些逆向工程资源。 我是新的反汇编,符号表,类转储,并find我可以使用的私有API,但这是我迄今为止尝试过的: 我成功地调整了-[UIApplication preferredContentSizeCategory] (其他post说这工作在过去),但是这并不影响从+[UIFont preferredFontForTextStyle:]返回的结果。 使用反汇编程序IDA,我发现+[UIFont preferredFontForTextStyle:]是在私有框架UIFoundation.framework 。 ( -[UIApplication preferredContentSizeCategory]在UIKit.framework但反汇编看起来没有用处)。 正如我开始写这个问题(总是这样),我发现了一个部分的解决scheme 。 可以在scheme中设置启动参数来设置启动时的值。 这是有用的,但不是我所追求的。 通过上面的答案,我发现用户偏好的值明显存储在“模拟器的data/Library/Preferences目录下的com.apple.UIKit.plist文件”中。 我们之后的值可以从命令行实用程序plutil 。 这也是一个改进! 但是我想在运行时dynamic修改它。 来自IDA的更多结果: 我真的不知道如何阅读反汇编,但+[UIFont preferredFontForTextStyle:]似乎指向一个名为___UIFontForTextStyle的符号,这似乎指向一些有趣的冠冕堂皇的符号,称为_getUIContentSizeCategoryUnspecified和_getUIContentSizeCategoryPreferenceClass 我还使用UIFoundation.framework上的命令行工具nmfind了这些符号。 它们被标记为小写字母“s”,显然, “符号位于未初始化的小数据对象的数据部分”。 。 我不知道这意味着什么(我所收集的是他们不是一个class级或方法)。 在networking上search_getUIContentSizeCategory…符号不会产生任何结果,但附近有另一个符号_getUIApplicationClass 。 我search了那个,因为它听起来更普遍一些,并且在一些WebKit源代码中发现了类似的东西。 可能是没有,但也许这是一个内部的苹果公约。 无论如何,这个例子并不能真正帮助我解决问题。 无论如何感谢阅读至今。 如果你还在这里,我的问题是: 我希望能够dynamic模拟dynamictypes大小首选项的值。 这些反汇编符号可能有帮助,但也许我在错误的轨道上。 感觉就像解决scheme很接近,但我不能把所有的东西放在一起。 将此值设置为启动参数很好,但并不能完全解决我的问题。 同样,在plist修改模拟器的值也是很好的自动化,但不能解决我的问题。 有没有办法在运行时dynamic地改变这个值?

获取iOS的私有API方法的签名

我知道SpringboardService包含很多私有API(例如:SBGetApplicationState,SBDimScreen等)。 我使用“nm”工具获得了这些方法的列表。 我想find一个工具,让我得到这些私人API方法的签名。 据我所知,SBGetApplicationState是一个C调用(vs Objective C方法)。 所以我不确定是否有可能在没有反汇编和额外的手动操作的情况下恢复签名。 不过,我希望至less有半自动化的过程存在。 几个注释: a)我已经看到这个链接(iOS运行时私人头文件): https : //github.com/nst/iOS-Runtime-Headers 它只包含Objective C头文件。 b)我看过这个链接(SpringBoard.app/MIG子系统) http://iphonedevwiki.net/index.php/SpringBoard.app/MIG_subsystem 它包含一些有趣的信息,但文档有点过时(对于iOS 3.1-4.2) 三)我正在做一个研究,我不打算提交任何申请到AppStore。 我很清楚基于使用私有API的AppStore拒绝