功能未在GDB IOS中定义

时间:2013-07-04 12:50:41

标签: iphone ios objective-c gdb cracking

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

我做了什么然后我选择 product-> archive 应用程序并将其作为“myapp.app”并将其上传到我的IOS手机中,之后我使用GDB试图破解应用程序as(PoC),但是当我尝试将断点作为以下内容时:

  

#(gdb)break - [viewController isValidCode]

     

功能“ - [viewController isValidCode]”未定义。

     

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

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

  

读取共享库的符号。完成

     

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

     

读取共享库的符号+已完成

     <_> * 0x3b442eb4在mach_msg_trap()*

1 个答案:

答案 0 :(得分:1)

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