2

我开发了一个简单的 IOS 应用程序,它只验证 pin/code 值,如果为true,则打印“已验证” ,如果为 false,则打印“未验证”

我做了什么然后我选择了产品- >存档应用程序并将其作为“myapp.app”并将其上传到我的IOS手机中,之后我使用GDB尝试将应用程序破解为(PoC),但是当我尝试放入断点如下:

#(gdb) break -[viewController isValidCode]

未定义函数“-[viewController isValidCode]”。

在未来的共享库加载时使断点挂起?(y 或 [n])

这个错误背后的原因是什么?在使用应用程序之前,我们是否需要指定任何首选项 - 在 XCode 的存档步骤中。

共享库的读取符号。完毕

读取共享库的符号......完成

读取共享库的符号 + 完成

*0x3b442eb4 在 mach_msg_trap ()*

4

1 回答 1

1

当您归档产品时,它以“发布”模式构建,其中调试符号被剥离。lldb或者gdb不利用__OBJC段中的信息来尝试获取方法名称,它们仅依赖于调试符号。您需要做的是在特定地址处中断,即在 gdb 中:b *0x12345在哪里0x12345执行-[viewController isValidCode]. 要检索该地址,您可以查看 xcode 生成的程序集。或者更现实地说,就像你对“未知”二进制文件所做的那样;您可以使用otoolclass-dump实用程序等工具(查看-A and-H选项)

于 2013-07-06T19:30:20.400 回答