gpt4 book ai didi

objective-c - 在越狱的 iPod touch 上使用 gdb 调试 iOS 应用程序 | Objective-C 符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:43 25 4
gpt4 key购买 nike

我想在越狱的 iPod Touch 4、iOS (5.1.1) 上调试应用程序。唯一的问题是 GDB 似乎对应用程序的类/选择器名称一无所知。

附加和设置地址断点有效,但在尝试使用 objective-c 名称时无法识别符号。例如,break -[Class Selector:] 将失败。 (我知道 +- 代表不同的类类型。)

此外,我没有此应用程序的源代码,因此无法获取它。

我希望在没有 xcode 或源代码的情况下在设备上纯粹使用 GDB。

有没有人成功过这个?预先感谢任何答案。

最佳答案

假设您正在尝试调试来自商店/发布版本的应用程序,那么您的二进制文件将被编译器从中删除符号。只有调试版本保留符号:发布版本没有理由保留它们。

要找出名称,您需要手动反汇编二进制文件并从中找出您需要的名称。这是一个冗长的主题,太长以至于无法在此处详细输入(O'Reilly 的 Hacking & Securing iOS Applications 一书有很好的分步教程)。

请记住,在幕后,Objective-C 消息传递框架由 C 组成:如果您不熟悉 objc_msgSend 系列函数,您可能会发现它们更好的会帮助你。由于 Objective-C 中的每个方法调用都是使用 objc_msgSend 发送的,因此您可以在每次调用时通过断点有效地找出类和方法名称(或者更确切地说,断点并自动转储内容:它将是调用了太多次以至于手动执行它会花费太长时间)。

但是,这只会帮助您识别符号名称:因为符号已从二进制文件中剥离,您仍然需要在地址本身上设置断点。

关于objective-c - 在越狱的 iPod touch 上使用 gdb 调试 iOS 应用程序 | Objective-C 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14166390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com